simplify: Drop mapping tparams to tvars #18786
Closed
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.
Mapping type params back to type vars is dangerous for match types
because it can lead to one use-site's type var being cached as the
reduction of the match type in a match alias defintion.
It looks like mapping type parameters to type vars is only important
when getting the instance type of a type parameter, because the bounds
could make references to other parameters, including as type arguments.
So, as long as we map then, we can drop this mapping from general
simplification.
There is, however, something going on with capture checking, which I
documented, but perhaps it's due to some underlying bug. The situation
occurs because boxed A *: T does seem to match case x *: _. So I kept
the fully-defined forcing and normalization case from simplify.