@@ -108,7 +108,28 @@ LL + fn g(mut x: impl Foo) -> Option<()> { x.next() }
108108 |
109109
110110error[E0106]: missing lifetime specifier
111- --> $DIR/impl-trait-missing-lifetime-gated.rs:58:41
111+ --> $DIR/impl-trait-missing-lifetime-gated.rs:58:39
112+ |
113+ LL | fn g(mut x: impl Foo<>) -> Option<&()> { x.next() }
114+ | ^ expected named lifetime parameter
115+ |
116+ = help: this function's return type contains a borrowed value, but there is no value for it to be borrowed from
117+ help: consider using the `'static` lifetime, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`
118+ |
119+ LL | fn g(mut x: impl Foo<>) -> Option<&'static ()> { x.next() }
120+ | +++++++
121+ help: consider introducing a named lifetime parameter
122+ |
123+ LL | fn g<'a>(mut x: impl Foo<>) -> Option<&'a ()> { x.next() }
124+ | ++++ ++
125+ help: alternatively, you might want to return an owned value
126+ |
127+ LL - fn g(mut x: impl Foo<>) -> Option<&()> { x.next() }
128+ LL + fn g(mut x: impl Foo<>) -> Option<()> { x.next() }
129+ |
130+
131+ error[E0106]: missing lifetime specifier
132+ --> $DIR/impl-trait-missing-lifetime-gated.rs:69:41
112133 |
113134LL | fn g(mut x: impl Foo<()>) -> Option<&()> { x.next() }
114135 | ^ expected named lifetime parameter
@@ -129,7 +150,7 @@ LL + fn g(mut x: impl Foo<()>) -> Option<()> { x.next() }
129150 |
130151
131152warning: elided lifetime has a name
132- --> $DIR/impl-trait-missing-lifetime-gated.rs:64 :57
153+ --> $DIR/impl-trait-missing-lifetime-gated.rs:75 :57
133154 |
134155LL | fn resolved_anonymous<'a, T: 'a>(f: impl Fn(&'a str) -> &T) {
135156 | -- lifetime `'a` declared here ^ this elided lifetime gets resolved as `'a`
@@ -217,7 +238,33 @@ LL | fn g<'a>(mut x: impl Foo<'a>) -> Option<&()> { x.next() }
217238 | ++++ ++++
218239
219240error[E0658]: anonymous lifetimes in `impl Trait` are unstable
220- --> $DIR/impl-trait-missing-lifetime-gated.rs:55:22
241+ --> $DIR/impl-trait-missing-lifetime-gated.rs:55:21
242+ |
243+ LL | fn f(_: impl Foo<>) {}
244+ | ^ expected named lifetime parameter
245+ |
246+ = help: add `#![feature(anonymous_lifetime_in_impl_trait)]` to the crate attributes to enable
247+ = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
248+ help: consider introducing a named lifetime parameter
249+ |
250+ LL | fn f<'a>(_: impl Foo<<'a>>) {}
251+ | ++++ ++++
252+
253+ error[E0658]: anonymous lifetimes in `impl Trait` are unstable
254+ --> $DIR/impl-trait-missing-lifetime-gated.rs:58:25
255+ |
256+ LL | fn g(mut x: impl Foo<>) -> Option<&()> { x.next() }
257+ | ^ expected named lifetime parameter
258+ |
259+ = help: add `#![feature(anonymous_lifetime_in_impl_trait)]` to the crate attributes to enable
260+ = note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
261+ help: consider introducing a named lifetime parameter
262+ |
263+ LL | fn g<'a>(mut x: impl Foo<<'a>>) -> Option<&()> { x.next() }
264+ | ++++ ++++
265+
266+ error[E0658]: anonymous lifetimes in `impl Trait` are unstable
267+ --> $DIR/impl-trait-missing-lifetime-gated.rs:66:22
221268 |
222269LL | fn f(_: impl Foo<()>) {}
223270 | ^ expected named lifetime parameter
@@ -230,7 +277,7 @@ LL | fn f<'a>(_: impl Foo<'a, ()>) {}
230277 | ++++ +++
231278
232279error[E0658]: anonymous lifetimes in `impl Trait` are unstable
233- --> $DIR/impl-trait-missing-lifetime-gated.rs:58 :26
280+ --> $DIR/impl-trait-missing-lifetime-gated.rs:69 :26
234281 |
235282LL | fn g(mut x: impl Foo<()>) -> Option<&()> { x.next() }
236283 | ^ expected named lifetime parameter
@@ -242,7 +289,7 @@ help: consider introducing a named lifetime parameter
242289LL | fn g<'a>(mut x: impl Foo<'a, ()>) -> Option<&()> { x.next() }
243290 | ++++ +++
244291
245- error: aborting due to 14 previous errors; 1 warning emitted
292+ error: aborting due to 17 previous errors; 1 warning emitted
246293
247294Some errors have detailed explanations: E0106, E0658.
248295For more information about an error, try `rustc --explain E0106`.
0 commit comments