about summary refs log tree commit diff
path: root/tests/ui/traits/bound/on-structs-and-enums.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/traits/bound/on-structs-and-enums.rs')
-rw-r--r--tests/ui/traits/bound/on-structs-and-enums.rs43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/ui/traits/bound/on-structs-and-enums.rs b/tests/ui/traits/bound/on-structs-and-enums.rs
new file mode 100644
index 00000000000..024084fa724
--- /dev/null
+++ b/tests/ui/traits/bound/on-structs-and-enums.rs
@@ -0,0 +1,43 @@
+trait Trait {}
+
+struct Foo<T:Trait> {
+    x: T,
+}
+
+enum Bar<T:Trait> {
+    ABar(isize),
+    BBar(T),
+    CBar(usize),
+}
+
+impl<T> Foo<T> {
+//~^ ERROR `T: Trait` is not satisfied
+    fn uhoh() {}
+}
+
+struct Baz {
+    a: Foo<isize>, //~ ERROR E0277
+}
+
+enum Boo {
+    Quux(Bar<usize>), //~ ERROR E0277
+}
+
+struct Badness<U> {
+    b: Foo<U>, //~ ERROR E0277
+}
+
+enum MoreBadness<V> {
+    EvenMoreBadness(Bar<V>), //~ ERROR E0277
+}
+
+struct TupleLike(
+    Foo<i32>, //~ ERROR E0277
+);
+
+enum Enum {
+    DictionaryLike { field: Bar<u8> }, //~ ERROR E0277
+}
+
+fn main() {
+}