about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/test/ui/type-alias-impl-trait/cross_inference.rs10
-rw-r--r--src/test/ui/type-alias-impl-trait/cross_inference_rpit.rs14
2 files changed, 24 insertions, 0 deletions
diff --git a/src/test/ui/type-alias-impl-trait/cross_inference.rs b/src/test/ui/type-alias-impl-trait/cross_inference.rs
new file mode 100644
index 00000000000..dafaf40a69d
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/cross_inference.rs
@@ -0,0 +1,10 @@
+// check-pass
+
+#![feature(type_alias_impl_trait)]
+
+fn main() {
+    type T = impl Copy;
+    let foo: T = (1u32, 2u32);
+    let x: (_, _) = foo;
+    println!("{:?}", x);
+}
diff --git a/src/test/ui/type-alias-impl-trait/cross_inference_rpit.rs b/src/test/ui/type-alias-impl-trait/cross_inference_rpit.rs
new file mode 100644
index 00000000000..f6affbf1759
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/cross_inference_rpit.rs
@@ -0,0 +1,14 @@
+// check-pass
+
+fn foo(b: bool) -> impl Copy {
+    if b {
+        return (5,6)
+    }
+    let x: (_, _) = foo(true);
+    println!("{:?}", x);
+    (1u32, 2u32)
+}
+
+fn main() {
+    foo(false);
+}