error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:15:21 | LL | ::Item, | ^^^^ expected 1 lifetime argument | note: associated type defined here, with 1 lifetime parameter: `'a` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ -- help: add missing lifetime argument | LL | ::Item<'a>, | ++++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:15:21 | LL | ::Item, | ^^^^ expected 1 generic argument | note: associated type defined here, with 1 generic parameter: `T` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ - help: add missing generic argument | LL | ::Item, | +++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:22:37 | LL | Output = ::Item, | ^^^^ expected 1 lifetime argument | note: associated type defined here, with 1 lifetime parameter: `'a` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ -- help: add missing lifetime argument | LL | Output = ::Item<'a>, | ++++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:22:37 | LL | Output = ::Item, | ^^^^ expected 1 generic argument | note: associated type defined here, with 1 generic parameter: `T` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ - help: add missing generic argument | LL | Output = ::Item, | +++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:29:30 | LL | Output = ::Item> as SVec>::Item, | ^^^^ expected 1 lifetime argument | note: associated type defined here, with 1 lifetime parameter: `'a` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ -- help: add missing lifetime argument | LL | Output = ::Item<'a>> as SVec>::Item, | ++++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:29:30 | LL | Output = ::Item> as SVec>::Item, | ^^^^ expected 1 generic argument | note: associated type defined here, with 1 generic parameter: `T` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ - help: add missing generic argument | LL | Output = ::Item> as SVec>::Item, | +++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:29:46 | LL | Output = ::Item> as SVec>::Item, | ^^^^ expected 1 lifetime argument | note: associated type defined here, with 1 lifetime parameter: `'a` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ -- help: add missing lifetime argument | LL | Output = ::Item> as SVec>::Item<'a>, | ++++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:29:46 | LL | Output = ::Item> as SVec>::Item, | ^^^^ expected 1 generic argument | note: associated type defined here, with 1 generic parameter: `T` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ - help: add missing generic argument | LL | Output = ::Item> as SVec>::Item, | +++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:4:40 | LL | pub fn next<'a, T>(s: &'a mut dyn SVec) { | ^^^^ expected 1 lifetime argument | note: associated type defined here, with 1 lifetime parameter: `'a` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ -- help: add missing lifetime argument | LL | pub fn next<'a, T>(s: &'a mut dyn SVec = T, Output = T>) { | ++++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:4:40 | LL | pub fn next<'a, T>(s: &'a mut dyn SVec) { | ^^^^ expected 1 generic argument | note: associated type defined here, with 1 generic parameter: `T` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ - help: add missing generic argument | LL | pub fn next<'a, T>(s: &'a mut dyn SVec = T, Output = T>) { | +++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:15:21 | LL | ::Item, | ^^^^ expected 1 lifetime argument | note: associated type defined here, with 1 lifetime parameter: `'a` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ -- help: add missing lifetime argument | LL | ::Item<'a>, | ++++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:15:21 | LL | ::Item, | ^^^^ expected 1 generic argument | note: associated type defined here, with 1 generic parameter: `T` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ - help: add missing generic argument | LL | ::Item, | +++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:22:37 | LL | Output = ::Item, | ^^^^ expected 1 lifetime argument | note: associated type defined here, with 1 lifetime parameter: `'a` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ -- help: add missing lifetime argument | LL | Output = ::Item<'a>, | ++++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:22:37 | LL | Output = ::Item, | ^^^^ expected 1 generic argument | note: associated type defined here, with 1 generic parameter: `T` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ - help: add missing generic argument | LL | Output = ::Item, | +++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:29:30 | LL | Output = ::Item> as SVec>::Item, | ^^^^ expected 1 lifetime argument | note: associated type defined here, with 1 lifetime parameter: `'a` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ -- help: add missing lifetime argument | LL | Output = ::Item<'a>> as SVec>::Item, | ++++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:29:30 | LL | Output = ::Item> as SVec>::Item, | ^^^^ expected 1 generic argument | note: associated type defined here, with 1 generic parameter: `T` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ - help: add missing generic argument | LL | Output = ::Item> as SVec>::Item, | +++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:29:46 | LL | Output = ::Item> as SVec>::Item, | ^^^^ expected 1 lifetime argument | note: associated type defined here, with 1 lifetime parameter: `'a` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ -- help: add missing lifetime argument | LL | Output = ::Item> as SVec>::Item<'a>, | ++++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:29:46 | LL | Output = ::Item> as SVec>::Item, | ^^^^ expected 1 generic argument | note: associated type defined here, with 1 generic parameter: `T` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ - help: add missing generic argument | LL | Output = ::Item> as SVec>::Item, | +++ error[E0038]: the trait `SVec` cannot be made into an object --> $DIR/issue-105742.rs:4:31 | LL | pub fn next<'a, T>(s: &'a mut dyn SVec) { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `SVec` cannot be made into an object | 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 --> $DIR/issue-105742.rs:14:17 | LL | pub trait SVec: Index< | ____________----__^ | | | | | this trait cannot be made into an object... LL | | ::Item, LL | | LL | | ... | LL | |/ Output = ::Item, LL | || LL | || LL | || ... || LL | || LL | || Output = ::Item> as SVec>::Item, | ||_________________________________________________^ ...because it uses `Self` as a type parameter ... | LL | | LL | | > { | |__^ ...because it uses `Self` as a type parameter error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:45:38 | LL | fn len(&self) -> ::Item; | ^^^^ expected 1 lifetime argument | note: associated type defined here, with 1 lifetime parameter: `'a` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ -- help: add missing lifetime argument | LL | fn len(&self) -> ::Item<'_>; | ++++ error[E0107]: missing generics for associated type `SVec::Item` --> $DIR/issue-105742.rs:45:38 | LL | fn len(&self) -> ::Item; | ^^^^ expected 1 generic argument | note: associated type defined here, with 1 generic parameter: `T` --> $DIR/issue-105742.rs:43:10 | LL | type Item<'a, T>; | ^^^^ - help: add missing generic argument | LL | fn len(&self) -> ::Item; | +++ error: aborting due to 21 previous errors Some errors have detailed explanations: E0038, E0107. For more information about an error, try `rustc --explain E0038`.