diff options
Diffstat (limited to 'tests/ui/coherence/coherence-conflicting-negative-trait-impl.rs')
-rw-r--r-- | tests/ui/coherence/coherence-conflicting-negative-trait-impl.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/ui/coherence/coherence-conflicting-negative-trait-impl.rs b/tests/ui/coherence/coherence-conflicting-negative-trait-impl.rs new file mode 100644 index 000000000..24b878927 --- /dev/null +++ b/tests/ui/coherence/coherence-conflicting-negative-trait-impl.rs @@ -0,0 +1,17 @@ +#![feature(negative_impls)] +#![feature(marker_trait_attr)] + +#[marker] +trait MyTrait {} + +struct TestType<T>(::std::marker::PhantomData<T>); + +unsafe impl<T: MyTrait + 'static> Send for TestType<T> {} + +impl<T: MyTrait> !Send for TestType<T> {} //~ ERROR found both positive and negative implementation + +unsafe impl<T: 'static> Send for TestType<T> {} //~ ERROR conflicting implementations + +impl !Send for TestType<i32> {} + +fn main() {} |