> 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] 
> <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

Reply via email to