error[E0106]: missing lifetime specifier --> $DIR/impl-trait-missing-lifetime-gated.rs:8:50 | LL | fn g(x: impl Iterator) -> Option<&'_ ()> { x.next() } | ^^ expected named lifetime parameter | = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from help: consider using the `'static` lifetime | LL | fn g(x: impl Iterator) -> Option<&'static ()> { x.next() } | ~~~~~~~ error[E0106]: missing lifetime specifier --> $DIR/impl-trait-missing-lifetime-gated.rs:18:56 | LL | async fn i(x: impl Iterator) -> Option<&'_ ()> { x.next() } | ^^ expected named lifetime parameter | = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from help: consider using the `'static` lifetime | LL | async fn i(x: impl Iterator) -> Option<&'static ()> { x.next() } | ~~~~~~~ error[E0658]: anonymous lifetimes in `impl Trait` are unstable --> $DIR/impl-trait-missing-lifetime-gated.rs:5:31 | LL | fn f(_: impl Iterator) {} | ^^ | = help: add `#![feature(anonymous_lifetime_in_impl_trait)]` to the crate attributes to enable error[E0658]: anonymous lifetimes in `impl Trait` are unstable --> $DIR/impl-trait-missing-lifetime-gated.rs:8:31 | LL | fn g(x: impl Iterator) -> Option<&'_ ()> { x.next() } | ^^ | = help: add `#![feature(anonymous_lifetime_in_impl_trait)]` to the crate attributes to enable error: aborting due to 4 previous errors Some errors have detailed explanations: E0106, E0658. For more information about an error, try `rustc --explain E0106`.