[swift-users] Extensions on Typealiased Existential Protocols

Steven Brunwasser sbrunwasser at gmail.com
Mon Jun 19 13:44:10 CDT 2017

Is this error intentional, or a bug?

protocol A {}

protocol B {}

typealias C = A & B // valid

extension C {} // Error: Non-nominal type 'C' (aka 'A & B') cannot be

extension A where Self: B {} // valid

struct Foo: C {} // valid

Since extension A where Self: B is the same as extension B where Self: A,
and C is defined as any A that also inherits from B, shouldn’t extension C be
just as valid?

This seems like it should be valid, so I filed this bug,

- Steve
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170619/7e2bae9f/attachment.html>

More information about the swift-users mailing list