> On May 20, 2016, at 3:51 PM, John McCall <[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

Reply via email to