}
fn fold_ty(&mut self, ty: Ty<'tcx>) -> Ty<'tcx> {
- self.tcx
- .normalize_generic_arg_after_erasing_regions(self.param_env.and(ty.into()))
- .expect_ty()
+ let arg = self.param_env.and(ty.into());
+ self.tcx.normalize_generic_arg_after_erasing_regions(arg).expect_ty()
}
fn fold_const(&mut self, c: &'tcx ty::Const<'tcx>) -> &'tcx ty::Const<'tcx> {
- self.tcx
- .normalize_generic_arg_after_erasing_regions(self.param_env.and(c.into()))
- .expect_const()
+ let arg = self.param_env.and(c.into());
+ self.tcx.normalize_generic_arg_after_erasing_regions(arg).expect_const()
}
}
-error[E0391]: cycle detected when const-evaluating + checking `Tr::A`
- --> $DIR/defaults-cyclic-fail.rs:5:5
+error[E0391]: cycle detected when normalizing `<() as Tr>::A`
+ |
+note: ...which requires const-evaluating + checking `Tr::A`...
+ --> $DIR/defaults-cyclic-fail.rs:6:5
|
LL | const A: u8 = Self::B;
| ^^^^^^^^^^^^^^^^^^^^^^
+note: ...which requires const-evaluating + checking `Tr::A`...
+ --> $DIR/defaults-cyclic-fail.rs:6:5
|
+LL | const A: u8 = Self::B;
+ | ^^^^^^^^^^^^^^^^^^^^^^
note: ...which requires const-evaluating `Tr::A`...
- --> $DIR/defaults-cyclic-fail.rs:5:19
+ --> $DIR/defaults-cyclic-fail.rs:6:5
|
LL | const A: u8 = Self::B;
- | ^^^^^^^
+ | ^^^^^^^^^^^^^^^^^^^^^^
+ = note: ...which requires normalizing `<() as Tr>::B`...
+note: ...which requires const-evaluating + checking `Tr::B`...
+ --> $DIR/defaults-cyclic-fail.rs:8:5
+ |
+LL | const B: u8 = Self::A;
+ | ^^^^^^^^^^^^^^^^^^^^^^
note: ...which requires const-evaluating + checking `Tr::B`...
--> $DIR/defaults-cyclic-fail.rs:8:5
|
LL | const B: u8 = Self::A;
| ^^^^^^^^^^^^^^^^^^^^^^
note: ...which requires const-evaluating `Tr::B`...
- --> $DIR/defaults-cyclic-fail.rs:8:19
+ --> $DIR/defaults-cyclic-fail.rs:8:5
|
LL | const B: u8 = Self::A;
- | ^^^^^^^
- = note: ...which again requires const-evaluating + checking `Tr::A`, completing the cycle
+ | ^^^^^^^^^^^^^^^^^^^^^^
+ = note: ...which again requires normalizing `<() as Tr>::A`, completing the cycle
note: cycle used when const-evaluating `main`
- --> $DIR/defaults-cyclic-fail.rs:16:16
+ --> $DIR/defaults-cyclic-fail.rs:14:1
|
-LL | assert_eq!(<() as Tr>::A, 0);
- | ^^^^^^^^^^^^^
+LL | fn main() {
+ | ^^^^^^^^^
error: aborting due to previous error
LL | pub fn size_of<T>() -> usize;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
= note: ...which requires computing layout of `Foo`...
- = note: ...which requires normalizing `ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All, def_id: None }, value: [u8; _] }`...
+ = note: ...which requires normalizing `[u8; _]`...
= note: ...which again requires const-evaluating + checking `Foo::bytes::{{constant}}#0`, completing the cycle
note: cycle used when processing `Foo`
--> $DIR/const-size_of-cycle.rs:7:1