> On May 20, 2016, at 4:56 PM, Антон Жилин <[email protected]> wrote: > > My working version is still the one in the proposal, but I'm planning to add > the alternative versions we discussed, including your and Brent's variants. > > IMHO, original version is heavy, but clear (not to confuse with "clean"). > Your lighter version looks more clean, but somewhat less consistent and more > free in terms of grammar. > > Also, I've got another version, which is considerably ligher than current > one, while being as structured: > > precedence Multiplicative { > associativity(left) > above(Additive) > below(Exponentiative) > }
In this case I think clear and clean are one and the same. The parentheses feel arbitrarily noisy to me. What purpose do they serve? > > - Anton > > 2016-05-21 0:25 GMT+03:00 Matthew Johnson <[email protected] > <mailto:[email protected]>>: > >> On May 20, 2016, at 4:22 PM, Антон Жилин <[email protected] >> <mailto:[email protected]>> wrote: >> >> Yes, in this case it should be allowed, because this relationship already >> existed in imported modules. I will add that, too, thanks! > > Cool. > > What is the latest syntax you are using? Did you consider any of the lighter > weight options? That subthread died without conclusion (unless I missed > something somehow). > > >> >> - Anton >> >> 2016-05-21 0:01 GMT+03:00 Matthew Johnson <[email protected] >> <mailto:[email protected]>>: >> >>> On May 20, 2016, at 3:51 PM, John McCall <[email protected] >>> <mailto:[email protected]>> wrote: >>> >>>> On May 20, 2016, at 1:25 PM, Антон Жилин <[email protected] >>>> <mailto:[email protected]>> wrote: >>>> Inline: >>>> >>>> 2016-05-20 20:58 GMT+03:00 John McCall <[email protected] >>>> <mailto:[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
