[swift-evolution] [Pitch] Require "infix" for infix operator function declarations

Anton Zhilin antonyzhilin at gmail.com
Tue Jul 12 03:22:19 CDT 2016


Why don't we go the other direction? Example:

func ^^(prefix: Int) {}
func ^^(postfix: Int) {}
func ^^(lhs: Int, rhs: Int) {}

We will make 'prefix', 'postfix' and perhaps 'lhs' and 'rhs' required
external parameter names for operator functions.

2016-07-12 7:03 GMT+03:00 Jacob Bandes-Storch via swift-evolution <
swift-evolution at swift.org>:

> Currently, "infix" is not required/allowed on an operator function
> definition, but "prefix" and "postfix" are:
>
>     prefix operator ^^ {}   // valid
>     postfix operator ^^ {}  // valid
>     infix operator ^^ {}    // valid
>
>     prefix func ^^(operand: Int) {}  // valid
>     postfix func ^^(operand: Int) {} // valid
>     infix func ^^(lhs: Int, rhs: Int) {}   // *error: *'infix' modifier
> is not required or allowed on func declarations
>     func ^^(lhs: Int, rhs: Int) {}         // valid
>
> It seems like this was removed because it can be inferred from the number
> of arguments (
> https://github.com/apple/swift/commit/3ad9c58c18f0331444114e2eae3e772e702c326f).
> But IMO the inconsistency from other operator function decls/defs is
> jarring.
>
> How does everyone feel about reinstating the "infix" modifier on
> functoins? (It was removed before the open-source release and the advent of
> swift-evolution, so I thought it'd be worth a public review.)
>
> Jacob
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-evolution/attachments/20160712/84f4051b/attachment.html>


More information about the swift-evolution mailing list