[Sema] Add dedicated fix-it for NSObject.hashValue overrides #22081
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.
(Note: I intend to submit this for inclusion in 5.0, too.)
NSObject.hashValue
used to be declared@objc open
by historical accident. Unfortunately, overrides ofNSObject.hashValue
never worked correctly.Swift 4.2 deprecated such overrides (#18407), and the property has been corrected to
@nonobjc public
in Swift 5.0 (#20129).Help migration of existing code by adding a dedicated error message for overrides of
NSObject.hashValue
, with a nice fix-it directing people to overrideNSObject.hash
instead.Before:
After:
rdar://problem/45674813