| error[E0261]: use of undeclared lifetime name `'a` |
| --> $DIR/fn-missing-lifetime-in-item.rs:1:33 |
| | |
| LL | struct S1<F: Fn(&i32, &i32) -> &'a i32>(F); |
| | ^^ undeclared lifetime |
| | |
| = note: for more information on higher-ranked polymorphism, visit https://doc.rust-lang.org/nomicon/hrtb.html |
| help: consider making the bound lifetime-generic with a new `'a` lifetime |
| | |
| LL | struct S1<F: for<'a> Fn(&i32, &i32) -> &'a i32>(F); |
| | +++++++ |
| help: consider introducing lifetime `'a` here |
| | |
| LL | struct S1<'a, F: Fn(&i32, &i32) -> &'a i32>(F); |
| | +++ |
| |
| error[E0106]: missing lifetime specifier |
| --> $DIR/fn-missing-lifetime-in-item.rs:2:32 |
| | |
| LL | struct S2<F: Fn(&i32, &i32) -> &i32>(F); |
| | ---- ---- ^ expected named lifetime parameter |
| | |
| = help: this function's return type contains a borrowed value, but the signature does not say whether it is borrowed from argument 1 or argument 2 |
| help: consider making the bound lifetime-generic with a new `'a` lifetime |
| | |
| LL | struct S2<F: for<'a> Fn(&'a i32, &'a i32) -> &'a i32>(F); |
| | +++++++ ++ ++ ++ |
| help: consider introducing a named lifetime parameter |
| | |
| LL | struct S2<'a, F: Fn(&'a i32, &'a i32) -> &'a i32>(F); |
| | +++ ++ ++ ++ |
| |
| error[E0582]: binding for associated type `Output` references lifetime `'a`, which does not appear in the trait input types |
| --> $DIR/fn-missing-lifetime-in-item.rs:3:40 |
| | |
| LL | struct S3<F: for<'a> Fn(&i32, &i32) -> &'a i32>(F); |
| | ^^^^^^^ |
| |
| error[E0582]: binding for associated type `Output` references lifetime `'a`, which does not appear in the trait input types |
| --> $DIR/fn-missing-lifetime-in-item.rs:6:55 |
| | |
| LL | const C: Option<Box<dyn for<'a> Fn(&usize, &usize) -> &'a usize>> = None; |
| | ^^^^^^^^^ |
| |
| error: aborting due to 4 previous errors |
| |
| Some errors have detailed explanations: E0106, E0261, E0582. |
| For more information about an error, try `rustc --explain E0106`. |