-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[Debug Info] Emit -gdwarf-types debug info for Builtin.FixedArray<> #79181
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
[Debug Info] Emit -gdwarf-types debug info for Builtin.FixedArray<> #79181
Conversation
@swift-ci test source compatibility |
@swift-ci test |
b421a26
to
14bb4b6
Compare
@swift-ci smoke test |
test with swiftlang/llvm-project#9970 |
test with swiftlang/llvm-project#9970 |
@swift-ci test linux |
@swift-ci smoke test |
@swift-ci test macOS |
14bb4b6
to
458dbaa
Compare
@swift-ci test |
c50ab3b
to
b373a5c
Compare
@swift-ci test |
@swift-ci test source compatibility |
Renamed |
@swift-ci smoke test |
Linux test failure is unrelated. |
@swift-ci test linux |
1 similar comment
@swift-ci test linux |
@swift-ci test windows |
@swift-ci smoke test |
@swift-ci test linux |
@swift-ci test linux |
@swift-ci test linux |
1 similar comment
@swift-ci test linux |
b373a5c
to
c8db0f6
Compare
@swift-ci test |
@swift-ci smoke test |
This commit also changes how specialized types are being emitted. Previously we would not emitthe detailed member information in the specialized type itself, and instead rely on the fact that it was present in the unspecialized type, however, this wold prevent us from emitting any bound generic members, so we're now emitting the members in both variants of the type. This uncovered a with type aliases that this commit also addresses: Because we don't canonicalize types prior to caching in order to preserve type sugar, alternative representations of recursive types (with one or more levels of recursion unfolded) could create potential infinite chains of types. This is addressed by checking whether a sugared type has an already emitted canonical representation first, and if yes, creating a typedef node pointing directly to it. The donwside of doing this is that it can lead to the disappearnce of type aliases definitions when they are used as parameters in bound generic types. However, we still preserve that a type was `MyClass<MyAlias>`. We just might have a typedef pointing director from `MyClass<MyAlias>` -> `MyClass<CanonicalType>`. rdar://144315592
c8db0f6
to
fcbebc5
Compare
@swift-ci test |
@swift-ci smoke test |
@swift-ci test linux |
1 similar comment
@swift-ci test linux |
@swift-ci test |
@swift-ci test source compatibility |
This commit also changes how specialized types are being emitted. Previously we
would not emitthe detailed member information in the specialized type itself,
and instead rely on the fact that it was present in the unspecialized type,
however, this wold prevent us from emitting any bound generic members, so we're
now emitting the members in both variants of the type.