Ugh, sorry to spam the list like this (and also sorry I broke the threading…) Dave’s hint to use “when Element == MyProtocol” (https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160328/013922.html) worked great for the example that I posted but falls down in some other cases. I count three possibilities:
0. (original case…now works) My array is [MyProtocol] 1. If my array is [SimpleStruct] (where SimpleStruct : MyProtocol) I get “‘MyProtocol’ is not convertible to ‘SimpleStruct’” 2. If my array is [SubProtocol] (where SubProtocol : MyProtocol) I get “Type ‘MyProtocol’ does not conform to protocol ‘SubProtocol’” I can work around #1 by duplicating my extension to CollectionType for both Element : MyProtocol *and* Element == MyProtocol, but that’s less than ideal. And I’m not sure if solving #2 is possible in this situation. (Unfortunately for me, #2 is actually what I’m trying to do in my app.) > On Apr 1, 2016, at 2:38 PM, Jason Sadler <[email protected]> wrote: > > I should double check before I post. That Stack Overflow question has the > same answer Dave posted earlier in this thread, which is more correct - it > just has fewer votes, and isn’t marked as the accepted answer. Sorry! > >> On Apr 1, 2016, at 2:32 PM, Jason Sadler <[email protected]> wrote: >> >> Thanks everyone for your answers - this has helped p a lot. However because >> I’m not a language design pro, I’m a little unclear still on what the >> difference is between `Element == MyProtocol` and `Element: MyProtocol`. >> Obviously the latter is “Element conforms to MyProtocol” but I don’t know >> how to make an English sentence out of the former. >> >> I re-read some of the Generics chapter in the Swift book this morning but I >> wasn’t able to solidify my model of these two concepts. Based on the lack >> of information when searching on Stack Overflow (the most helpful thing I’ve >> found was this, which suggests putting things in a box: >> http://stackoverflow.com/questions/33112559/protocol-doesnt-conform-to-itself/33524927#33524927) >> and asking on swift-users, could I suggest that this could use some more >> explicit documentation somewhere? >> >> Thanks again, >> Jason > _______________________________________________ swift-evolution mailing list [email protected] https://lists.swift.org/mailman/listinfo/swift-evolution
