Skip to content

Commit aeff91d

Browse files
committed
Auto merge of #56251 - scalexm:root-universe, r=nikomatsakis
Put all existential ty vars in the `ROOT` universe r? @nikomatsakis
2 parents 10e2c72 + efb2949 commit aeff91d

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

src/librustc/infer/canonical/canonicalizer.rs

+12-6
Original file line numberDiff line numberDiff line change
@@ -346,12 +346,18 @@ impl<'cx, 'gcx, 'tcx> TypeFolder<'gcx, 'tcx> for Canonicalizer<'cx, 'gcx, 'tcx>
346346

347347
// `TyVar(vid)` is unresolved, track its universe index in the canonicalized
348348
// result
349-
Err(ui) => self.canonicalize_ty_var(
350-
CanonicalVarInfo {
351-
kind: CanonicalVarKind::Ty(CanonicalTyVarKind::General(ui))
352-
},
353-
t
354-
)
349+
Err(mut ui) => {
350+
if !self.infcx.unwrap().tcx.sess.opts.debugging_opts.chalk {
351+
// FIXME: perf problem described in #55921.
352+
ui = ty::UniverseIndex::ROOT;
353+
}
354+
self.canonicalize_ty_var(
355+
CanonicalVarInfo {
356+
kind: CanonicalVarKind::Ty(CanonicalTyVarKind::General(ui))
357+
},
358+
t
359+
)
360+
}
355361
}
356362
}
357363

src/test/ui/nll/user-annotations/dump-fn-method.stderr

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ error: user substs: Canonical { max_universe: U0, variables: [], value: UserSubs
1616
LL | let x = <u8 as Bazoom<u16>>::method::<u32>; //~ ERROR [u8, u16, u32]
1717
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1818

19-
error: user substs: Canonical { max_universe: U1, variables: [CanonicalVarInfo { kind: Ty(General(U1)) }, CanonicalVarInfo { kind: Ty(General(U1)) }], value: UserSubsts { substs: [^0, ^1, u32], user_self_ty: None } }
19+
error: user substs: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }, CanonicalVarInfo { kind: Ty(General(U0)) }], value: UserSubsts { substs: [^0, ^1, u32], user_self_ty: None } }
2020
--> $DIR/dump-fn-method.rs:54:5
2121
|
2222
LL | y.method::<u32>(44, 66); //~ ERROR [^0, ^1, u32]

0 commit comments

Comments
 (0)