> On May 2, 2016, at 4:59 PM, Xiaodi Wu <xiaodi...@gmail.com> wrote:
> 
> Hmm, a thought going in a slightly different direction: if these static 
> functions were called like any other function, there might not be a need for 
> having special rules for parameter labels, which can then be freed to denote 
> prefix and postfix operators. In other words, we could have:
> 
> * for infix operators, no labels, like so: `static func + (_ lhs: T, _ rhs: 
> T)`, used like this: `T.+(1, 2)`
> * for prefix and postfix operators, a label, like so: `static func + 
> (prefixing value: T)`, used like this: `T.+(prefixing: 1)`

Using labels for this is pretty nice.  "T.++(prefix: abc)” and “T.++(postfix: 
abc)” seem like they could work!

-Chris

> 
> 
> On Mon, May 2, 2016 at 6:26 PM, David Sweeris via swift-evolution 
> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
> 
>> On May 2, 2016, at 5:58 PM, Chris Lattner via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>> 
>> On May 2, 2016, at 1:56 PM, Dave Abrahams via swift-evolution 
>> <swift-evolution@swift.org <mailto:swift-evolution@swift.org>> wrote:
>>>>   How does one distinguish between calls to a static prefix operator and a
>>>>   static postfix operator with the same name?
>>>> 
>>>> Ah, that's a tricky one that I don't have an immediate answer to, so I'm
>>>> definitely open to creative thoughts here.
>>> 
>>> One possibility: just use “qualified operator” notation.
>>> 
>>>   lhs T.+= rhs
>>> 
>>>   T.++x
>>>   x T.++
>> 
>> I’m not sure if this is exactly right, but it seems close.  I think that 
>> something like this is probably the best way to go, since it composes 
>> properly in arbitrary expressions.  It does have a surface level weirdness 
>> to it, but it also "makes sense” in terms of how operators work.  
> Yeah… Maybe with parens?
> T.++(x)
> (x)T.++
> Or is that worse?
> 
> - Dave Sweeris
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution@swift.org <mailto:swift-evolution@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-evolution 
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
> 
> 

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution

Reply via email to