error[E0401]: can't use generic parameters from outer item --> $DIR/E0401.rs:4:39 | LL | fn foo(x: T) { | - type parameter from outer item LL | fn bfnr, W: Fn()>(y: T) { | - ^ use of generic parameter from outer item | | | help: try introducing a local generic parameter here: `T,` error[E0401]: can't use generic parameters from outer item --> $DIR/E0401.rs:9:16 | LL | fn foo(x: T) { | - type parameter from outer item ... LL | fn baz $DIR/E0401.rs:24:25 | LL | impl Iterator for A { | ---- `Self` type implicitly declared here, by this `impl` ... LL | fn helper(sel: &Self) -> u8 { | ^^^^ | | | use of generic parameter from outer item | refer to the type directly here instead error[E0282]: type annotations needed --> $DIR/E0401.rs:11:5 | LL | bfnr(x); | ^^^^ cannot infer type of the type parameter `U` declared on the function `bfnr` | help: consider specifying the generic arguments | LL | bfnr::(x); | +++++++++++ error[E0283]: type annotations needed --> $DIR/E0401.rs:11:5 | LL | bfnr(x); | ^^^^ cannot infer type of the type parameter `W` declared on the function `bfnr` | = note: multiple `impl`s satisfying `_: Fn<()>` found in the following crates: `alloc`, `core`: - impl Fn for &F where A: Tuple, F: Fn, F: ?Sized; - impl Fn for Box where Args: Tuple, F: Fn, A: Allocator, F: ?Sized; note: required by a bound in `bfnr` --> $DIR/E0401.rs:4:30 | LL | fn bfnr, W: Fn()>(y: T) { | ^^^^ required by this bound in `bfnr` help: consider specifying the generic arguments | LL | bfnr::(x); | +++++++++++ error: aborting due to 5 previous errors Some errors have detailed explanations: E0282, E0283, E0401. For more information about an error, try `rustc --explain E0282`.