diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-08-04 09:18:59 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-04 09:18:59 +0200 |
| commit | d6f714e44fd42319a2dd8c63003abaa65cbdbbc7 (patch) | |
| tree | 749242d3e082fded34d0874fe26cf355f1ba6072 /compiler/rustc_infer/src | |
| parent | 5ea536b35f3b6a208090960374e03a8f4a35a935 (diff) | |
| parent | d87f4a6dc1e1f4f37ad3f6d530483e735e195b5e (diff) | |
| download | rust-d6f714e44fd42319a2dd8c63003abaa65cbdbbc7.tar.gz rust-d6f714e44fd42319a2dd8c63003abaa65cbdbbc7.zip | |
Rollup merge of #114355 - compiler-errors:resolve_vars_early, r=lcnr
resolve before canonicalization in new solver, ICE if unresolved Fold the values with a resolver before canonicalization instead of making it happen within canonicalization. This allows us to filter trivial region constraints from the external constraints. r? ``@lcnr``
Diffstat (limited to 'compiler/rustc_infer/src')
| -rw-r--r-- | compiler/rustc_infer/src/infer/canonical/canonicalizer.rs | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/compiler/rustc_infer/src/infer/canonical/canonicalizer.rs b/compiler/rustc_infer/src/infer/canonical/canonicalizer.rs index 54d901f20da..9d7a9fefd08 100644 --- a/compiler/rustc_infer/src/infer/canonical/canonicalizer.rs +++ b/compiler/rustc_infer/src/infer/canonical/canonicalizer.rs @@ -562,15 +562,9 @@ impl<'cx, 'tcx> Canonicalizer<'cx, 'tcx> { V: TypeFoldable<TyCtxt<'tcx>>, { let needs_canonical_flags = if canonicalize_region_mode.any() { - TypeFlags::HAS_INFER | - TypeFlags::HAS_FREE_REGIONS | // `HAS_RE_PLACEHOLDER` implies `HAS_FREE_REGIONS` - TypeFlags::HAS_TY_PLACEHOLDER | - TypeFlags::HAS_CT_PLACEHOLDER + TypeFlags::HAS_INFER | TypeFlags::HAS_PLACEHOLDER | TypeFlags::HAS_FREE_REGIONS } else { - TypeFlags::HAS_INFER - | TypeFlags::HAS_RE_PLACEHOLDER - | TypeFlags::HAS_TY_PLACEHOLDER - | TypeFlags::HAS_CT_PLACEHOLDER + TypeFlags::HAS_INFER | TypeFlags::HAS_PLACEHOLDER }; // Fast path: nothing that needs to be canonicalized. |
