mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
17a6ae2df3
When an associated type with GATs isn't specified in a `dyn Trait`, emit an object safety error instead of only complaining about the missing associated type, as it will lead the user down a path of three different errors before letting them know that what they were trying to do is impossible to begin with. Fix #103155.
61 lines
2.5 KiB
Text
61 lines
2.5 KiB
Text
warning: trait objects without an explicit `dyn` are deprecated
|
|
--> $DIR/issue-28344.rs:4:17
|
|
|
|
|
LL | let x: u8 = BitXor::bitor(0 as u8, 0 as u8);
|
|
| ^^^^^^
|
|
|
|
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
|
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
|
= note: `#[warn(bare_trait_objects)]` on by default
|
|
help: use `dyn`
|
|
|
|
|
LL | let x: u8 = <dyn BitXor>::bitor(0 as u8, 0 as u8);
|
|
| ++++ +
|
|
|
|
error[E0191]: the value of the associated type `Output` in `BitXor` must be specified
|
|
--> $DIR/issue-28344.rs:4:17
|
|
|
|
|
LL | let x: u8 = BitXor::bitor(0 as u8, 0 as u8);
|
|
| ^^^^^^ help: specify the associated type: `BitXor<Output = Type>`
|
|
|
|
error[E0599]: no function or associated item named `bitor` found for trait object `dyn BitXor<_>` in the current scope
|
|
--> $DIR/issue-28344.rs:4:25
|
|
|
|
|
LL | let x: u8 = BitXor::bitor(0 as u8, 0 as u8);
|
|
| ^^^^^
|
|
| |
|
|
| function or associated item not found in `dyn BitXor<_>`
|
|
| help: there is a method with a similar name: `bitxor`
|
|
|
|
warning: trait objects without an explicit `dyn` are deprecated
|
|
--> $DIR/issue-28344.rs:10:13
|
|
|
|
|
LL | let g = BitXor::bitor;
|
|
| ^^^^^^
|
|
|
|
|
= warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
|
|
= note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/warnings-promoted-to-error.html>
|
|
help: use `dyn`
|
|
|
|
|
LL | let g = <dyn BitXor>::bitor;
|
|
| ++++ +
|
|
|
|
error[E0191]: the value of the associated type `Output` in `BitXor` must be specified
|
|
--> $DIR/issue-28344.rs:10:13
|
|
|
|
|
LL | let g = BitXor::bitor;
|
|
| ^^^^^^ help: specify the associated type: `BitXor<Output = Type>`
|
|
|
|
error[E0599]: no function or associated item named `bitor` found for trait object `dyn BitXor<_>` in the current scope
|
|
--> $DIR/issue-28344.rs:10:21
|
|
|
|
|
LL | let g = BitXor::bitor;
|
|
| ^^^^^
|
|
| |
|
|
| function or associated item not found in `dyn BitXor<_>`
|
|
| help: there is a method with a similar name: `bitxor`
|
|
|
|
error: aborting due to 4 previous errors; 2 warnings emitted
|
|
|
|
Some errors have detailed explanations: E0191, E0599.
|
|
For more information about an error, try `rustc --explain E0191`.
|