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.
24 lines
920 B
Text
24 lines
920 B
Text
error[E0191]: the value of the associated type `Output` in `Add` must be specified
|
|
--> $DIR/issue-21950.rs:10:25
|
|
|
|
|
LL | type Output;
|
|
| ----------- `Output` defined here
|
|
...
|
|
LL | let x = &10 as &dyn Add;
|
|
| ^^^ help: specify the associated type: `Add<Output = Type>`
|
|
|
|
error[E0393]: the type parameter `Rhs` must be explicitly specified
|
|
--> $DIR/issue-21950.rs:10:25
|
|
|
|
|
LL | trait Add<Rhs=Self> {
|
|
| ------------------- type parameter `Rhs` must be specified for this
|
|
...
|
|
LL | let x = &10 as &dyn Add;
|
|
| ^^^ help: set the type parameter to the desired type: `Add<Rhs>`
|
|
|
|
|
= note: because of the default `Self` reference, type parameters must be specified on object types
|
|
|
|
error: aborting due to 2 previous errors
|
|
|
|
Some errors have detailed explanations: E0191, E0393.
|
|
For more information about an error, try `rustc --explain E0191`.
|