[lldb] Don't resolve typealiases inside a function-local type's name#13234
Open
augusto2112 wants to merge 1 commit into
Open
[lldb] Don't resolve typealiases inside a function-local type's name#13234augusto2112 wants to merge 1 commit into
augusto2112 wants to merge 1 commit into
Conversation
A class/struct/enum declared inside a function has that whole function baked into its mangled name, including the function's argument and return types. When one of those is a Clang swift_newtype alias, the compiler keeps the alias spelled out and uses that same spelling in the reflection field descriptor. By resolving these typealiases we inadvertently made them impossible to find in reflection metadata. Detect these types (their name is a LocalDeclName) and leave them unchanged. Assisted-by: claude rdar://177196779
a032437 to
7ff4912
Compare
Author
|
@swift-ci test |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A class/struct/enum declared inside a function has that whole function baked into its mangled name, including the function's argument and return types. When one of those is a Clang swift_newtype alias, the compiler keeps the alias spelled out and uses that same spelling in the reflection field descriptor.
By resolving these typealiases we inadvertently made them impossible to find in reflection metadata.
Detect these types (their name is a LocalDeclName) and leave them unchanged.
Assisted-by: claude
rdar://177196779