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.
There are 2 notable updates to this proposal (compared to the original pitch) after working through the implementation.
Metatype keypaths are back deployable. Modules/libraries using older compilers will not need to re-compile to see correct operator comparison results. (The entire Implications on adoption section in the pitch is no longer an issue). For reference: Static properties in older modules/libraries will be missing property descriptors when they are referenced via keypath in a module using a compiler with this feature implementation. However, we discovered that the missing property descriptors fortunately did not affect Equatable/Hashable conformance in the Standard Library.
Diagnostics will show an error message if
.Type
is left out of a metatype keypath reference (where the first component is a static property), but a fix-it is not possible at this time.I have left the pitch text intact but the above discoveries are reflected in the proposal text.