> On May 20, 2016, at 5:56 PM, Антон Жилин via swift-evolution 
> <[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)
> }

Why not:

precedence Multiplicative {
    associativity left
    above Additive
    below Epxonentiative
}

Just seeing if removing the parens reduces some of the noise. 

Sorry if I missed this suggestion earlier and it was denied :P

Brandon 



> 
> - Anton
> 
> 2016-05-21 0:25 GMT+03:00 Matthew Johnson <[email protected]>:
>> 
>>> On May 20, 2016, at 4:22 PM, Антон Жилин <[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]>:
>>>> 
>>>>>> 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
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to