-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[concurrency][Part 2] Fix async objc protocol conformance bugs #35719
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
[concurrency][Part 2] Fix async objc protocol conformance bugs #35719
Conversation
d54b0b8
to
26090a1
Compare
26090a1
to
472013b
Compare
@swift-ci please clean smoke test |
472013b
to
c8d1f53
Compare
@swift-ci please clean smoke test |
c8d1f53
to
9f60f3a
Compare
@swift-ci please smoke test |
9f60f3a
to
9db771b
Compare
@swift-ci please smoke test and merge |
9db771b
to
388abdd
Compare
@swift-ci please smoke test and merge |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Definitely an improvement. I think there are other places where we have a check like this new duplicateAsyncObjCRequiremetHasBeenWitnesses
? The other callers to getObjCRequirements
? Should those call this new method instead?
388abdd
to
adf6780
Compare
This really only happens when the ClangImporter imports an ObjC protocol that has an async-looking method, which yields two requirements in the protocol. Only one of these requirements will be witnessed. fixes rdar://73326224
adf6780
to
739617c
Compare
Okay I've refactored it use a search that relies on a predicate, because the use-sites have different requirements. For example, @swift-ci please test and merge |
@swift-ci please smoke test and merge |
This adds regression test coverage for a situation related to rdar://73326085, but was just recently fixed in: swiftlang#35719
A continuation of #35662
TODOs:
Fix unusual note that claims a protocol's requirements are not satisfied (rdar://73641790).The conformance diagnostic should not be encountered at all.Make an error also be emitted alongside this missing witness note.Determine whether an error should have been encountered at all.