-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[3.0] SILGen/IRGen: Lower protocol witness thunks for ObjC lightweight generics as pseudogeneric. #5497
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
[3.0] SILGen/IRGen: Lower protocol witness thunks for ObjC lightweight generics as pseudogeneric. #5497
Conversation
@swift-ci Please test and merge |
@swift-ci Please test |
Build failed |
…rics as pseudogeneric. Fixes rdar://problem/28873860, where we would miscompile when lightweight generic classes were extended to conform to Swift protocols because we tried to emit parameters for the class's generic parameters for the witness entry points. Prevent this by lowering the witness into a pseudogeneric function in SILGen, and teaching IRGen to do the right thing for a witness with pseudogeneric parameters.
35c25ae
to
6cb0e16
Compare
@swift-ci Please test |
@shahmishal https://ci.swift.org/job/swift-PR-osx/4129/console has been stuck since 12:03. CI problem? |
@jckarter Sent email with process info |
Build failed |
@swift-ci Please test OS X |
Build failed |
The tests pass locally on my machine after given enough time to do so. Slow simulator? |
@jckarter Sounds like we might have regression on swift-3.0-branch, not in this PR. |
@swift-ci Please test OS X |
@shahmishal Other PRs have passed testing after this PR. |
Build failed |
Please give me sometime to lean more about this. |
@swift-ci Please test macOS |
3 similar comments
@swift-ci Please test macOS |
@swift-ci Please test macOS |
@swift-ci Please test macOS |
[pull] swiftwasm from main
Fixes rdar://problem/28873860, where we would miscompile when lightweight generic classes were extended to conform to Swift protocols because we tried to emit parameters for the class's generic parameters for the witness entry points. Prevent this by lowering the witness into a pseudogeneric function in SILGen, and teaching IRGen to do the right thing for a witness with pseudogeneric parameters.