[swift-evolution] Question about heterogeneous collections

Maximilian Hünenberger m.huenenberger at me.com
Fri Apr 1 10:17:56 CDT 2016


See inline

> Am 31.03.2016 um 20:14 schrieb Dave Abrahams via swift-evolution <swift-evolution at swift.org>:
> 
> 
>> on Tue Mar 29 2016, Jason Sadler <swift-evolution at swift.org> wrote:
>> 
>> Hi folks,
>> 
>> I have an issue with using a heterogeneous array of objects conforming
>> to a protocol - I want to write an extension on Array (or
>> CollectionType) that applies only when Element : MyProtocol, but I
>> can’t call methods in that extension from an instance of [MyProtocol]
>> because "Using ‘MyProtocol' as a concrete type conforming to protocol
>> ‘MyProtocol' is not supported”
> 
> Hint: write your extension so it applies when Element == MyProtocol instead.
> 

Why don't we also imply `Element == MyProtocol` when using `Element: MyProtocol` ?

Both extensions can have the exact same functions/implementation.
Am I missing something?
I currently don't see why we are forced to distinguish between homogeneous and heterogeneous Collections.

Kind regards
- Maximilian

>> (For more background, my full use case can be seen in this gist: https://gist.github.com/sadlerjw/2cc16b4375b02fe7f400)
>> 
>> I’ve asked about this on swift-users
>> (https://lists.swift.org/pipermail/swift-users/Week-of-Mon-20160321/001560.html)
>> and got some good workarounds but no one was able to provide me with
>> information on any future plans in swift to address this issue -
>> whether that’s making protocols conform to themselves, or some other
>> improved approach to heterogeneous collections. I wonder if anyone
>> here can shed some light on this? (I’m new to the mailing lists,
>> sorry!)
> 
> -- 
> Dave
> 
> _______________________________________________
> swift-evolution mailing list
> swift-evolution at swift.org
> https://lists.swift.org/mailman/listinfo/swift-evolution


More information about the swift-evolution mailing list