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.
This reuses the NamedTuple type extractor underneath, and is careful not to reduce when the scrutinee of a match type.
The use case is to be able to define a recursive algorithm such as "does this named tuple type have a substructure equivalent to this other named tuple type?"
e.g. the status quo in #22422 is that
Int
can not be compared tocase NamedTuple[ns,vs]
and(x: Int, y: Int)
can not be compared tocase Int
. With this compile time op you can have branching logic.I should probably add an example of the recursive algorithm as a test. - but initial testing in the repl is good result:
also for bonus the
OptFrom
:fixes #22422