Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SR-5188] Class existentials don't conform to protocols that the class conforms to #47764

hamishknight opened this issue Jun 11, 2017 · 1 comment


Copy link

@hamishknight hamishknight commented Jun 11, 2017

Previous ID SR-5188
Radar None
Original Reporter @hamishknight
Type Bug
Status Resolved
Resolution Duplicate

Apple Swift version 4.0 (swiftlang-900.0.43 clang-900.0.22.8)
Target: x86_64-apple-macosx10.9

Additional Detail from JIRA
Votes 0
Component/s Compiler
Labels Bug
Assignee None
Priority Medium

md5: de980d175af7b0afd1d2b86a34e75b22


  • SR-55 non-@objc protocol existentials do not conform to their own protocol type

Issue Description:

Protocols can't conform to themselves in the general case because of static requirements, but given class existentials comprise of a concrete type, the following should really compile:

protocol P {}
class Foo : P {}

func foo<T : P>(_ t: T) {}

let f: (Foo & P) = Foo()
foo(f) // Cannot invoke 'foo' with an argument list of type '((Foo & P))'

But currently doesn't.

Copy link

@belkadan belkadan commented Jun 12, 2017

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet

No branches or pull requests

2 participants