-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[ParseableInterface] Honor "exported module names" #23474
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
Conversation
std::string -> StringRef of long-lived backing storage. No functionality change.
It's a pretty obscure feature (and one we wish we didn't need), but sometimes API is initially exposed through one module in order to build another one, and we want the canonical presented name to be something else. Push this concept into Swift's AST properly so that other parts of the compiler stop having to know that this is a Clang-specific special case. No functionality change in this commit; will be used in the next commit.
@swift-ci Please test |
(as described in the previous commit) When printing an interface that has to be stable, we need to use the module name that identifies where declarations should be searched for, just like we do with serialization. rdar://problem/49114811
6e236e0
to
0366343
Compare
@swift-ci Please test |
Build failed |
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.
Thanks for fixing this, and good catch!
Build failed |
[ParseableInterface] Honor "exported module names" (cherry picked from commit d8df1bf)
[ParseableInterface] Honor "exported module names" (cherry picked from commit d8df1bf)
This caused a regression on the Windows tests! |
:-( What was it? Did I do something too shell-y again? |
[ParseableInterface] Honor "exported module names" (cherry picked from commit d8df1bf)
Clang's "exported module name" is a pretty obscure feature (and one we wish we didn't need), but sometimes API is initially exposed through one module in order to build another one, and we want the canonical presented name to be something else. Push this concept into Swift's AST properly, then use that name when printing a parseable interface, just like we do with serialization.
rdar://problem/49114811