-
Notifications
You must be signed in to change notification settings - Fork 10.5k
Remove imported reflection field descriptors #20235
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
Remove imported reflection field descriptors #20235
Conversation
@swift-ci Please test |
Build failed |
d6068f4
to
b85a115
Compare
@swift-ci Please test |
Build failed |
@swift-ci Please test |
Build failed |
…r own TypeRef Right now we expect that every class and protocol has a field descriptor that tells us if the entity is @objc or not. For imported types, the descriptor will not exist if we did not directly emit a field whose concrete type contains the imported type. For example, in lldb, we might have a generic type whose runtime substituted type includes an imported type. In this case, TypeLowering would fail to produce a layout because it did not find a field descriptor for the imported type. A better approach is to have the TypeDecoder call a different factory method for imported types, and handle them specially in TypeLowering, bypassing the field type metadata altogether.
…try point This will eventually replace swift::ide::getTypeFromMangledSymbolname().
b85a115
to
9074136
Compare
@swift-ci Please test |
Build failed |
Build failed |
@dcci Check out the last commit... |
Right now we expect that every class and protocol has a field
descriptor that tells us if the entity is @objc or not.
For imported types, the descriptor will not exist if we did not
directly emit a field whose concrete type contains the imported
type. For example, in lldb, we might have a generic type whose
runtime substituted type includes an imported type.
In this case, TypeLowering would fail to produce a layout because
it did not find a field descriptor for the imported type.
A better approach is to have the TypeDecoder call a different
factory method for imported types, and handle them specially in
TypeLowering, bypassing the field type metadata altogether.