error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:15:21
   |
LL |     <Self 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 |     <Self as SVec>::Item<'a>,
   |                         ++++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:15:21
   |
LL |     <Self 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 |     <Self as SVec>::Item<T>,
   |                         +++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:22:37
   |
LL |     Output = <Index<<Self 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 = <Index<<Self as SVec>::Item<'a>,
   |                                         ++++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:22:37
   |
LL |     Output = <Index<<Self 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 = <Index<<Self as SVec>::Item<T>,
   |                                         +++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:29:30
   |
LL |     Output = <Self as SVec>::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 = <Self as SVec>::Item<'a>> as SVec>::Item,
   |                                  ++++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:29:30
   |
LL |     Output = <Self as SVec>::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 = <Self as SVec>::Item<T>> as SVec>::Item,
   |                                  +++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:29:46
   |
LL |     Output = <Self as SVec>::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 = <Self as SVec>::Item> as SVec>::Item<'a>,
   |                                                  ++++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:29:46
   |
LL |     Output = <Self as SVec>::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 = <Self as SVec>::Item> as SVec>::Item<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<Item = T, Output = T>) {
   |                                        ^^^^ 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<Item<'_> = 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<Item = T, Output = T>) {
   |                                        ^^^^ 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<Item<T> = T, Output = T>) {
   |                                            +++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:15:21
   |
LL |     <Self 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 |     <Self as SVec>::Item<'a>,
   |                         ++++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:15:21
   |
LL |     <Self 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 |     <Self as SVec>::Item<T>,
   |                         +++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:22:37
   |
LL |     Output = <Index<<Self 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 = <Index<<Self as SVec>::Item<'a>,
   |                                         ++++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:22:37
   |
LL |     Output = <Index<<Self 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 = <Index<<Self as SVec>::Item<T>,
   |                                         +++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:29:30
   |
LL |     Output = <Self as SVec>::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 = <Self as SVec>::Item<'a>> as SVec>::Item,
   |                                  ++++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:29:30
   |
LL |     Output = <Self as SVec>::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 = <Self as SVec>::Item<T>> as SVec>::Item,
   |                                  +++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:29:46
   |
LL |     Output = <Self as SVec>::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 = <Self as SVec>::Item> as SVec>::Item<'a>,
   |                                                  ++++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:29:46
   |
LL |     Output = <Self as SVec>::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 = <Self as SVec>::Item> as SVec>::Item<T>,
   |                                                  +++

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<Item = T, Output = T>) {
   |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `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 <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
  --> $DIR/issue-105742.rs:14:17
   |
LL |    pub trait SVec: Index<
   |  ____________----__^
   | |            |
   | |            this trait cannot be made into an object...
LL | |      <Self as SVec>::Item,
LL | |
LL | |
...  |
LL | |/     Output = <Index<<Self as SVec>::Item,
LL | ||
LL | ||
LL | ||
...  ||
LL | ||
LL | ||     Output = <Self as SVec>::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) -> <Self 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 |     fn len(&self) -> <Self as SVec>::Item<'_>;
   |                                          ++++

error[E0107]: missing generics for associated type `SVec::Item`
  --> $DIR/issue-105742.rs:45:38
   |
LL |     fn len(&self) -> <Self 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 |     fn len(&self) -> <Self as SVec>::Item<T>;
   |                                          +++

error: aborting due to 21 previous errors

Some errors have detailed explanations: E0038, E0107.
For more information about an error, try `rustc --explain E0038`.
