> On May 24, 2016, at 11:03 AM, Chris Lattner <clatt...@apple.com> wrote:
> 
> 
>> On May 24, 2016, at 9:35 AM, Jordan Rose via swift-dev <swift-dev@swift.org 
>> <mailto:swift-dev@swift.org>> wrote:
>> 
>> I wouldn’t phrase it this way. “nil” could just as easily been above all of 
>> the integers.
>> 
>> We added overloads for < and friends that took optionals so that you could 
>> sort an array by passing < and get something reasonable out without having 
>> to provide your own comparison function, but you’re not the first to find it 
>> counterintuitive. We could consider removing it (going through the Swift 
>> Evolution Process 
>> <https://github.com/apple/swift-evolution/blob/master/process.md>).
> 
> One of the ideas that Joe Pamer has been discussing is whether the implicit 
> promotion from T to T? should be disabled when in an operator context.  Doing 
> so would fix problems like this, but making the code invalid.
> 
> Joe, is this something that you think will come up for discussion in the 
> Swift 3 timeframe?

Yes - I believe so. I’ve been collecting my notes on the topic, with the hopes 
of getting a pitch out to swift-evolution soon.

- Joe

> 
> -Chris
> 
> 
>> 
>> Best,
>> Jordan
>> 
>> 
>>> On May 24, 2016, at 09:07, Robert Widmann via swift-evolution 
>>> <swift-evolut...@swift.org <mailto:swift-evolut...@swift.org>> wrote:
>>> 
>>> Behaves as intended, albeit counterintuitively.
>>> 
>>> [~ indicates appropriate coercion]
>>> 
>>> 1) (nil : Optional<T ~ Int>) == (0 : Int ~ Optional<Int>) false because nil 
>>> is the lower bound of all possible integers.
>>> 2) (nil : Optional<T ~ Int>) < (0 : Int ~ Optional<Int>) true for reasons 
>>> above
>>> 3) (nil : Optional<T ~ Int>) > (0 : Int ~ Optional<Int>) false for reason 
>>> above.
>>> 
>>> ~Robert Widmann
>>> 
>>> 2016/05/24 2:27、Yaman JAIOUCH via swift-dev <swift-dev@swift.org 
>>> <mailto:swift-dev@swift.org>> のメッセージ:
>>> 
>>>> nil == 0 // false
>>>> nil < 0 // true
>>>> nil > 0 // false
>>>> 
>>>> Is this a potential bug or an intended behavior ?
>>>> _______________________________________________
>>>> swift-dev mailing list
>>>> swift-dev@swift.org <mailto:swift-dev@swift.org>
>>>> https://lists.swift.org/mailman/listinfo/swift-dev 
>>>> <https://lists.swift.org/mailman/listinfo/swift-dev>
>>> _______________________________________________
>>> swift-evolution mailing list
>>> swift-evolut...@swift.org <mailto:swift-evolut...@swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-evolution 
>>> <https://lists.swift.org/mailman/listinfo/swift-evolution>
>> 
>> _______________________________________________
>> swift-dev mailing list
>> swift-dev@swift.org <mailto:swift-dev@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-dev
> 

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

Reply via email to