mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-05 03:38:29 +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
17 lines
308 B
Rust
17 lines
308 B
Rust
trait Q<T:?Sized> {}
|
|
trait Foo where u32: Q<Self> {
|
|
fn foo(&self);
|
|
}
|
|
|
|
impl Q<()> for u32 {}
|
|
impl Foo for () {
|
|
fn foo(&self) {
|
|
println!("foo!");
|
|
}
|
|
}
|
|
|
|
fn main() {
|
|
let _f: Box<dyn Foo> = //~ ERROR `Foo` is not dyn compatible
|
|
Box::new(()); //~ ERROR `Foo` is not dyn compatible
|
|
}
|