about summary refs log tree commit diff
path: root/src/test/ui/inference
diff options
context:
space:
mode:
authorCaio <c410.f3r@gmail.com>2021-11-06 15:35:20 -0300
committerCaio <c410.f3r@gmail.com>2021-11-06 15:35:20 -0300
commit7fd15f09008dd72f40d76a5bebb60e3991095a5f (patch)
tree45b540395fe976fa12c67d74f4f965023b84ad3f /src/test/ui/inference
parentd32993afe81a49701edd6f2b8f018020ca50da1a (diff)
Move some tests to more reasonable directories
Diffstat (limited to 'src/test/ui/inference')
-rw-r--r--src/test/ui/inference/lub-glb-with-unbound-infer-var.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/test/ui/inference/lub-glb-with-unbound-infer-var.rs b/src/test/ui/inference/lub-glb-with-unbound-infer-var.rs
new file mode 100644
index 00000000000..c9e117089f5
--- /dev/null
+++ b/src/test/ui/inference/lub-glb-with-unbound-infer-var.rs
@@ -0,0 +1,15 @@
+// run-pass
+// Test for a specific corner case: when we compute the LUB of two fn
+// types and their parameters have unbound variables. In that case, we
+// wind up relating those two variables. This was causing an ICE in an
+// in-progress PR.
+
+fn main() {
+    let a_f: fn(_) = |_| ();
+    let b_f: fn(_) = |_| ();
+    let c_f = match 22 {
+        0 => a_f,
+        _ => b_f,
+    };
+    c_f(4);
+}