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

Always desugar the base type of an extension when serializing. #6394

Conversation

jrose-apple
Copy link
Contributor

@jrose-apple jrose-apple commented Dec 19, 2016

Cherry-pick of #6336 to the 3.1 branch to help with Apple-internal process.
rdar://problem/29694978

@jrose-apple
Copy link
Contributor Author

@swift-ci Please test

@swift-ci
Copy link
Collaborator

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 4045f740d2cb80f57ad52e27d850020f98906fcb
Test requested by - @jrose-apple

@jrose-apple
Copy link
Contributor Author

@swift-ci Please test Linux

@swift-ci
Copy link
Collaborator

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 4045f740d2cb80f57ad52e27d850020f98906fcb
Test requested by - @jrose-apple

…#6336)

This "fixes" two issues:

- The name of a non-public typealias would leak into the public
  interface if the extension had any public members.

- A common pattern of defining a platform-specific typealias for an
  imported class and then extending that type would lead to
  circularity when trying to deserialize the typealias. We /shouldn't/
  be loading the extension at that point, but fixing that would be
  much harder.

The "right" answer is to (a) check that the typealias is public if the
extension has any public members, and (b) somehow ensure there is no
circularity issue (either by not importing the extension as a result
of importing the typealias, or by the extension being able to set its
sugared base type later).

rdar://problem/29694978
@jrose-apple jrose-apple force-pushed the swift-3.1-canonicalize-extension-base-types branch from 4045f74 to e498e66 Compare December 20, 2016 00:45
@jrose-apple
Copy link
Contributor Author

@swift-ci Please test

@swift-ci
Copy link
Collaborator

Build failed
Jenkins build - Swift Test Linux Platform
Git Commit - 4045f740d2cb80f57ad52e27d850020f98906fcb
Test requested by - @jrose-apple

@jrose-apple
Copy link
Contributor Author

@swift-ci Please test macOS

@jrose-apple jrose-apple merged commit 23a97b0 into apple:swift-3.1-branch Dec 20, 2016
@jrose-apple jrose-apple deleted the swift-3.1-canonicalize-extension-base-types branch December 20, 2016 03:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants