error[E0311]: the parameter type `T` may not live long enough --> $DIR/E0311.rs:6:5 | LL | fn no_restriction(x: &()) -> &() { | --- the parameter type `T` must be valid for the anonymous lifetime defined here... LL | with_restriction::(x) | ^^^^^^^^^^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds | help: consider adding an explicit lifetime bound | LL | fn no_restriction<'a, T: 'a>(x: &'a ()) -> &'a () { | +++ ++++ ++ ++ error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0311`.