1 // Test that we are able to introduce a negative constraint that
2 // `MyType: !MyTrait` along with other "fundamental" wrappers.
4 // aux-build:coherence_copy_like_lib.rs
6 extern crate coherence_copy_like_lib as lib;
8 struct MyType { x: i32 }
10 trait MyTrait { fn foo() {} }
11 impl<T: lib::MyCopy> MyTrait for T { }
13 // Tuples are not fundamental, therefore this would require that
15 // (MyType,): !MyTrait
17 // which we cannot approve.
18 impl MyTrait for (MyType,) { }