[swift-users] fileprivate extensions can't add protocol conformance

Alejandro Martinez alexito4 at gmail.com
Tue Feb 14 01:57:06 CST 2017

"is currently required to have the same visibility as the protocol itself"

that makes sense. I guess my question is more, is there a technical
reason for it?

On Mon, Feb 13, 2017 at 4:35 PM, Paul Schmidt
<paul.schmidt at smartsheet.com> wrote:
> Would love for this to be possible. It becomes an issue in mixed code: if
> you include conformance to a <foo>Kit protocol in one of your Swift classes,
> then you have to include the corresponding headers in every Objective C file
> that includes the bridging .h file. The <foo>Kit classes are added to the
> bridging header, but not the protocols. There are workarounds (such as using
> an instance of a conforming nested class as a proxy- nested classes are not
> emitted in the bridging header), but it's so much cleaner to be able conform
> to the protocol privately. (Either that, or fix the utility that builds the
> bridging header so it exposes the protocol as well.)
> Paul Schmidt | Smartsheet
> Senior iOS Software Development Engineer
> E: paul.schmidt at Smartsheet.com
> C: 425.283.9576
> Work Betterâ„¢
> Learn More → smartsheet.com
> On Mon, Feb 13, 2017 at 8:28 AM, Alejandro Martinez via swift-users
> <swift-users at swift.org> wrote:
>> Hi,
>> I found myself writting some method that parsed an API response and
>> wanted to use Decodable to map the response into a struct declared
>> elsewhere.
>> My idea was that each api response handler file (I use completely
>> different APIs that map into the same model) could add it's own
>> fileprivate conformance to decodable into the model struct so each api
>> response handler would use a different decoding function. But I found
>> the compiler telling me that is not possible.
>> I can easily change my design, is not an issue but I'm super curious.
>> Why fileprivate extensions can't add protocol conformance? Is there a
>> technical reason behind? or a conscience design?
>> Thanks!
>> --
>> Alejandro Martinez
>> http://alejandromp.com
>> _______________________________________________
>> swift-users mailing list
>> swift-users at swift.org
>> https://lists.swift.org/mailman/listinfo/swift-users

Alejandro Martinez

More information about the swift-users mailing list