> On 17 Aug 2016, at 00:34, Charles Srstka via swift-evolution
> <[email protected]> wrote:
>
>> On Aug 16, 2016, at 5:30 PM, Xiaodi Wu <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> On Tue, Aug 16, 2016 at 5:19 PM, Charles Srstka via swift-evolution
>> <[email protected] <mailto:[email protected]>> wrote:
>>> On Aug 16, 2016, at 5:13 PM, David Sweeris <[email protected]
>>> <mailto:[email protected]>> wrote:
>>>
>>> Any proposal that expands the power of generic programming gets an almost
>>> automatic +1 from me.
>>>
>>> I can't think of any circumstances in which I wouldn't want to use ":=="
>>> instead of ":". Are there any downsides to expanding ":" to mean what ":=="
>>> does?
>>>
>>> Incidentally, I kinda thought things either already worked like this, or
>>> would work like this after generics were "completed", but I can't tell you
>>> why I thought that.
>>
>> Me neither, but the last time I proposed that, people stated that there were
>> some cases where this could not work. No concrete examples were given, but I
>> assume it probably has something to do with associated type wackiness. :==
>> seems like a workable compromise to me.
>>
>> If an existential of a protocol P doesn't conform to itself, what can you do
>> inside the body of a generic function that has a generic constraint
>> specified with `:==`? In other words, what would we know about what's in
>> common between such an existential of a protocol and types that conform to
>> the protocol?
>
> My proposal is that in such cases, using :== would lead to a compiler error.
>
> Charles
>
> _______________________________________________
> swift-evolution mailing list
> [email protected] <mailto:[email protected]>
> https://lists.swift.org/mailman/listinfo/swift-evolution
> <https://lists.swift.org/mailman/listinfo/swift-evolution>
I think the point is that existentials not conforming to their protocols is the
underlying reason this doesn’t work already.
From the previous thread:
> There are a couple of reasons this is the case. IIRC in some cases it
> actually isn't possible for the existential to conform to the protocol in a
> sound way. And even when it is possible, I believe it has been said that it
> is more difficult to implement than you might think. Hopefully the situation
> will improve in the future but I'm not aware of any specific plans at the
> moment.
It seems like a reasonably straightforward axiom. I would be interested to
learn more about those edge-cases.
Karl
_______________________________________________
swift-evolution mailing list
[email protected]
https://lists.swift.org/mailman/listinfo/swift-evolution