about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/ui/auto-instantiate.rs13
-rw-r--r--tests/ui/inference/auto-instantiate.rs28
2 files changed, 28 insertions, 13 deletions
diff --git a/tests/ui/auto-instantiate.rs b/tests/ui/auto-instantiate.rs
deleted file mode 100644
index 73ad5d701e1..00000000000
--- a/tests/ui/auto-instantiate.rs
+++ /dev/null
@@ -1,13 +0,0 @@
-//@ run-pass
-
-#![allow(dead_code)]
-#[derive(Debug)]
-struct Pair<T, U> { a: T, b: U }
-struct Triple { x: isize, y: isize, z: isize }
-
-fn f<T,U>(x: T, y: U) -> Pair<T, U> { return Pair {a: x, b: y}; }
-
-pub fn main() {
-    println!("{}", f(Triple {x: 3, y: 4, z: 5}, 4).a.x);
-    println!("{}", f(5, 6).a);
-}
diff --git a/tests/ui/inference/auto-instantiate.rs b/tests/ui/inference/auto-instantiate.rs
new file mode 100644
index 00000000000..bf43330a0b7
--- /dev/null
+++ b/tests/ui/inference/auto-instantiate.rs
@@ -0,0 +1,28 @@
+//! Check that type parameters in generic function arg position and in "nested" return type position
+//! can be inferred on an invocation of the generic function.
+//!
+//! See <https://github.com/rust-lang/rust/issues/45>.
+
+//@ run-pass
+
+#![allow(dead_code)]
+#[derive(Debug)]
+struct Pair<T, U> {
+    a: T,
+    b: U,
+}
+
+struct Triple {
+    x: isize,
+    y: isize,
+    z: isize,
+}
+
+fn f<T, U>(x: T, y: U) -> Pair<T, U> {
+    return Pair { a: x, b: y };
+}
+
+pub fn main() {
+    println!("{}", f(Triple {x: 3, y: 4, z: 5}, 4).a.x);
+    println!("{}", f(5, 6).a);
+}