rust/tests/ui/traits/issue-87558.stderr
bors 1d52972dd8 Auto merge of #125778 - estebank:issue-67100, r=compiler-errors
Use parenthetical notation for `Fn` traits

Always use the `Fn(T) -> R` format when printing closure traits instead of `Fn<(T,), Output = R>`.

Address #67100:

```
error[E0277]: expected a `Fn()` closure, found `F`
 --> file.rs:6:13
  |
6 |     call_fn(f)
  |     ------- ^ expected an `Fn()` closure, found `F`
  |     |
  |     required by a bound introduced by this call
  |
  = note: wrap the `F` in a closure with no arguments: `|| { /* code */ }`
note: required by a bound in `call_fn`
 --> file.rs:1:15
  |
1 | fn call_fn<F: Fn() -> ()>(f: &F) {
  |               ^^^^^^^^^^ required by this bound in `call_fn`
help: consider further restricting this bound
  |
5 | fn call_any<F: std::any::Any + Fn()>(f: &F) {
  |                              ++++++
```
2024-06-03 08:14:03 +00:00

49 lines
1.6 KiB
Plaintext

error[E0407]: method `from` is not a member of trait `Fn`
--> $DIR/issue-87558.rs:8:5
|
LL | fn from() {}
| ^^^^^^^^^^^^ not a member of trait `Fn`
error[E0183]: manual implementations of `Fn` are experimental
--> $DIR/issue-87558.rs:3:6
|
LL | impl Fn(&isize) for Error {
| ^^^^^^^^^^ manual implementations of `Fn` are experimental
|
= help: add `#![feature(unboxed_closures)]` to the crate attributes to enable
error[E0229]: associated item constraints are not allowed here
--> $DIR/issue-87558.rs:3:6
|
LL | impl Fn(&isize) for Error {
| ^^^^^^^^^^ associated item constraint not allowed here
|
help: parenthesized trait syntax expands to `Fn<(&isize,), Output=()>`
--> $DIR/issue-87558.rs:3:6
|
LL | impl Fn(&isize) for Error {
| ^^^^^^^^^^
error[E0277]: expected a `FnMut(&isize)` closure, found `Error`
--> $DIR/issue-87558.rs:3:21
|
LL | impl Fn(&isize) for Error {
| ^^^^^ expected an `FnMut(&isize)` closure, found `Error`
|
= help: the trait `FnMut(&isize)` is not implemented for `Error`
note: required by a bound in `Fn`
--> $SRC_DIR/core/src/ops/function.rs:LL:COL
error[E0046]: not all trait items implemented, missing: `call`
--> $DIR/issue-87558.rs:3:1
|
LL | impl Fn(&isize) for Error {
| ^^^^^^^^^^^^^^^^^^^^^^^^^ missing `call` in implementation
|
= help: implement the missing item: `fn call(&self, _: (&isize,)) -> <Self as FnOnce<(&isize,)>>::Output { todo!() }`
error: aborting due to 5 previous errors
Some errors have detailed explanations: E0046, E0183, E0229, E0277, E0407.
For more information about an error, try `rustc --explain E0046`.