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
16 lines
428 B
Rust
16 lines
428 B
Rust
trait Trait {
|
|
fn baz(&self, _: Self) {}
|
|
//~^ ERROR the size for values of type `Self` cannot be known
|
|
fn bat(&self) -> Self {}
|
|
//~^ ERROR mismatched types
|
|
//~| ERROR the size for values of type `Self` cannot be known
|
|
}
|
|
|
|
fn bar(x: &dyn Trait) {} //~ ERROR the trait `Trait` is not dyn compatible
|
|
|
|
trait Other: Sized {}
|
|
|
|
fn foo(x: &dyn Other) {} //~ ERROR the trait `Other` is not dyn compatible
|
|
|
|
fn main() {}
|