about summary refs log tree commit diff
path: root/tests/ui/impl-trait/auto-trait.rs
diff options
context:
space:
mode:
authorlcnr <rust@lcnr.de>2023-10-13 09:42:51 +0000
committerlcnr <rust@lcnr.de>2023-10-13 09:42:51 +0000
commit1bc6ae44014f953844a61123b7984f39b683ad78 (patch)
tree6ffea7f52e90f274f64d0671617652b9f63bdacc /tests/ui/impl-trait/auto-trait.rs
parent2763ca50da1192aa28295ef4dbe5d06443e1b90a (diff)
downloadrust-1bc6ae44014f953844a61123b7984f39b683ad78.tar.gz
rust-1bc6ae44014f953844a61123b7984f39b683ad78.zip
explicitly handle auto trait leakage in coherence
Diffstat (limited to 'tests/ui/impl-trait/auto-trait.rs')
-rw-r--r--tests/ui/impl-trait/auto-trait.rs25
1 files changed, 0 insertions, 25 deletions
diff --git a/tests/ui/impl-trait/auto-trait.rs b/tests/ui/impl-trait/auto-trait.rs
deleted file mode 100644
index 35994e4a5ba..00000000000
--- a/tests/ui/impl-trait/auto-trait.rs
+++ /dev/null
@@ -1,25 +0,0 @@
-// Tests that type alias impls traits do not leak auto-traits for
-// the purposes of coherence checking
-#![feature(type_alias_impl_trait)]
-
-trait OpaqueTrait {}
-impl<T> OpaqueTrait for T {}
-type OpaqueType = impl OpaqueTrait;
-fn mk_opaque() -> OpaqueType {
-    ()
-}
-
-#[derive(Debug)]
-struct D<T>(T);
-
-trait AnotherTrait {}
-impl<T: Send> AnotherTrait for T {}
-
-// This is in error, because we cannot assume that `OpaqueType: !Send`.
-// (We treat opaque types as "foreign types" that could grow more impls
-// in the future.)
-impl AnotherTrait for D<OpaqueType> {
-    //~^ ERROR conflicting implementations of trait `AnotherTrait` for type `D<OpaqueType>`
-}
-
-fn main() {}