diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-10-25 23:37:10 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-10-25 23:37:10 +0200 |
| commit | f783ce95ec3ac8cf91ccfd3711d8afc9bebcb9b8 (patch) | |
| tree | 8c16fff10ce6796bea873185ed858a7e805e01d3 /compiler/rustc_trait_selection | |
| parent | d30fe8b4e2bf718a3f951096bae451c1652b79b5 (diff) | |
| parent | 8f3b4f94ef739b9ad7d4f3cdee6be91f6913938f (diff) | |
| download | rust-f783ce95ec3ac8cf91ccfd3711d8afc9bebcb9b8.tar.gz rust-f783ce95ec3ac8cf91ccfd3711d8afc9bebcb9b8.zip | |
Rollup merge of #117008 - compiler-errors:canonical, r=lcnr
Uplift `Canonical` to `rustc_type_ir` I plan on moving the new trait solver's canonicalizer into either `rustc_type_ir` or a child crate. One dependency on this is lifting `Canonical<V>` to `rustc_type_ir` so we can actually name the canonicalized values. I may also later lift `CanonicalVarInfo` into the new trait solver. I can't really tell what other changes need to be done, but I'm just putting this up sooner than later since I'm almost certain it'll need to be done regardless of other design choices. There are a couple of warts introduced by this PR, since we no longer can define inherent `Canonical` impls in `rustc_middle` -- see the changes to: * `compiler/rustc_trait_selection/src/traits/query/normalize.rs` * `compiler/rustc_hir_typeck/src/fn_ctxt/_impl.rs` r? lcnr
Diffstat (limited to 'compiler/rustc_trait_selection')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/query/normalize.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/query/normalize.rs b/compiler/rustc_trait_selection/src/traits/query/normalize.rs index 349741a698c..c761d0d103e 100644 --- a/compiler/rustc_trait_selection/src/traits/query/normalize.rs +++ b/compiler/rustc_trait_selection/src/traits/query/normalize.rs @@ -293,7 +293,7 @@ impl<'cx, 'tcx> FallibleTypeFolder<TyCtxt<'tcx>> for QueryNormalizer<'cx, 'tcx> _ => unreachable!(), }?; // We don't expect ambiguity. - if result.is_ambiguous() { + if !result.value.is_proven() { // Rustdoc normalizes possibly not well-formed types, so only // treat this as a bug if we're not in rustdoc. if !tcx.sess.opts.actually_rustdoc { |
