mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-27 17:24:06 +00:00
09f16b596d
Do not attempt to provide an accurate suggestion for `impl Trait` in bare trait types when linting. Instead, only do the object safety check when an E0782 is already going to be emitted in the 2021 edition. Fix #120241.
22 lines
979 B
Plaintext
22 lines
979 B
Plaintext
error[E0038]: the trait `Ord` cannot be made into an object
|
|
--> $DIR/bare-trait-dont-suggest-dyn.rs:8:33
|
|
|
|
|
LL | fn ord_prefer_dot(s: String) -> Ord {
|
|
| ^^^ `Ord` cannot be made into an object
|
|
|
|
|
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
|
|
--> $SRC_DIR/core/src/cmp.rs:LL:COL
|
|
|
|
|
= note: the trait cannot be made into an object because it uses `Self` as a type parameter
|
|
::: $SRC_DIR/core/src/cmp.rs:LL:COL
|
|
|
|
|
= note: the trait cannot be made into an object because it uses `Self` as a type parameter
|
|
help: consider using an opaque type instead
|
|
|
|
|
LL | fn ord_prefer_dot(s: String) -> impl Ord {
|
|
| ++++
|
|
|
|
error: aborting due to 1 previous error
|
|
|
|
For more information about this error, try `rustc --explain E0038`.
|