parent
b8dda53e69
commit
18cf44b61b
3 changed files with 42 additions and 1 deletions
13
src/test/ui/traits/alias/issue-83613.rs
Normal file
13
src/test/ui/traits/alias/issue-83613.rs
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#![feature(min_type_alias_impl_trait)]
|
||||
trait OpaqueTrait {}
|
||||
impl<T> OpaqueTrait for T {}
|
||||
type OpaqueType = impl OpaqueTrait;
|
||||
fn mk_opaque() -> OpaqueType {
|
||||
|| 0
|
||||
}
|
||||
trait AnotherTrait {}
|
||||
impl<T: Send> AnotherTrait for T {}
|
||||
impl AnotherTrait for OpaqueType {}
|
||||
//~^ ERROR conflicting implementations of trait `AnotherTrait` for type `impl OpaqueTrait`
|
||||
//~| ERROR cannot implement trait on type alias impl trait
|
||||
fn main() {}
|
||||
23
src/test/ui/traits/alias/issue-83613.stderr
Normal file
23
src/test/ui/traits/alias/issue-83613.stderr
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
error[E0119]: conflicting implementations of trait `AnotherTrait` for type `impl OpaqueTrait`
|
||||
--> $DIR/issue-83613.rs:10:1
|
||||
|
|
||||
LL | impl<T: Send> AnotherTrait for T {}
|
||||
| -------------------------------- first implementation here
|
||||
LL | impl AnotherTrait for OpaqueType {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `impl OpaqueTrait`
|
||||
|
||||
error: cannot implement trait on type alias impl trait
|
||||
--> $DIR/issue-83613.rs:10:1
|
||||
|
|
||||
LL | impl AnotherTrait for OpaqueType {}
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
note: type alias impl trait defined here
|
||||
--> $DIR/issue-83613.rs:4:19
|
||||
|
|
||||
LL | type OpaqueType = impl OpaqueTrait;
|
||||
| ^^^^^^^^^^^^^^^^
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0119`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue