This CL makes a number of small changes to dyn compatibility errors: - "object safety" has been renamed to "dyn-compatibility" throughout - "Convert to enum" suggestions are no longer generated when there exists a type-generic impl of the trait or an impl for `dyn OtherTrait` - Several error messages are reorganized for user readability Additionally, the dyn compatibility error creation code has been split out into functions. cc #132713 cc #133267
17 lines
425 B
Rust
17 lines
425 B
Rust
#![allow(bare_trait_objects)]
|
|
trait A: Sized {
|
|
fn f(a: A) -> A;
|
|
//~^ ERROR associated item referring to unboxed trait object for its own trait
|
|
//~| ERROR the trait `A` is not dyn compatible
|
|
}
|
|
trait B {
|
|
fn f(a: B) -> B;
|
|
//~^ ERROR associated item referring to unboxed trait object for its own trait
|
|
//~| ERROR the trait `B` is not dyn compatible
|
|
}
|
|
trait C {
|
|
fn f(&self, a: C) -> C;
|
|
}
|
|
|
|
fn main() {}
|