File: nested-rpit-hrtb.stderr

package info (click to toggle)
rustc-web 1.78.0%2Bdfsg1-2~deb11u3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,245,360 kB
  • sloc: xml: 147,985; javascript: 18,022; sh: 11,083; python: 10,265; ansic: 6,172; cpp: 5,023; asm: 4,390; makefile: 4,269
file content (137 lines) | stat: -rw-r--r-- 6,511 bytes parent folder | download | duplicates (2)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
error[E0261]: use of undeclared lifetime name `'b`
  --> $DIR/nested-rpit-hrtb.rs:58:77
   |
LL | fn two_htrb_outlives() -> impl for<'a> Foo<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                                                                             ^^ undeclared lifetime
   |
   = note: for more information on higher-ranked polymorphism, visit https://doc.rust-lang.org/nomicon/hrtb.html
help: consider making the bound lifetime-generic with a new `'b` lifetime
   |
LL | fn two_htrb_outlives() -> impl for<'b, 'a> Foo<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                                    +++
help: consider introducing lifetime `'b` here
   |
LL | fn two_htrb_outlives<'b>() -> impl for<'a> Foo<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                     ++++

error[E0261]: use of undeclared lifetime name `'b`
  --> $DIR/nested-rpit-hrtb.rs:66:82
   |
LL | fn two_htrb_outlives_uses() -> impl for<'a> Bar<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                                                                                  ^^ undeclared lifetime
   |
help: consider making the bound lifetime-generic with a new `'b` lifetime
   |
LL | fn two_htrb_outlives_uses() -> impl for<'b, 'a> Bar<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                                         +++
help: consider introducing lifetime `'b` here
   |
LL | fn two_htrb_outlives_uses<'b>() -> impl for<'a> Bar<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                          ++++

error[E0657]: `impl Trait` cannot capture higher-ranked lifetime from outer `impl Trait`
  --> $DIR/nested-rpit-hrtb.rs:25:69
   |
LL | fn one_hrtb_outlives() -> impl for<'a> Foo<'a, Assoc = impl Sized + 'a> {}
   |                                                                     ^^
   |
note: lifetime declared here
  --> $DIR/nested-rpit-hrtb.rs:25:36
   |
LL | fn one_hrtb_outlives() -> impl for<'a> Foo<'a, Assoc = impl Sized + 'a> {}
   |                                    ^^

error[E0657]: `impl Trait` cannot capture higher-ranked lifetime from outer `impl Trait`
  --> $DIR/nested-rpit-hrtb.rs:29:68
   |
LL | fn one_hrtb_trait_param() -> impl for<'a> Foo<'a, Assoc = impl Qux<'a>> {}
   |                                                                    ^^
   |
note: lifetime declared here
  --> $DIR/nested-rpit-hrtb.rs:29:39
   |
LL | fn one_hrtb_trait_param() -> impl for<'a> Foo<'a, Assoc = impl Qux<'a>> {}
   |                                       ^^

error[E0657]: `impl Trait` cannot capture higher-ranked lifetime from outer `impl Trait`
  --> $DIR/nested-rpit-hrtb.rs:32:74
   |
LL | fn one_hrtb_outlives_uses() -> impl for<'a> Bar<'a, Assoc = impl Sized + 'a> {}
   |                                                                          ^^
   |
note: lifetime declared here
  --> $DIR/nested-rpit-hrtb.rs:32:41
   |
LL | fn one_hrtb_outlives_uses() -> impl for<'a> Bar<'a, Assoc = impl Sized + 'a> {}
   |                                         ^^

error: implementation of `Bar` is not general enough
  --> $DIR/nested-rpit-hrtb.rs:32:78
   |
LL | fn one_hrtb_outlives_uses() -> impl for<'a> Bar<'a, Assoc = impl Sized + 'a> {}
   |                                                                              ^^ implementation of `Bar` is not general enough
   |
   = note: `()` must implement `Bar<'a>`
   = note: ...but it actually implements `Bar<'0>`, for some specific lifetime `'0`

error[E0657]: `impl Trait` cannot capture higher-ranked lifetime from outer `impl Trait`
  --> $DIR/nested-rpit-hrtb.rs:36:73
   |
LL | fn one_hrtb_trait_param_uses() -> impl for<'a> Bar<'a, Assoc = impl Qux<'a>> {}
   |                                                                         ^^
   |
note: lifetime declared here
  --> $DIR/nested-rpit-hrtb.rs:36:44
   |
LL | fn one_hrtb_trait_param_uses() -> impl for<'a> Bar<'a, Assoc = impl Qux<'a>> {}
   |                                            ^^

error[E0277]: the trait bound `for<'a> &'a (): Qux<'_>` is not satisfied
  --> $DIR/nested-rpit-hrtb.rs:36:64
   |
LL | fn one_hrtb_trait_param_uses() -> impl for<'a> Bar<'a, Assoc = impl Qux<'a>> {}
   |                                                                ^^^^^^^^^^^^ the trait `for<'a> Qux<'_>` is not implemented for `&'a ()`
   |
   = help: the trait `Qux<'_>` is implemented for `()`
   = help: for that trait implementation, expected `()`, found `&'a ()`

error[E0277]: the trait bound `for<'a> &'a (): Qux<'b>` is not satisfied
  --> $DIR/nested-rpit-hrtb.rs:47:79
   |
LL | fn one_hrtb_mention_fn_trait_param_uses<'b>() -> impl for<'a> Bar<'a, Assoc = impl Qux<'b>> {}
   |                                                                               ^^^^^^^^^^^^ the trait `for<'a> Qux<'b>` is not implemented for `&'a ()`
   |
   = help: the trait `Qux<'_>` is implemented for `()`
   = help: for that trait implementation, expected `()`, found `&'a ()`

error: implementation of `Bar` is not general enough
  --> $DIR/nested-rpit-hrtb.rs:51:93
   |
LL | fn one_hrtb_mention_fn_outlives_uses<'b>() -> impl for<'a> Bar<'a, Assoc = impl Sized + 'b> {}
   |                                                                                             ^^ implementation of `Bar` is not general enough
   |
   = note: `()` must implement `Bar<'a>`
   = note: ...but it actually implements `Bar<'0>`, for some specific lifetime `'0`

error[E0277]: the trait bound `for<'a, 'b> &'a (): Qux<'b>` is not satisfied
  --> $DIR/nested-rpit-hrtb.rs:62:64
   |
LL | fn two_htrb_trait_param_uses() -> impl for<'a> Bar<'a, Assoc = impl for<'b> Qux<'b>> {}
   |                                                                ^^^^^^^^^^^^^^^^^^^^ the trait `for<'a, 'b> Qux<'b>` is not implemented for `&'a ()`
   |
   = help: the trait `Qux<'_>` is implemented for `()`
   = help: for that trait implementation, expected `()`, found `&'a ()`

error: implementation of `Bar` is not general enough
  --> $DIR/nested-rpit-hrtb.rs:66:86
   |
LL | fn two_htrb_outlives_uses() -> impl for<'a> Bar<'a, Assoc = impl for<'b> Sized + 'b> {}
   |                                                                                      ^^ implementation of `Bar` is not general enough
   |
   = note: `()` must implement `Bar<'a>`
   = note: ...but it actually implements `Bar<'0>`, for some specific lifetime `'0`

error: aborting due to 12 previous errors

Some errors have detailed explanations: E0261, E0277, E0657.
For more information about an error, try `rustc --explain E0261`.