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

Closed
hamishknight opened this issue Jun 11, 2017 · 1 comment

Comments

@hamishknight
Copy link
Collaborator

@hamishknight hamishknight commented Jun 11, 2017

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

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

duplicates:

  • 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.

@belkadan
Copy link
Contributor

@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
Projects
None yet
Development

No branches or pull requests

2 participants