summaryrefslogtreecommitdiffstats
path: root/tests/ui/suggestions/impl-trait-missing-lifetime.stderr
blob: c1dbaae0649a0ccbda98db5a6a9d89fb82d563c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
error[E0106]: missing lifetime specifier
  --> $DIR/impl-trait-missing-lifetime.rs:9:54
   |
LL | fn g(mut x: impl Iterator<Item = &'_ ()>) -> 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, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values
   |
LL | fn g(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'static ()> { x.next() }
   |                                                      ~~~~~~~
help: consider introducing a named lifetime parameter
   |
LL | fn g<'a>(mut x: impl Iterator<Item = &'a ()>) -> Option<&'a ()> { x.next() }
   |     ++++                             ~~~                ~~~
help: alternatively, you might want to return an owned value
   |
LL - fn g(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'_ ()> { x.next() }
LL + fn g(mut x: impl Iterator<Item = &'_ ()>) -> Option<()> { x.next() }
   |

error[E0106]: missing lifetime specifier
  --> $DIR/impl-trait-missing-lifetime.rs:16:60
   |
LL | async fn i(mut x: impl Iterator<Item = &'_ ()>) -> 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, but this is uncommon unless you're returning a borrowed value from a `const` or a `static`, or if you will only have owned values
   |
LL | async fn i(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'static ()> { x.next() }
   |                                                            ~~~~~~~
help: consider introducing a named lifetime parameter
   |
LL | async fn i<'a>(mut x: impl Iterator<Item = &'a ()>) -> Option<&'a ()> { x.next() }
   |           ++++                             ~~~                ~~~
help: alternatively, you might want to return an owned value
   |
LL - async fn i(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'_ ()> { x.next() }
LL + async fn i(mut x: impl Iterator<Item = &'_ ()>) -> Option<()> { x.next() }
   |

error: lifetime may not live long enough
  --> $DIR/impl-trait-missing-lifetime.rs:16:69
   |
LL | async fn i(mut x: impl Iterator<Item = &'_ ()>) -> Option<&'_ ()> { x.next() }
   | -----------------------------------------------------------------   ^^^^^^^^ returning this value requires that `'1` must outlive `'static`
   | |
   | return type `impl Future<Output = Option<&'static ()>>` contains a lifetime `'1`

error: aborting due to 3 previous errors

For more information about this error, try `rustc --explain E0106`.