[swift-evolution] [Idea] Allow more operators as custom operators
Jean-Daniel Dupas
mailing at xenonium.com
Sun Apr 10 16:03:18 CDT 2016
> Le 10 avr. 2016 à 15:01, Антон Жилин via swift-evolution <swift-evolution at swift.org> a écrit :
>
> & (as a prefix operator), ->, ?, and ! (as a postfix operator)
>
> This is the list of built-ins that look like operators, but are banned from use as Swift custom operators.
>
> We can review that list.
>
> `&` reserved as a prefix operators for a reason. It marks a variable use as `inout`, which currently cannot be done by any Swift operator function.
>
> Other three don't have such justification.
>
> `->`, `?` and `!` are used in types, but they are mostly unambiguous in expressions.
>
> The only use of `!` in expressions can be rewitten as a built-in operator function:
> postfix func ! <T> (left: T!) -> T
>
> `?` is used in optional method calls:
> a.method?(b)
> A parallel proposal is going to remove such syntax from Swift, so this will not be a problem.
>
> `?` is also used in patterns:
> if case x? = optional { ... }
>
While the use is unambiguous for the compiler, I’m not sure it’s going to be unambiguous for code readers. Having the same operator meaning different things depending the context is a bad idea IMHO.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160410/187ef30f/attachment.html>
More information about the swift-evolution
mailing list