1error[E0107]: missing generics for associated type `SuperTrait::SubType` 2 --> $DIR/issue-76535.rs:36:33 3 | 4LL | let sub: Box<dyn SuperTrait<SubType = SubStruct>> = Box::new(SuperStruct::new(0)); 5 | ^^^^^^^ expected 1 lifetime argument 6 | 7note: associated type defined here, with 1 lifetime parameter: `'a` 8 --> $DIR/issue-76535.rs:6:10 9 | 10LL | type SubType<'a>: SubTrait where Self: 'a; 11 | ^^^^^^^ -- 12help: add missing lifetime argument 13 | 14LL | let sub: Box<dyn SuperTrait<SubType<'a> = SubStruct>> = Box::new(SuperStruct::new(0)); 15 | ~~~~~~~~~~~ 16 17error[E0038]: the trait `SuperTrait` cannot be made into an object 18 --> $DIR/issue-76535.rs:36:14 19 | 20LL | let sub: Box<dyn SuperTrait<SubType = SubStruct>> = Box::new(SuperStruct::new(0)); 21 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `SuperTrait` cannot be made into an object 22 | 23note: 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> 24 --> $DIR/issue-76535.rs:6:10 25 | 26LL | pub trait SuperTrait { 27 | ---------- this trait cannot be made into an object... 28LL | type SubType<'a>: SubTrait where Self: 'a; 29 | ^^^^^^^ ...because it contains the generic associated type `SubType` 30 = help: consider moving `SubType` to another trait 31 32error[E0038]: the trait `SuperTrait` cannot be made into an object 33 --> $DIR/issue-76535.rs:36:57 34 | 35LL | let sub: Box<dyn SuperTrait<SubType = SubStruct>> = Box::new(SuperStruct::new(0)); 36 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `SuperTrait` cannot be made into an object 37 | 38note: 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> 39 --> $DIR/issue-76535.rs:6:10 40 | 41LL | pub trait SuperTrait { 42 | ---------- this trait cannot be made into an object... 43LL | type SubType<'a>: SubTrait where Self: 'a; 44 | ^^^^^^^ ...because it contains the generic associated type `SubType` 45 = help: consider moving `SubType` to another trait 46 = note: required because of the requirements on the impl of `CoerceUnsized<Box<dyn SuperTrait<SubType = SubStruct<'_>>>>` for `Box<SuperStruct>` 47 = note: required by cast to type `Box<dyn SuperTrait<SubType = SubStruct<'_>>>` 48 49error: aborting due to 3 previous errors 50 51Some errors have detailed explanations: E0038, E0107. 52For more information about an error, try `rustc --explain E0038`. 53