De-anonymize patvar in given pattern #23121
Open
+105
−62
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.
Fixes #23119
A given pattern in a for comprehension results in a fresh val in the body of the mapping function, but is not correlated with patvars.
This commit gives the given its usual given name (in
makeIdPat
) so that the unused check can check it.A subsequent pattern var is named when typechecked, which resulted in the warning.
The fix adds thePatternVar
attachment inmakeIdPat
and also fixes the tree pos, so that it corresponds to the position of the pat var in the elaboration of the for (that is, the position of thegiven T
tree).The unused check can now detect the patvar using the attachment and use the tree pos (instead of the bind name pos).Adds some mild refactoring to name subexpressions and reduce line lengths.