about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/test/ui/existential_types/generic_duplicate_param_use5.rs15
-rw-r--r--src/test/ui/existential_types/generic_duplicate_param_use5.stderr19
2 files changed, 34 insertions, 0 deletions
diff --git a/src/test/ui/existential_types/generic_duplicate_param_use5.rs b/src/test/ui/existential_types/generic_duplicate_param_use5.rs
new file mode 100644
index 00000000000..f9d336d759b
--- /dev/null
+++ b/src/test/ui/existential_types/generic_duplicate_param_use5.rs
@@ -0,0 +1,15 @@
+#![feature(existential_type)]
+
+fn main() {}
+
+// test that unused generic parameters are ok
+existential type Two<T, U>: 'static;
+
+fn one<T: 'static>(t: T) -> Two<T, T> {
+    t
+}
+
+fn two<T: 'static, U: 'static>(t: T, _: U) -> Two<U, T> {
+//~^ ERROR defining existential type use differs from previous
+    t
+}
diff --git a/src/test/ui/existential_types/generic_duplicate_param_use5.stderr b/src/test/ui/existential_types/generic_duplicate_param_use5.stderr
new file mode 100644
index 00000000000..e2bf4a9e0df
--- /dev/null
+++ b/src/test/ui/existential_types/generic_duplicate_param_use5.stderr
@@ -0,0 +1,19 @@
+error: defining existential type use differs from previous
+  --> $DIR/generic_duplicate_param_use5.rs:12:1
+   |
+LL | / fn two<T: 'static, U: 'static>(t: T, _: U) -> Two<U, T> {
+LL | | //~^ ERROR defining existential type use differs from previous
+LL | |     t
+LL | | }
+   | |_^
+   |
+note: previous use here
+  --> $DIR/generic_duplicate_param_use5.rs:8:1
+   |
+LL | / fn one<T: 'static>(t: T) -> Two<T, T> {
+LL | |     t
+LL | | }
+   | |_^
+
+error: aborting due to previous error
+