mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-30 12:07:40 +00:00

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
21 lines
436 B
Rust
21 lines
436 B
Rust
use std::fmt::Debug;
|
|
|
|
trait Foo {
|
|
fn baz(&self) -> impl Debug;
|
|
}
|
|
|
|
impl Foo for u32 {
|
|
fn baz(&self) -> impl Debug {
|
|
32
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let i = Box::new(42_u32) as Box<dyn Foo>;
|
|
//~^ ERROR the trait `Foo` is not dyn compatible
|
|
//~| ERROR the trait `Foo` is not dyn compatible
|
|
let s = i.baz();
|
|
//~^ ERROR the trait `Foo` is not dyn compatible
|
|
//~| ERROR the trait `Foo` is not dyn compatible
|
|
}
|