@@ -7,7 +7,7 @@ LL | let c = async || { println!("{}", *x); };
77 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough
88LL | outlives::<'a>(c());
99LL | outlives::<'a>(call_once(c));
10- | ------------ argument requires that `x` is borrowed for `'a`
10+ | ---------------- ------------ argument requires that `x` is borrowed for `'a`
1111...
1212LL | }
1313 | - `x` dropped here while still borrowed
@@ -21,10 +21,10 @@ LL | fn simple<'a>(x: &'a i32) {
2121LL | let c = async move || { println!("{}", *x); };
2222 | - binding `c` declared here
2323LL | outlives::<'a>(c());
24- | ^ --
25- | |
26- | borrowed value does not live long enough
27- | argument requires that `c` is borrowed for `'a`
24+ | ---------------^- --
25+ | | |
26+ | | borrowed value does not live long enough
27+ | argument requires that `c` is borrowed for `'a`
2828LL | outlives::<'a>(call_once(c));
2929LL | }
3030 | - `c` dropped here while still borrowed
@@ -38,7 +38,7 @@ LL | let c = async || { println!("{}", *x.0); };
3838 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough
3939LL | outlives::<'a>(c());
4040LL | outlives::<'a>(call_once(c));
41- | ------------ argument requires that `x` is borrowed for `'a`
41+ | ---------------- ------------ argument requires that `x` is borrowed for `'a`
4242...
4343LL | }
4444 | - `x` dropped here while still borrowed
@@ -52,7 +52,7 @@ LL | let c = async || { println!("{}", *x.0); };
5252 | ---------------------------------- borrow of `x` occurs here
5353LL | outlives::<'a>(c());
5454LL | outlives::<'a>(call_once(c));
55- | ------------ argument requires that `x` is borrowed for `'a`
55+ | ---------------- ------------ argument requires that `x` is borrowed for `'a`
5656LL |
5757LL | let c = async move || { println!("{}", *x.0); };
5858 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move out of `x` occurs here
@@ -66,10 +66,10 @@ LL | fn through_field<'a>(x: S<'a>) {
6666LL | let c = async move || { println!("{}", *x.0); };
6767 | - binding `c` declared here
6868LL | outlives::<'a>(c());
69- | ^ --
70- | |
71- | borrowed value does not live long enough
72- | argument requires that `c` is borrowed for `'a`
69+ | ---------------^- --
70+ | | |
71+ | | borrowed value does not live long enough
72+ | argument requires that `c` is borrowed for `'a`
7373LL | outlives::<'a>(call_once(c));
7474LL | }
7575 | - `c` dropped here while still borrowed
@@ -83,10 +83,10 @@ LL | fn through_field<'a>(x: S<'a>) {
8383LL | let c = async move || { println!("{}", *x.0); };
8484 | - binding `c` declared here
8585LL | outlives::<'a>(c());
86- | ---
87- | |
88- | borrow of `c` occurs here
89- | argument requires that `c` is borrowed for `'a`
86+ | ---------------- ---
87+ | | |
88+ | | borrow of `c` occurs here
89+ | argument requires that `c` is borrowed for `'a`
9090LL | outlives::<'a>(call_once(c));
9191 | ^ move out of `c` occurs here
9292
@@ -99,18 +99,18 @@ LL | let c = async || { println!("{}", *x.0); };
9999 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough
100100LL | outlives::<'a>(c());
101101LL | outlives::<'a>(call_once(c));
102- | ------------ argument requires that `x` is borrowed for `'a`
102+ | ---------------- ------------ argument requires that `x` is borrowed for `'a`
103103LL | }
104104 | - `x` dropped here while still borrowed
105105
106106error[E0621]: explicit lifetime required in the type of `x`
107- --> $DIR/without-precise-captures-we-are-powerless.rs:38:20
107+ --> $DIR/without-precise-captures-we-are-powerless.rs:38:5
108108 |
109109LL | fn through_field_and_ref<'a>(x: &S<'a>) {
110110 | ------ help: add explicit lifetime `'a` to the type of `x`: `&'a S<'a>`
111111...
112112LL | outlives::<'a>(call_once(c));
113- | ^^^^^^^^^^^^ lifetime `'a` required
113+ | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ lifetime `'a` required
114114
115115error[E0597]: `c` does not live long enough
116116 --> $DIR/without-precise-captures-we-are-powerless.rs:43:20
@@ -120,22 +120,22 @@ LL | fn through_field_and_ref_move<'a>(x: &S<'a>) {
120120LL | let c = async move || { println!("{}", *x.0); };
121121 | - binding `c` declared here
122122LL | outlives::<'a>(c());
123- | ^ --
124- | |
125- | borrowed value does not live long enough
126- | argument requires that `c` is borrowed for `'a`
123+ | ---------------^- --
124+ | | |
125+ | | borrowed value does not live long enough
126+ | argument requires that `c` is borrowed for `'a`
127127LL | outlives::<'a>(call_once(c));
128128LL | }
129129 | - `c` dropped here while still borrowed
130130
131131error[E0621]: explicit lifetime required in the type of `x`
132- --> $DIR/without-precise-captures-we-are-powerless.rs:44:20
132+ --> $DIR/without-precise-captures-we-are-powerless.rs:44:5
133133 |
134134LL | fn through_field_and_ref_move<'a>(x: &S<'a>) {
135135 | ------ help: add explicit lifetime `'a` to the type of `x`: `&'a S<'a>`
136136...
137137LL | outlives::<'a>(call_once(c));
138- | ^^^^^^^^^^^^ lifetime `'a` required
138+ | ^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^ lifetime `'a` required
139139
140140error: aborting due to 10 previous errors
141141
0 commit comments