fix: ignore impls with #[rustc_reservation_impl]
#14750
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 #12247
Fixes #14279
Currently core has two blanket impls for
From
:impl<T> From<T> for T
andimpl<T> From<!> for T
. These are conflicting and thus chalk cannot uniquely solveS: From<?0>
for any typeS
.The latter impl is actually a reservation impl and should not be considered during trait selection. More generally, impls attributed with perma-unstable
#[rustc_reservation_impl]
attribute should be disregarded except for coherence checks. See rust-lang/rust#64631 and rust-lang/rust#64715 for details.I chose to entirely ignore them in hir-ty because we don't do coherence checks.