[swift-evolution] [Review] SE-0077: Improved operator declarations

Антон Жилин antonyzhilin at gmail.com
Fri May 20 16:22:09 CDT 2016


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 <matthew at anandabits.com>:

>
> On May 20, 2016, at 3:51 PM, John McCall <rjmccall at apple.com> wrote:
>
> On May 20, 2016, at 1:25 PM, Антон Жилин <antonyzhilin at gmail.com> wrote:
> Inline:
>
> 2016-05-20 20:58 GMT+03:00 John McCall <rjmccall at apple.com>:
>
>> 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.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160521/81cfe7e3/attachment.html>


More information about the swift-evolution mailing list