I think if you can figure that out, you’re halfway to letting protocols conform 
to themselves.

(Syntactically, I would probably say that something like “Codable.Self” would 
read well, but I think that already means something. Maybe the answer will 
become clearer when we rework the reflection APIs?)

Sent from my iPhone

> On Oct 19, 2017, at 13:13, Itai Ferber <ifer...@apple.com> wrote:
> 
> Even then, that wouldn’t necessarily help in the general case. If you decode 
> {"key" : 1} as [String : Codable], what concrete type would 1 have? Int? 
> Double? Int8? (Arguments can be made for any one of these, but the key here 
> is that it is inherently ambiguous and there isn’t necessarily a good answer.)
> 
> On 19 Oct 2017, at 12:57, David Sweeris wrote:
> 
> On Oct 19, 2017, at 12:50 PM, David Baraff via swift-users 
> <swift-users@swift.org> wrote:
> 
> Yes; this is a case where anywhere in the code base I want to just say
> struct MyNewType : Codable {
> // add codable datatypes
> }
> 
> and don’t want/can’t always go to the centralized place to add it in.
> Is there some extension-like trick I can pull off that lets me spread the 
> implementation out over different files/libraries?
> 
> Ah, ok.
> 
> No, I don't think you'll be able to do that until/unless Swift gets more 
> macro/metaprogramming features. Maybe if protocols ever get to conform to 
> themselves? That's a common request, but implementing it is apparently beyond 
> tricky. I'm pretty sure somebody's working on it, but "bigger fish" and all 
> that...
> 
> - Dave Sweeris
> 
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to