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.
31 lines
1.2 KiB
Plaintext
31 lines
1.2 KiB
Plaintext
error[E0658]: the precise format of `Fn`-family traits' type parameters is subject to change
|
|
--> $DIR/issue-23024.rs:8:39
|
|
|
|
|
LL | println!("{:?}",(vfnfer[0] as dyn Fn)(3));
|
|
| ^^ help: use parenthetical notation instead: `Fn() -> ()`
|
|
|
|
|
= note: see issue #29625 <https://github.com/rust-lang/rust/issues/29625> for more information
|
|
= help: add `#![feature(unboxed_closures)]` to the crate attributes to enable
|
|
|
|
error[E0107]: missing generics for trait `Fn`
|
|
--> $DIR/issue-23024.rs:8:39
|
|
|
|
|
LL | println!("{:?}",(vfnfer[0] as dyn Fn)(3));
|
|
| ^^ expected 1 generic argument
|
|
|
|
|
help: add missing generic argument
|
|
|
|
|
LL | println!("{:?}",(vfnfer[0] as dyn Fn<Args>)(3));
|
|
| ++++++
|
|
|
|
error[E0191]: the value of the associated type `Output` in `FnOnce` must be specified
|
|
--> $DIR/issue-23024.rs:8:39
|
|
|
|
|
LL | println!("{:?}",(vfnfer[0] as dyn Fn)(3));
|
|
| ^^ help: specify the associated type: `Fn<Output = Type>`
|
|
|
|
error: aborting due to 3 previous errors
|
|
|
|
Some errors have detailed explanations: E0107, E0191, E0658.
|
|
For more information about an error, try `rustc --explain E0107`.
|