diff options
Diffstat (limited to 'src/test/ui/coherence/coherence-impl-trait-for-marker-trait-negative.rs')
-rw-r--r-- | src/test/ui/coherence/coherence-impl-trait-for-marker-trait-negative.rs | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/src/test/ui/coherence/coherence-impl-trait-for-marker-trait-negative.rs b/src/test/ui/coherence/coherence-impl-trait-for-marker-trait-negative.rs deleted file mode 100644 index 50d9a480a..000000000 --- a/src/test/ui/coherence/coherence-impl-trait-for-marker-trait-negative.rs +++ /dev/null @@ -1,30 +0,0 @@ -#![feature(auto_traits)] -#![feature(negative_impls)] - -// Test for issue #56934 - that it is impossible to redundantly -// implement an auto-trait for a trait object type that contains it. - -// Negative impl variant. - -auto trait Marker1 {} -auto trait Marker2 {} - -trait Object: Marker1 {} - -// A supertrait marker is illegal... -impl !Marker1 for dyn Object + Marker2 { } //~ ERROR E0371 -// ...and also a direct component. -impl !Marker2 for dyn Object + Marker2 { } //~ ERROR E0371 - -// But implementing a marker if it is not present is OK. -impl !Marker2 for dyn Object {} // OK - -// A non-principal trait-object type is orphan even in its crate. -impl !Send for dyn Marker2 {} //~ ERROR E0117 - -// And impl'ing a remote marker for a local trait object is forbidden -// by one of these special orphan-like rules. -impl !Send for dyn Object {} //~ ERROR E0321 -impl !Send for dyn Object + Marker2 {} //~ ERROR E0321 - -fn main() { } |