summaryrefslogtreecommitdiffstats
path: root/src/test/ui/variance/variance-unused-type-param.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/variance/variance-unused-type-param.rs')
-rw-r--r--src/test/ui/variance/variance-unused-type-param.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/test/ui/variance/variance-unused-type-param.rs b/src/test/ui/variance/variance-unused-type-param.rs
new file mode 100644
index 000000000..d11140643
--- /dev/null
+++ b/src/test/ui/variance/variance-unused-type-param.rs
@@ -0,0 +1,28 @@
+#![allow(dead_code)]
+
+// Test that we report an error for unused type parameters in types and traits,
+// and that we offer a helpful suggestion.
+
+struct SomeStruct<A> { x: u32 }
+//~^ ERROR parameter `A` is never used
+
+enum SomeEnum<A> { Nothing }
+//~^ ERROR parameter `A` is never used
+
+// Here T might *appear* used, but in fact it isn't.
+enum ListCell<T> {
+//~^ ERROR parameter `T` is never used
+ Cons(Box<ListCell<T>>),
+ Nil
+}
+
+struct WithBounds<T: Sized> {}
+//~^ ERROR parameter `T` is never used
+
+struct WithWhereBounds<T> where T: Sized {}
+//~^ ERROR parameter `T` is never used
+
+struct WithOutlivesBounds<T: 'static> {}
+//~^ ERROR parameter `T` is never used
+
+fn main() {}