fold instead of obliterating args #105611
Merged
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 #105608
we call
const_eval_resolve
on the following constant:when expanded out to
ConstKind::Expr
there are no infer vars so we attempt to evaluate it after replacing infer vars with garbage, however the current logic for replacing with garbage replaces the whole arg containing the infer var rather than just the infer var. This means that after garbage replacement has occured we attempt to evaluate:Which then leads to ctfe being unable to evaluate the const. With this PR we attempt to evaluate:
which ctfe can handle.
I am not entirely sure why this function is supposed to replace params with placeholders rather than just inference vars 🤔