fix: When mapping next-solver's dyn
type, add Self
(aka. bound var ^1.0) to auto traits' substitutions
#20563
+70
−1
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.
Chalk represents dyn types as a list of predicate, the self type should be there. The next solver represents them quite differently. The
Self
was forgotten for the auto trait case.Should mitigate #20443 (comment) and #20443 (comment). The panic is when we try to display the type (it happens to be in MIR lowering) and Chalk expects the
TraitRef
to have a self type. The actual error is way earlier, in inference, when we normalize the type. I chose to write the test at the panic site because it's easy to reproduce the issue there.