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
22 lines
414 B
Rust
22 lines
414 B
Rust
#![feature(generic_const_exprs)]
|
|
#![allow(incomplete_features)]
|
|
|
|
|
|
const fn bar<T: ?Sized>() -> usize { 7 }
|
|
|
|
trait Foo {
|
|
fn test(&self) -> [u8; bar::<Self>()];
|
|
}
|
|
|
|
impl Foo for () {
|
|
fn test(&self) -> [u8; bar::<Self>()] {
|
|
[0; bar::<Self>()]
|
|
}
|
|
}
|
|
|
|
fn use_dyn(v: &dyn Foo) { //~ERROR the trait `Foo` is not dyn compatible
|
|
v.test(); //~ERROR the trait `Foo` is not dyn compatible
|
|
}
|
|
|
|
fn main() {}
|