error: associated function in `impl` without body
  --> $DIR/issue-95023.rs:8:5
   |
LL |     fn foo<const N: usize>(&self) -> Self::B<{ N }>;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
   |                                                    |
   |                                                    help: provide a definition for the function: `{ <body> }`

error[E0407]: method `foo` is not a member of trait `Fn`
  --> $DIR/issue-95023.rs:8:5
   |
LL |     fn foo<const N: usize>(&self) -> Self::B<{ N }>;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ not a member of trait `Fn`

error[E0183]: manual implementations of `Fn` are experimental
  --> $DIR/issue-95023.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-95023.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-95023.rs:3:6
   |
LL | impl Fn(&isize) for Error {
   |      ^^^^^^^^^^

error[E0046]: not all trait items implemented, missing: `call`
  --> $DIR/issue-95023.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[E0277]: expected a `FnMut(&isize)` closure, found `Error`
  --> $DIR/issue-95023.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`
  --> $DIR/issue-95023.rs:2:1
   |
LL | struct Error(ErrorKind);
   | ^^^^^^^^^^^^
note: required by a bound in `Fn`
  --> $SRC_DIR/core/src/ops/function.rs:LL:COL

error[E0220]: associated type `B` not found for `Self`
  --> $DIR/issue-95023.rs:8:44
   |
LL |     fn foo<const N: usize>(&self) -> Self::B<{ N }>;
   |                                            ^ help: `Self` has the following associated type: `Output`

error: aborting due to 7 previous errors

Some errors have detailed explanations: E0046, E0183, E0220, E0229, E0277, E0407.
For more information about an error, try `rustc --explain E0046`.
