diff options
Diffstat (limited to 'tests/ui/const-generics/occurs-check/unused-substs-3.rs')
-rw-r--r-- | tests/ui/const-generics/occurs-check/unused-substs-3.rs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/ui/const-generics/occurs-check/unused-substs-3.rs b/tests/ui/const-generics/occurs-check/unused-substs-3.rs new file mode 100644 index 000000000..d5aeab47e --- /dev/null +++ b/tests/ui/const-generics/occurs-check/unused-substs-3.rs @@ -0,0 +1,19 @@ +#![feature(generic_const_exprs)] +#![allow(incomplete_features)] + +// The goal is to get an unevaluated const `ct` with a `Ty::Infer(TyVar(_#1t)` subst. +// +// If we are then able to infer `ty::Infer(TyVar(_#1t) := Ty<ct>` we introduced an +// artificial inference cycle. +fn bind<T>() -> (T, [u8; 6 + 1]) { + todo!() +} + +fn main() { + let (mut t, foo) = bind(); + // `t` is `ty::Infer(TyVar(_#1t))` + // `foo` contains `ty::Infer(TyVar(_#1t))` in its substs + t = foo; + //~^ ERROR mismatched types + //~| NOTE cyclic type +} |