summaryrefslogtreecommitdiffstats
path: root/tests/ui/const-generics/occurs-check/unused-substs-3.rs
diff options
context:
space:
mode:
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.rs19
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
+}