-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[ModuleInterface] Explicitly print implied Hashable et al on enums #25650
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
@swift-ci Please test |
Build failed |
Hm, I thought I got the availability stuff in there. I'll check again. |
…bold of me to assume the availability stuff that was there already worked. |
This is a good argument in favor of always reconstructing the inheritance clause from local conformances and the superclass, instead of preserving what the user wrote :) |
…I'm not sure why? |
@jrose-apple You would not have encountered this bug if we printed the 'single point of truth' as the inheritance clause instead of just printing what the user wrote (however there might have been other bugs). |
Enums have a handful of conformances that are implied by their structure: Equatable and Hashable if they have no payloads, and RawRepresentable if they have a raw value. In the spirit of making implicit things explicit, these should be printed in the module interface. rdar://problem/50100142
4dbc3dd
to
13bbaf9
Compare
@swift-ci Please test |
Build failed |
Build failed |
@swift-ci Please test Linux |
…wiftlang#25650) Enums have a handful of conformances that are implied by their structure: Equatable and Hashable if they have no payloads, and RawRepresentable if they have a raw value. In the spirit of making implicit things explicit, these should be printed in the module interface. rdar://problem/50100142 (cherry picked from commit b668017)
Enums have a handful of conformances that are implied by their structure: Equatable and Hashable if they have no payloads, and RawRepresentable if they have a raw value. In the spirit of making implicit things explicit, these should be printed in the module interface.
rdar://problem/50100142