You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `Foo` cannot be made into an object
15
+
|
16
+
= help: consider moving `A` to another trait
17
+
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
18
+
--> $DIR/gat-in-trait-path.rs:6:10
19
+
|
20
+
LL | trait Foo {
21
+
| --- this trait cannot be made into an object...
22
+
LL | type A<'a> where Self: 'a;
23
+
| ^ ...because it contains the generic associated type `A`
24
+
25
+
error: aborting due to previous error; 1 warning emitted
11
26
27
+
For more information about this error, try `rustc --explain E0038`.
| ^^^^^^^^^^^^^^^^^^^^^^^^ `X` cannot be made into an object
15
+
|
16
+
= help: consider moving `Y` to another trait
17
+
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
18
+
--> $DIR/issue-67510-pass.rs:5:10
19
+
|
20
+
LL | trait X {
21
+
| - this trait cannot be made into an object...
22
+
LL | type Y<'a>;
23
+
| ^ ...because it contains the generic associated type `Y`
24
+
25
+
error: aborting due to previous error; 1 warning emitted
11
26
27
+
For more information about this error, try `rustc --explain E0038`.
Copy file name to clipboardExpand all lines: src/test/ui/generic-associated-types/issue-76535.stderr
+35-2Lines changed: 35 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -23,6 +23,39 @@ help: use angle brackets to add missing lifetime argument
23
23
LL | type SubType<'a><'a>: SubTrait;
24
24
| ^^^^
25
25
26
-
error: aborting due to previous error; 1 warning emitted
26
+
error[E0038]: the trait `SuperTrait` cannot be made into an object
27
+
--> $DIR/issue-76535.rs:38:14
28
+
|
29
+
LL | let sub: Box<dyn SuperTrait<SubType = SubStruct>> = Box::new(SuperStruct::new(0));
30
+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `SuperTrait` cannot be made into an object
31
+
|
32
+
= help: consider moving `SubType` to another trait
33
+
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
34
+
--> $DIR/issue-76535.rs:7:10
35
+
|
36
+
LL | pub trait SuperTrait {
37
+
| ---------- this trait cannot be made into an object...
38
+
LL | type SubType<'a>: SubTrait;
39
+
| ^^^^^^^ ...because it contains the generic associated type `SubType`
40
+
41
+
error[E0038]: the trait `SuperTrait` cannot be made into an object
42
+
--> $DIR/issue-76535.rs:38:57
43
+
|
44
+
LL | let sub: Box<dyn SuperTrait<SubType = SubStruct>> = Box::new(SuperStruct::new(0));
45
+
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `SuperTrait` cannot be made into an object
46
+
|
47
+
= help: consider moving `SubType` to another trait
48
+
note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
49
+
--> $DIR/issue-76535.rs:7:10
50
+
|
51
+
LL | pub trait SuperTrait {
52
+
| ---------- this trait cannot be made into an object...
53
+
LL | type SubType<'a>: SubTrait;
54
+
| ^^^^^^^ ...because it contains the generic associated type `SubType`
55
+
= note: required because of the requirements on the impl of `CoerceUnsized<Box<dyn SuperTrait<SubType = SubStruct<'_>>>>` for `Box<SuperStruct>`
56
+
= note: required by cast to type `Box<dyn SuperTrait<SubType = SubStruct<'_>>>`
57
+
58
+
error: aborting due to 3 previous errors; 1 warning emitted
27
59
28
-
For more information about this error, try `rustc --explain E0107`.
60
+
Some errors have detailed explanations: E0038, E0107.
61
+
For more information about an error, try `rustc --explain E0038`.
0 commit comments