[swift-evolution] [Proposal] Custom operators

Антон Жилин antonyzhilin at gmail.com
Mon Apr 18 05:09:08 CDT 2016


Sorry for the delay, please mail me a copy next time :)

Inline:

Антон Жилин:
> > No new suggestions have come in 2 days, and so I have created a pull
> request!
> > https://github.com/apple/swift-evolution/pull/253
> 1. Assignment operators in Swift 2.2 have an `assignment` keyword:
> infix operator += {
>   associativity right
>   precedence 90
>   assignment
> }
>

Right, it was planned to be removed anyway, and so I did not include it in
the new syntax on purpose. Added removal of `assignment` to "details".

2. If assignments can't be chained, should they be non-associative?
>

Agreed, these operators are actually non-associative right now. Fixed that,
thanks!


> 3. Instead of `precedencegroup`, I suggest an abstract declaration:
> operator Multiplicative {
>   associativity(left)
>   precedence(> Additive)
> }
> infix operator * : Multiplicative
>

Basically, change `precedencegroup` to `operator`?
In terms of keywords, operator will be only a local keyword in my proposal,
so I can say that each variant reserves one keyword.

In terms of name itself, I think, `precedencegroup` is more to the point.
Precedence groups are already mentioned in the standard.
On the other hand, I agree that we should not introduce new entities when
possible.
Overall, I'm inclined to leave currently proposed syntax.


> 4. In your proposal, `NilCoalesting` should be `NilCoalescing`.
> -- Ben


Fixed.

- Anton
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160418/fb8eb2ca/attachment.html>


More information about the swift-evolution mailing list