@@ -2,87 +2,83 @@ error[E0597]: `o2` does not live long enough
2
2
--> $DIR/dropck_trait_cycle_checked.rs:111:13
3
3
|
4
4
LL | let (o1, o2, o3): (Box<dyn Obj>, Box<dyn Obj>, Box<dyn Obj>) = (O::new(), O::new(), O::new());
5
- | -- binding `o2` declared here
5
+ | -- binding `o2` declared here -------- coercion requires that `o2` is borrowed for `'static`
6
6
LL | o1.set0(&o2);
7
7
| ^^^ borrowed value does not live long enough
8
8
...
9
- LL | o3.set0(&o1);
10
- | ------------ argument requires that `o2` is borrowed for `'static`
11
- LL | o3.set1(&o2);
12
9
LL | }
13
10
| - `o2` dropped here while still borrowed
11
+ |
12
+ = note: due to object lifetime defaults, `Box<dyn Obj<'_>>` actually means `Box<(dyn Obj<'_> + 'static)>`
14
13
15
14
error[E0597]: `o3` does not live long enough
16
15
--> $DIR/dropck_trait_cycle_checked.rs:112:13
17
16
|
18
17
LL | let (o1, o2, o3): (Box<dyn Obj>, Box<dyn Obj>, Box<dyn Obj>) = (O::new(), O::new(), O::new());
19
- | -- binding `o3` declared here
18
+ | -- binding `o3` declared here -------- coercion requires that `o3` is borrowed for `'static`
20
19
LL | o1.set0(&o2);
21
20
LL | o1.set1(&o3);
22
21
| ^^^ borrowed value does not live long enough
23
22
...
24
- LL | o3.set0(&o1);
25
- | ------------ argument requires that `o3` is borrowed for `'static`
26
- LL | o3.set1(&o2);
27
23
LL | }
28
24
| - `o3` dropped here while still borrowed
25
+ |
26
+ = note: due to object lifetime defaults, `Box<dyn Obj<'_>>` actually means `Box<(dyn Obj<'_> + 'static)>`
29
27
30
28
error[E0597]: `o2` does not live long enough
31
29
--> $DIR/dropck_trait_cycle_checked.rs:113:13
32
30
|
33
31
LL | let (o1, o2, o3): (Box<dyn Obj>, Box<dyn Obj>, Box<dyn Obj>) = (O::new(), O::new(), O::new());
34
- | -- binding `o2` declared here
35
- LL | o1.set0(&o2);
36
- | ------------ argument requires that `o2` is borrowed for `'static`
37
- LL | o1.set1(&o3);
32
+ | -- binding `o2` declared here -------- coercion requires that `o2` is borrowed for `'static`
33
+ ...
38
34
LL | o2.set0(&o2);
39
35
| ^^^ borrowed value does not live long enough
40
36
...
41
37
LL | }
42
38
| - `o2` dropped here while still borrowed
39
+ |
40
+ = note: due to object lifetime defaults, `Box<dyn Obj<'_>>` actually means `Box<(dyn Obj<'_> + 'static)>`
43
41
44
42
error[E0597]: `o3` does not live long enough
45
43
--> $DIR/dropck_trait_cycle_checked.rs:114:13
46
44
|
47
45
LL | let (o1, o2, o3): (Box<dyn Obj>, Box<dyn Obj>, Box<dyn Obj>) = (O::new(), O::new(), O::new());
48
- | -- binding `o3` declared here
49
- LL | o1.set0(&o2);
50
- | ------------ argument requires that `o3` is borrowed for `'static`
46
+ | -- binding `o3` declared here -------- coercion requires that `o3` is borrowed for `'static`
51
47
...
52
48
LL | o2.set1(&o3);
53
49
| ^^^ borrowed value does not live long enough
54
50
...
55
51
LL | }
56
52
| - `o3` dropped here while still borrowed
53
+ |
54
+ = note: due to object lifetime defaults, `Box<dyn Obj<'_>>` actually means `Box<(dyn Obj<'_> + 'static)>`
57
55
58
56
error[E0597]: `o1` does not live long enough
59
57
--> $DIR/dropck_trait_cycle_checked.rs:115:13
60
58
|
61
59
LL | let (o1, o2, o3): (Box<dyn Obj>, Box<dyn Obj>, Box<dyn Obj>) = (O::new(), O::new(), O::new());
62
- | -- binding `o1` declared here
63
- LL | o1.set0(&o2);
64
- LL | o1.set1(&o3);
65
- | ------------ argument requires that `o1` is borrowed for `'static`
60
+ | -- binding `o1` declared here -------- coercion requires that `o1` is borrowed for `'static`
66
61
...
67
62
LL | o3.set0(&o1);
68
63
| ^^^ borrowed value does not live long enough
69
64
LL | o3.set1(&o2);
70
65
LL | }
71
66
| - `o1` dropped here while still borrowed
67
+ |
68
+ = note: due to object lifetime defaults, `Box<dyn Obj<'_>>` actually means `Box<(dyn Obj<'_> + 'static)>`
72
69
73
70
error[E0597]: `o2` does not live long enough
74
71
--> $DIR/dropck_trait_cycle_checked.rs:116:13
75
72
|
76
73
LL | let (o1, o2, o3): (Box<dyn Obj>, Box<dyn Obj>, Box<dyn Obj>) = (O::new(), O::new(), O::new());
77
- | -- binding `o2` declared here
78
- LL | o1.set0(&o2);
79
- LL | o1.set1(&o3);
80
- | ------------ argument requires that `o2` is borrowed for `'static`
74
+ | -- binding `o2` declared here -------- coercion requires that `o2` is borrowed for `'static`
81
75
...
82
76
LL | o3.set1(&o2);
83
77
| ^^^ borrowed value does not live long enough
84
78
LL | }
85
79
| - `o2` dropped here while still borrowed
80
+ |
81
+ = note: due to object lifetime defaults, `Box<dyn Obj<'_>>` actually means `Box<(dyn Obj<'_> + 'static)>`
86
82
87
83
error: aborting due to 6 previous errors
88
84
0 commit comments