Yes, in this case it should be allowed, because this relationship already existed in imported modules. I will add that, too, thanks!
- Anton 2016-05-21 0:01 GMT+03:00 Matthew Johnson <[email protected]>: > > On May 20, 2016, at 3:51 PM, John McCall <[email protected]> wrote: > > On May 20, 2016, at 1:25 PM, Антон Жилин <[email protected]> wrote: > Inline: > > 2016-05-20 20:58 GMT+03:00 John McCall <[email protected]>: > >> The transitivity rule plus the ability to define precedence relationships >> in both directions on a new precedence group allows a new precedence group >> to create a precedence relationship between existing unrelated precedence >> groups. This should be forbidden. >> > > Agreed, although there is an alternate solution to allow global-scope > relationship definition. > Trying to write it formally: > > ====begin==== > Precedence relationships that, by transitivity rule, create relationship > between two imported groups, is an error. Example: > > // Module X > precedencegroup A { } > precedencegroup C { } > > // Module Y > import X > precedencegroup B { precedence(> A) precedence(< C) } > > This results in compilation error "B uses transitivity to define > relationship between imported groups A and C". > The rationale behind this is that otherwise one can create relationships > between standard precedence groups that are confusing for the reader. > > ====end==== > > > Seems good to me. > > > Would this be allowed if Module X already defined precedence group C > A > (it would not be defining a *new* relationship between A and C in that > case)? > > > What's the purpose of equality relationships between precedence groups? >> > > Agreed, will remove. > > > Ok. > > > Your proposal should call out the special treatment of the Assignment and >> Ternary groups. >> > > Do you mean that most operators should define greater precedence than > Assignment / Ternary? Or there should be some other special treatment? > > > Just that they have implicit members. > > John. > > >
_______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
