Make suggestions verbose.
When encountering `method(type)` bound, suggest `method(..)` instead of `method()`.
```
error: argument types not allowed with return type notation
--> $DIR/bad-inputs-and-output.rs:9:23
|
LL | fn foo<T: Trait<method(i32): Send>>() {}
| ^^^^^
|
help: remove the input types
|
LL - fn foo<T: Trait<method(i32): Send>>() {}
LL + fn foo<T: Trait<method(..): Send>>() {}
|
```
When encountering both return type and arg list that isn't `..`, suggest replacing both.
```
error: return type not allowed with return type notation
--> $DIR/bad-inputs-and-output.rs:12:25
|
LL | fn bar<T: Trait<method() -> (): Send>>() {}
| ^^^^^^
|
help: use the right argument notation and remove the return type
|
LL - fn bar<T: Trait<method() -> (): Send>>() {}
LL + fn bar<T: Trait<method(..): Send>>() {}
|
```
When encountering a return type, suggest removing it including the leading whitespace.
```
error: return type not allowed with return type notation
--> $DIR/bad-inputs-and-output.rs:24:45
|
LL | fn bay_path<T: Trait>() where T::method(..) -> (): Send {}
| ^^^^^
|
help: remove the return type
|
LL - fn bay_path<T: Trait>() where T::method(..) -> (): Send {}
LL + fn bay_path<T: Trait>() where T::method(..): Send {}
|
```
33 lines
1.1 KiB
Plaintext
33 lines
1.1 KiB
Plaintext
error[E0573]: expected type, found local variable `num`
|
|
--> $DIR/let-binding-init-expr-as-ty.rs:2:27
|
|
|
|
|
LL | let foo: i32::from_be(num);
|
|
| -- ^^^ not a type
|
|
| |
|
|
| help: use `=` if you meant to assign
|
|
|
|
error: argument types not allowed with return type notation
|
|
--> $DIR/let-binding-init-expr-as-ty.rs:2:26
|
|
|
|
|
LL | let foo: i32::from_be(num);
|
|
| ^^^^^
|
|
|
|
|
= note: see issue #109417 <https://github.com/rust-lang/rust/issues/109417> for more information
|
|
= help: add `#![feature(return_type_notation)]` to the crate attributes to enable
|
|
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
|
help: remove the input types
|
|
|
|
|
LL - let foo: i32::from_be(num);
|
|
LL + let foo: i32::from_be(..);
|
|
|
|
|
|
|
error: return type notation not allowed in this position yet
|
|
--> $DIR/let-binding-init-expr-as-ty.rs:2:14
|
|
|
|
|
LL | let foo: i32::from_be(num);
|
|
| ^^^^^^^^^^^^^^^^^
|
|
|
|
error: aborting due to 3 previous errors
|
|
|
|
For more information about this error, try `rustc --explain E0573`.
|