diff options
| author | lcnr <rust@lcnr.de> | 2023-10-13 09:42:51 +0000 |
|---|---|---|
| committer | lcnr <rust@lcnr.de> | 2023-10-13 09:42:51 +0000 |
| commit | 1bc6ae44014f953844a61123b7984f39b683ad78 (patch) | |
| tree | 6ffea7f52e90f274f64d0671617652b9f63bdacc /tests/ui/impl-trait/auto-trait.rs | |
| parent | 2763ca50da1192aa28295ef4dbe5d06443e1b90a (diff) | |
| download | rust-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.rs | 25 |
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() {} |
