| error[E0261]: use of undeclared lifetime name `'a` |
| --> $DIR/missing-lifetimes-in-signature.rs:37:11 |
| | |
| LL | fn baz<G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ |
| | - ^^ undeclared lifetime |
| | | |
| | help: consider introducing lifetime `'a` here: `'a,` |
| |
| error[E0700]: hidden type for `impl FnOnce()` captures lifetime that does not appear in bounds |
| --> $DIR/missing-lifetimes-in-signature.rs:19:5 |
| | |
| LL | fn foo<G, T>(g: G, dest: &mut T) -> impl FnOnce() |
| | ------ hidden type `[closure@$DIR/missing-lifetimes-in-signature.rs:19:5: 19:12]` captures the anonymous lifetime defined here |
| ... |
| LL | / move || { |
| LL | | |
| LL | | *dest = g.get(); |
| LL | | } |
| | |_____^ |
| | |
| help: to declare that `impl FnOnce()` captures `'_`, you can add an explicit `'_` lifetime bound |
| | |
| LL | fn foo<G, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ |
| | ++++ |
| |
| error[E0311]: the parameter type `G` may not live long enough |
| --> $DIR/missing-lifetimes-in-signature.rs:30:5 |
| | |
| LL | / move || { |
| LL | | |
| LL | | *dest = g.get(); |
| LL | | } |
| | |_____^ |
| | |
| note: the parameter type `G` must be valid for the anonymous lifetime defined here... |
| --> $DIR/missing-lifetimes-in-signature.rs:26:26 |
| | |
| LL | fn bar<G, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ |
| | ^^^^^^ |
| note: ...so that the type `G` will meet its required lifetime bounds |
| --> $DIR/missing-lifetimes-in-signature.rs:30:5 |
| | |
| LL | / move || { |
| LL | | |
| LL | | *dest = g.get(); |
| LL | | } |
| | |_____^ |
| help: consider adding an explicit lifetime bound... |
| | |
| LL ~ fn bar<'a, G, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ |
| LL | where |
| LL ~ G: Get<T> + 'a, |
| | |
| |
| error[E0311]: the parameter type `G` may not live long enough |
| --> $DIR/missing-lifetimes-in-signature.rs:52:5 |
| | |
| LL | / move || { |
| LL | | |
| LL | | *dest = g.get(); |
| LL | | } |
| | |_____^ |
| | |
| note: the parameter type `G` must be valid for the anonymous lifetime defined here... |
| --> $DIR/missing-lifetimes-in-signature.rs:48:34 |
| | |
| LL | fn qux<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ |
| | ^^^^^^ |
| note: ...so that the type `G` will meet its required lifetime bounds |
| --> $DIR/missing-lifetimes-in-signature.rs:52:5 |
| | |
| LL | / move || { |
| LL | | |
| LL | | *dest = g.get(); |
| LL | | } |
| | |_____^ |
| help: consider adding an explicit lifetime bound... |
| | |
| LL | fn qux<'b, 'a, G: 'a + 'b, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ |
| | +++ ++++ |
| |
| error[E0311]: the parameter type `G` may not live long enough |
| --> $DIR/missing-lifetimes-in-signature.rs:61:9 |
| | |
| LL | / move || { |
| LL | | |
| LL | | *dest = g.get(); |
| LL | | } |
| | |_________^ |
| | |
| note: the parameter type `G` must be valid for the anonymous lifetime defined here... |
| --> $DIR/missing-lifetimes-in-signature.rs:60:47 |
| | |
| LL | fn qux<'b, G: Get<T> + 'b, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ { |
| | ^^^^^^ |
| note: ...so that the type `G` will meet its required lifetime bounds |
| --> $DIR/missing-lifetimes-in-signature.rs:61:9 |
| | |
| LL | / move || { |
| LL | | |
| LL | | *dest = g.get(); |
| LL | | } |
| | |_________^ |
| help: consider adding an explicit lifetime bound... |
| | |
| LL | fn qux<'c, 'b, G: Get<T> + 'b + 'c, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ { |
| | +++ ++++ |
| |
| error[E0311]: the parameter type `G` may not live long enough |
| --> $DIR/missing-lifetimes-in-signature.rs:73:5 |
| | |
| LL | / move || { |
| LL | | |
| LL | | |
| LL | | *dest = g.get(); |
| LL | | } |
| | |_____^ |
| | |
| note: the parameter type `G` must be valid for the anonymous lifetime defined here... |
| --> $DIR/missing-lifetimes-in-signature.rs:69:34 |
| | |
| LL | fn bat<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ + 'a |
| | ^^^^^^ |
| note: ...so that the type `G` will meet its required lifetime bounds |
| --> $DIR/missing-lifetimes-in-signature.rs:73:5 |
| | |
| LL | / move || { |
| LL | | |
| LL | | |
| LL | | *dest = g.get(); |
| LL | | } |
| | |_____^ |
| help: consider adding an explicit lifetime bound... |
| | |
| LL | fn bat<'b, 'a, G: 'a + 'b, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ + 'a |
| | +++ ++++ |
| |
| error[E0621]: explicit lifetime required in the type of `dest` |
| --> $DIR/missing-lifetimes-in-signature.rs:73:5 |
| | |
| LL | fn bat<'a, G: 'a, T>(g: G, dest: &mut T) -> impl FnOnce() + '_ + 'a |
| | ------ help: add explicit lifetime `'a` to the type of `dest`: `&'a mut T` |
| ... |
| LL | / move || { |
| LL | | |
| LL | | |
| LL | | *dest = g.get(); |
| LL | | } |
| | |_____^ lifetime `'a` required |
| |
| error[E0309]: the parameter type `G` may not live long enough |
| --> $DIR/missing-lifetimes-in-signature.rs:85:5 |
| | |
| LL | / move || { |
| LL | | |
| LL | | *dest = g.get(); |
| LL | | } |
| | |_____^ ...so that the type `G` will meet its required lifetime bounds |
| | |
| help: consider adding an explicit lifetime bound... |
| | |
| LL | G: Get<T> + 'a, |
| | ++++ |
| |
| error: aborting due to 8 previous errors |
| |
| Some errors have detailed explanations: E0261, E0309, E0311, E0621, E0700. |
| For more information about an error, try `rustc --explain E0261`. |