| 
1 |  | -error[E0391]: cycle detected when computing type of `<impl at $DIR/resolve-self-in-impl.rs:14:1: 14:17>`  | 
 | 1 | +error: `Self` is not valid in the self type of an impl block  | 
2 | 2 |   --> $DIR/resolve-self-in-impl.rs:14:13  | 
3 | 3 |    |  | 
4 | 4 | LL | impl Tr for Self {}  | 
5 | 5 |    |             ^^^^  | 
6 | 6 |    |  | 
7 |  | -   = note: ...which immediately requires computing type of `<impl at $DIR/resolve-self-in-impl.rs:14:1: 14:17>` again  | 
8 |  | -note: cycle used when collecting item types in top-level module  | 
9 |  | -  --> $DIR/resolve-self-in-impl.rs:1:1  | 
10 |  | -   |  | 
11 |  | -LL | / #![feature(associated_type_defaults)]  | 
12 |  | -LL | |  | 
13 |  | -LL | | struct S<T = u8>(T);  | 
14 |  | -LL | | trait Tr<T = u8> {  | 
15 |  | -...  |  | 
16 |  | -LL | |  | 
17 |  | -LL | | fn main() {}  | 
18 |  | -   | |____________^  | 
 | 7 | +   = note: replace `Self` with a different type  | 
19 | 8 | 
 
  | 
20 |  | -error[E0391]: cycle detected when computing type of `<impl at $DIR/resolve-self-in-impl.rs:15:1: 15:20>`  | 
 | 9 | +error: `Self` is not valid in the self type of an impl block  | 
21 | 10 |   --> $DIR/resolve-self-in-impl.rs:15:15  | 
22 | 11 |    |  | 
23 | 12 | LL | impl Tr for S<Self> {}  | 
24 | 13 |    |               ^^^^  | 
25 | 14 |    |  | 
26 |  | -   = note: ...which immediately requires computing type of `<impl at $DIR/resolve-self-in-impl.rs:15:1: 15:20>` again  | 
27 |  | -note: cycle used when collecting item types in top-level module  | 
28 |  | -  --> $DIR/resolve-self-in-impl.rs:1:1  | 
29 |  | -   |  | 
30 |  | -LL | / #![feature(associated_type_defaults)]  | 
31 |  | -LL | |  | 
32 |  | -LL | | struct S<T = u8>(T);  | 
33 |  | -LL | | trait Tr<T = u8> {  | 
34 |  | -...  |  | 
35 |  | -LL | |  | 
36 |  | -LL | | fn main() {}  | 
37 |  | -   | |____________^  | 
 | 15 | +   = note: replace `Self` with a different type  | 
38 | 16 | 
 
  | 
39 |  | -error[E0391]: cycle detected when computing type of `<impl at $DIR/resolve-self-in-impl.rs:16:1: 16:10>`  | 
 | 17 | +error: `Self` is not valid in the self type of an impl block  | 
40 | 18 |   --> $DIR/resolve-self-in-impl.rs:16:6  | 
41 | 19 |    |  | 
42 | 20 | LL | impl Self {}  | 
43 | 21 |    |      ^^^^  | 
44 | 22 |    |  | 
45 |  | -   = note: ...which immediately requires computing type of `<impl at $DIR/resolve-self-in-impl.rs:16:1: 16:10>` again  | 
46 |  | -note: cycle used when collecting item types in top-level module  | 
47 |  | -  --> $DIR/resolve-self-in-impl.rs:1:1  | 
48 |  | -   |  | 
49 |  | -LL | / #![feature(associated_type_defaults)]  | 
50 |  | -LL | |  | 
51 |  | -LL | | struct S<T = u8>(T);  | 
52 |  | -LL | | trait Tr<T = u8> {  | 
53 |  | -...  |  | 
54 |  | -LL | |  | 
55 |  | -LL | | fn main() {}  | 
56 |  | -   | |____________^  | 
 | 23 | +   = note: replace `Self` with a different type  | 
57 | 24 | 
 
  | 
58 |  | -error[E0391]: cycle detected when computing type of `<impl at $DIR/resolve-self-in-impl.rs:17:1: 17:13>`  | 
 | 25 | +error: `Self` is not valid in the self type of an impl block  | 
59 | 26 |   --> $DIR/resolve-self-in-impl.rs:17:8  | 
60 | 27 |    |  | 
61 | 28 | LL | impl S<Self> {}  | 
62 | 29 |    |        ^^^^  | 
63 | 30 |    |  | 
64 |  | -   = note: ...which immediately requires computing type of `<impl at $DIR/resolve-self-in-impl.rs:17:1: 17:13>` again  | 
65 |  | -note: cycle used when collecting item types in top-level module  | 
66 |  | -  --> $DIR/resolve-self-in-impl.rs:1:1  | 
 | 31 | +   = note: replace `Self` with a different type  | 
 | 32 | + | 
 | 33 | +error: `Self` is not valid in the self type of an impl block  | 
 | 34 | +  --> $DIR/resolve-self-in-impl.rs:18:7  | 
67 | 35 |    |  | 
68 |  | -LL | / #![feature(associated_type_defaults)]  | 
69 |  | -LL | |  | 
70 |  | -LL | | struct S<T = u8>(T);  | 
71 |  | -LL | | trait Tr<T = u8> {  | 
72 |  | -...  |  | 
73 |  | -LL | |  | 
74 |  | -LL | | fn main() {}  | 
75 |  | -   | |____________^  | 
 | 36 | +LL | impl (Self, Self) {}  | 
 | 37 | +   |       ^^^^  ^^^^  | 
 | 38 | +   |  | 
 | 39 | +   = note: replace `Self` with a different type  | 
76 | 40 | 
 
  | 
77 |  | -error[E0391]: cycle detected when computing trait implemented by `<impl at $DIR/resolve-self-in-impl.rs:18:1: 18:23>`  | 
78 |  | -  --> $DIR/resolve-self-in-impl.rs:18:1  | 
 | 41 | +error[E0391]: cycle detected when computing trait implemented by `<impl at $DIR/resolve-self-in-impl.rs:19:1: 19:23>`  | 
 | 42 | +  --> $DIR/resolve-self-in-impl.rs:19:1  | 
79 | 43 |    |  | 
80 | 44 | LL | impl Tr<Self::A> for S {}  | 
81 | 45 |    | ^^^^^^^^^^^^^^^^^^^^^^  | 
82 | 46 |    |  | 
83 |  | -   = note: ...which immediately requires computing trait implemented by `<impl at $DIR/resolve-self-in-impl.rs:18:1: 18:23>` again  | 
 | 47 | +   = note: ...which immediately requires computing trait implemented by `<impl at $DIR/resolve-self-in-impl.rs:19:1: 19:23>` again  | 
84 | 48 | note: cycle used when collecting item types in top-level module  | 
85 | 49 |   --> $DIR/resolve-self-in-impl.rs:1:1  | 
86 | 50 |    |  | 
 | 
93 | 57 | LL | | fn main() {}  | 
94 | 58 |    | |____________^  | 
95 | 59 | 
 
  | 
96 |  | -error: aborting due to 5 previous errors  | 
 | 60 | +error: aborting due to 6 previous errors  | 
97 | 61 | 
 
  | 
98 | 62 | For more information about this error, try `rustc --explain E0391`.  | 
0 commit comments