error[E0106]: missing lifetime specifier
  --> $DIR/wrong-number-of-args.rs:48:14
   |
LL |     type A = Ty;
   |              ^^ expected named lifetime parameter
   |
help: consider introducing a named lifetime parameter
   |
LL |     type A<'a> = Ty<'a>;
   |           ++++     ++++

error[E0106]: missing lifetime specifier
  --> $DIR/wrong-number-of-args.rs:58:16
   |
LL |     type C = Ty<usize>;
   |                ^ expected named lifetime parameter
   |
help: consider introducing a named lifetime parameter
   |
LL |     type C<'a> = Ty<'a, usize>;
   |           ++++      +++

error[E0106]: missing lifetime specifier
  --> $DIR/wrong-number-of-args.rs:64:16
   |
LL |     type E = Ty<>;
   |                ^ expected named lifetime parameter
   |
help: consider introducing a named lifetime parameter
   |
LL |     type E<'a> = Ty<'a, >;
   |           ++++      +++

error[E0106]: missing lifetime specifier
  --> $DIR/wrong-number-of-args.rs:120:22
   |
LL |     type B = Box<dyn GenericLifetime>;
   |                      ^^^^^^^^^^^^^^^ expected named lifetime parameter
   |
   = note: for more information on higher-ranked polymorphism, visit https://doc.rust-lang.org/nomicon/hrtb.html
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
LL |     type B = Box<dyn for<'a> GenericLifetime<'a>>;
   |                      +++++++                ++++
help: consider introducing a named lifetime parameter
   |
LL |     type B<'a> = Box<dyn GenericLifetime<'a>>;
   |           ++++                          ++++

error[E0106]: missing lifetime specifier
  --> $DIR/wrong-number-of-args.rs:137:37
   |
LL |     type F = Box<dyn GenericLifetime<>>;
   |                                     ^ expected named lifetime parameter
   |
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
LL |     type F = Box<dyn for<'a> GenericLifetime<'a, >>;
   |                      +++++++                 +++
help: consider introducing a named lifetime parameter
   |
LL |     type F<'a> = Box<dyn GenericLifetime<'a, >>;
   |           ++++                           +++

error[E0106]: missing lifetime specifier
  --> $DIR/wrong-number-of-args.rs:163:43
   |
LL |         type A = Box<dyn GenericLifetimeAT<AssocTy=()>>;
   |                                           ^ expected named lifetime parameter
   |
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
LL |         type A = Box<dyn for<'a> GenericLifetimeAT<'a, AssocTy=()>>;
   |                          +++++++                   +++
help: consider introducing a named lifetime parameter
   |
LL |         type A<'a> = Box<dyn GenericLifetimeAT<'a, AssocTy=()>>;
   |               ++++                             +++

error[E0106]: missing lifetime specifier
  --> $DIR/wrong-number-of-args.rs:172:43
   |
LL |         type C = Box<dyn GenericLifetimeAT<(), AssocTy=()>>;
   |                                           ^ expected named lifetime parameter
   |
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
LL |         type C = Box<dyn for<'a> GenericLifetimeAT<'a, (), AssocTy=()>>;
   |                          +++++++                   +++
help: consider introducing a named lifetime parameter
   |
LL |         type C<'a> = Box<dyn GenericLifetimeAT<'a, (), AssocTy=()>>;
   |               ++++                             +++

error[E0106]: missing lifetime specifier
  --> $DIR/wrong-number-of-args.rs:205:47
   |
LL |         type A = Box<dyn GenericLifetimeTypeAT<AssocTy=()>>;
   |                                               ^ expected named lifetime parameter
   |
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
LL |         type A = Box<dyn for<'a> GenericLifetimeTypeAT<'a, AssocTy=()>>;
   |                          +++++++                       +++
help: consider introducing a named lifetime parameter
   |
LL |         type A<'a> = Box<dyn GenericLifetimeTypeAT<'a, AssocTy=()>>;
   |               ++++                                 +++

error[E0106]: missing lifetime specifier
  --> $DIR/wrong-number-of-args.rs:222:47
   |
LL |         type D = Box<dyn GenericLifetimeTypeAT<(), AssocTy=()>>;
   |                                               ^ expected named lifetime parameter
   |
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
LL |         type D = Box<dyn for<'a> GenericLifetimeTypeAT<'a, (), AssocTy=()>>;
   |                          +++++++                       +++
help: consider introducing a named lifetime parameter
   |
LL |         type D<'a> = Box<dyn GenericLifetimeTypeAT<'a, (), AssocTy=()>>;
   |               ++++                                 +++

error[E0106]: missing lifetime specifier
  --> $DIR/wrong-number-of-args.rs:227:47
   |
LL |         type E = Box<dyn GenericLifetimeTypeAT<(), (), AssocTy=()>>;
   |                                               ^ expected named lifetime parameter
   |
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
LL |         type E = Box<dyn for<'a> GenericLifetimeTypeAT<'a, (), (), AssocTy=()>>;
   |                          +++++++                       +++
help: consider introducing a named lifetime parameter
   |
LL |         type E<'a> = Box<dyn GenericLifetimeTypeAT<'a, (), (), AssocTy=()>>;
   |               ++++                                 +++

error[E0106]: missing lifetime specifiers
  --> $DIR/wrong-number-of-args.rs:272:51
   |
LL |         type A = Box<dyn GenericLifetimeLifetimeAT<AssocTy=()>>;
   |                                                   ^ expected 2 lifetime parameters
   |
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
LL |         type A = Box<dyn for<'a> GenericLifetimeLifetimeAT<'a, 'a, AssocTy=()>>;
   |                          +++++++                           +++++++
help: consider introducing a named lifetime parameter
   |
LL |         type A<'a> = Box<dyn GenericLifetimeLifetimeAT<'a, 'a, AssocTy=()>>;
   |               ++++                                     +++++++

error[E0106]: missing lifetime specifiers
  --> $DIR/wrong-number-of-args.rs:287:55
   |
LL |         type A = Box<dyn GenericLifetimeLifetimeTypeAT<AssocTy=()>>;
   |                                                       ^ expected 2 lifetime parameters
   |
help: consider making the bound lifetime-generic with a new `'a` lifetime
   |
LL |         type A = Box<dyn for<'a> GenericLifetimeLifetimeTypeAT<'a, 'a, AssocTy=()>>;
   |                          +++++++                               +++++++
help: consider introducing a named lifetime parameter
   |
LL |         type A<'a> = Box<dyn GenericLifetimeLifetimeTypeAT<'a, 'a, AssocTy=()>>;
   |               ++++                                         +++++++

error[E0107]: this struct takes 0 lifetime arguments but 1 lifetime argument was supplied
  --> $DIR/wrong-number-of-args.rs:6:14
   |
LL |     type B = Ty<'static>;
   |              ^^--------- help: remove these generics
   |              |
   |              expected 0 lifetime arguments
   |
note: struct defined here, with 0 lifetime parameters
  --> $DIR/wrong-number-of-args.rs:2:12
   |
LL |     struct Ty;
   |            ^^

error[E0107]: this struct takes 0 lifetime arguments but 1 lifetime argument was supplied
  --> $DIR/wrong-number-of-args.rs:10:14
   |
LL |     type C = Ty<'static, usize>;
   |              ^^ ------- help: remove this lifetime argument
   |              |
   |              expected 0 lifetime arguments
   |
note: struct defined here, with 0 lifetime parameters
  --> $DIR/wrong-number-of-args.rs:2:12
   |
LL |     struct Ty;
   |            ^^

error[E0107]: this struct takes 0 generic arguments but 1 generic argument was supplied
  --> $DIR/wrong-number-of-args.rs:10:14
   |
LL |     type C = Ty<'static, usize>;
   |              ^^          ----- help: remove this generic argument
   |              |
   |              expected 0 generic arguments
   |
note: struct defined here, with 0 generic parameters
  --> $DIR/wrong-number-of-args.rs:2:12
   |
LL |     struct Ty;
   |            ^^

error[E0107]: this struct takes 0 lifetime arguments but 1 lifetime argument was supplied
  --> $DIR/wrong-number-of-args.rs:16:14
   |
LL |     type D = Ty<'static, usize, { 0 }>;
   |              ^^ ------- help: remove this lifetime argument
   |              |
   |              expected 0 lifetime arguments
   |
note: struct defined here, with 0 lifetime parameters
  --> $DIR/wrong-number-of-args.rs:2:12
   |
LL |     struct Ty;
   |            ^^

error[E0107]: this struct takes 0 generic arguments but 2 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:16:14
   |
LL |     type D = Ty<'static, usize, { 0 }>;
   |              ^^          ------------ help: remove these generic arguments
   |              |
   |              expected 0 generic arguments
   |
note: struct defined here, with 0 generic parameters
  --> $DIR/wrong-number-of-args.rs:2:12
   |
LL |     struct Ty;
   |            ^^

error[E0107]: missing generics for struct `type_and_type::Ty`
  --> $DIR/wrong-number-of-args.rs:26:14
   |
LL |     type A = Ty;
   |              ^^ expected 2 generic arguments
   |
note: struct defined here, with 2 generic parameters: `A`, `B`
  --> $DIR/wrong-number-of-args.rs:24:12
   |
LL |     struct Ty<A, B>;
   |            ^^ -  -
help: add missing generic arguments
   |
LL |     type A = Ty<A, B>;
   |                ++++++

error[E0107]: this struct takes 2 generic arguments but 1 generic argument was supplied
  --> $DIR/wrong-number-of-args.rs:30:14
   |
LL |     type B = Ty<usize>;
   |              ^^ ----- supplied 1 generic argument
   |              |
   |              expected 2 generic arguments
   |
note: struct defined here, with 2 generic parameters: `A`, `B`
  --> $DIR/wrong-number-of-args.rs:24:12
   |
LL |     struct Ty<A, B>;
   |            ^^ -  -
help: add missing generic argument
   |
LL |     type B = Ty<usize, B>;
   |                      +++

error[E0107]: this struct takes 2 generic arguments but 3 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:36:14
   |
LL |     type D = Ty<usize, String, char>;
   |              ^^                ---- help: remove this generic argument
   |              |
   |              expected 2 generic arguments
   |
note: struct defined here, with 2 generic parameters: `A`, `B`
  --> $DIR/wrong-number-of-args.rs:24:12
   |
LL |     struct Ty<A, B>;
   |            ^^ -  -

error[E0107]: this struct takes 2 generic arguments but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:40:14
   |
LL |     type E = Ty<>;
   |              ^^ expected 2 generic arguments
   |
note: struct defined here, with 2 generic parameters: `A`, `B`
  --> $DIR/wrong-number-of-args.rs:24:12
   |
LL |     struct Ty<A, B>;
   |            ^^ -  -
help: add missing generic arguments
   |
LL |     type E = Ty<A, B>;
   |                 ++++

error[E0107]: missing generics for struct `lifetime_and_type::Ty`
  --> $DIR/wrong-number-of-args.rs:48:14
   |
LL |     type A = Ty;
   |              ^^ expected 1 generic argument
   |
note: struct defined here, with 1 generic parameter: `T`
  --> $DIR/wrong-number-of-args.rs:46:12
   |
LL |     struct Ty<'a, T>;
   |            ^^     -
help: add missing generic argument
   |
LL |     type A = Ty<T>;
   |                +++

error[E0107]: this struct takes 1 generic argument but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:54:14
   |
LL |     type B = Ty<'static>;
   |              ^^ expected 1 generic argument
   |
note: struct defined here, with 1 generic parameter: `T`
  --> $DIR/wrong-number-of-args.rs:46:12
   |
LL |     struct Ty<'a, T>;
   |            ^^     -
help: add missing generic argument
   |
LL |     type B = Ty<'static, T>;
   |                        +++

error[E0107]: this struct takes 1 generic argument but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:64:14
   |
LL |     type E = Ty<>;
   |              ^^ expected 1 generic argument
   |
note: struct defined here, with 1 generic parameter: `T`
  --> $DIR/wrong-number-of-args.rs:46:12
   |
LL |     struct Ty<'a, T>;
   |            ^^     -
help: add missing generic argument
   |
LL |     type E = Ty<T>;
   |                 +

error[E0107]: this struct takes 1 lifetime argument but 2 lifetime arguments were supplied
  --> $DIR/wrong-number-of-args.rs:70:14
   |
LL |     type F = Ty<'static, usize, 'static, usize>;
   |              ^^                 ------- help: remove this lifetime argument
   |              |
   |              expected 1 lifetime argument
   |
note: struct defined here, with 1 lifetime parameter: `'a`
  --> $DIR/wrong-number-of-args.rs:46:12
   |
LL |     struct Ty<'a, T>;
   |            ^^ --

error[E0107]: this struct takes 1 generic argument but 2 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:70:14
   |
LL |     type F = Ty<'static, usize, 'static, usize>;
   |              ^^                          ----- help: remove this generic argument
   |              |
   |              expected 1 generic argument
   |
note: struct defined here, with 1 generic parameter: `T`
  --> $DIR/wrong-number-of-args.rs:46:12
   |
LL |     struct Ty<'a, T>;
   |            ^^     -

error[E0107]: missing generics for struct `type_and_type_and_type::Ty`
  --> $DIR/wrong-number-of-args.rs:80:14
   |
LL |     type A = Ty;
   |              ^^ expected at least 2 generic arguments
   |
note: struct defined here, with at least 2 generic parameters: `A`, `B`
  --> $DIR/wrong-number-of-args.rs:78:12
   |
LL |     struct Ty<A, B, C = &'static str>;
   |            ^^ -  -
help: add missing generic arguments
   |
LL |     type A = Ty<A, B>;
   |                ++++++

error[E0107]: this struct takes at least 2 generic arguments but 1 generic argument was supplied
  --> $DIR/wrong-number-of-args.rs:84:14
   |
LL |     type B = Ty<usize>;
   |              ^^ ----- supplied 1 generic argument
   |              |
   |              expected at least 2 generic arguments
   |
note: struct defined here, with at least 2 generic parameters: `A`, `B`
  --> $DIR/wrong-number-of-args.rs:78:12
   |
LL |     struct Ty<A, B, C = &'static str>;
   |            ^^ -  -
help: add missing generic argument
   |
LL |     type B = Ty<usize, B>;
   |                      +++

error[E0107]: this struct takes at most 3 generic arguments but 4 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:92:14
   |
LL |     type E = Ty<usize, String, char, f64>;
   |              ^^                      --- help: remove this generic argument
   |              |
   |              expected at most 3 generic arguments
   |
note: struct defined here, with at most 3 generic parameters: `A`, `B`, `C`
  --> $DIR/wrong-number-of-args.rs:78:12
   |
LL |     struct Ty<A, B, C = &'static str>;
   |            ^^ -  -  ----------------

error[E0107]: this struct takes at least 2 generic arguments but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:96:14
   |
LL |     type F = Ty<>;
   |              ^^ expected at least 2 generic arguments
   |
note: struct defined here, with at least 2 generic parameters: `A`, `B`
  --> $DIR/wrong-number-of-args.rs:78:12
   |
LL |     struct Ty<A, B, C = &'static str>;
   |            ^^ -  -
help: add missing generic arguments
   |
LL |     type F = Ty<A, B>;
   |                 ++++

error[E0107]: this trait takes 0 generic arguments but 1 generic argument was supplied
  --> $DIR/wrong-number-of-args.rs:116:22
   |
LL |     type A = Box<dyn NonGeneric<usize>>;
   |                      ^^^^^^^^^^------- help: remove these generics
   |                      |
   |                      expected 0 generic arguments
   |
note: trait defined here, with 0 generic parameters
  --> $DIR/wrong-number-of-args.rs:104:11
   |
LL |     trait NonGeneric {
   |           ^^^^^^^^^^

error[E0107]: this trait takes 1 lifetime argument but 2 lifetime arguments were supplied
  --> $DIR/wrong-number-of-args.rs:125:22
   |
LL |     type C = Box<dyn GenericLifetime<'static, 'static>>;
   |                      ^^^^^^^^^^^^^^^          ------- help: remove this lifetime argument
   |                      |
   |                      expected 1 lifetime argument
   |
note: trait defined here, with 1 lifetime parameter: `'a`
  --> $DIR/wrong-number-of-args.rs:108:11
   |
LL |     trait GenericLifetime<'a> {
   |           ^^^^^^^^^^^^^^^ --

error[E0107]: missing generics for trait `GenericType`
  --> $DIR/wrong-number-of-args.rs:129:22
   |
LL |     type D = Box<dyn GenericType>;
   |                      ^^^^^^^^^^^ expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:112:11
   |
LL |     trait GenericType<A> {
   |           ^^^^^^^^^^^ -
help: add missing generic argument
   |
LL |     type D = Box<dyn GenericType<A>>;
   |                                 +++

error[E0107]: this trait takes 1 generic argument but 2 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:133:22
   |
LL |     type E = Box<dyn GenericType<String, usize>>;
   |                      ^^^^^^^^^^^         ----- help: remove this generic argument
   |                      |
   |                      expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:112:11
   |
LL |     trait GenericType<A> {
   |           ^^^^^^^^^^^ -

error[E0107]: this trait takes 1 generic argument but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:142:22
   |
LL |     type G = Box<dyn GenericType<>>;
   |                      ^^^^^^^^^^^ expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:112:11
   |
LL |     trait GenericType<A> {
   |           ^^^^^^^^^^^ -
help: add missing generic argument
   |
LL |     type G = Box<dyn GenericType<A>>;
   |                                  +

error[E0107]: this trait takes 0 generic arguments but 1 generic argument was supplied
  --> $DIR/wrong-number-of-args.rs:153:26
   |
LL |         type A = Box<dyn NonGenericAT<usize, AssocTy=()>>;
   |                          ^^^^^^^^^^^^------------------- help: remove these generics
   |                          |
   |                          expected 0 generic arguments
   |
note: trait defined here, with 0 generic parameters
  --> $DIR/wrong-number-of-args.rs:149:15
   |
LL |         trait NonGenericAT {
   |               ^^^^^^^^^^^^

error[E0107]: this trait takes 1 lifetime argument but 2 lifetime arguments were supplied
  --> $DIR/wrong-number-of-args.rs:168:26
   |
LL |         type B = Box<dyn GenericLifetimeAT<'static, 'static, AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^          ------- help: remove this lifetime argument
   |                          |
   |                          expected 1 lifetime argument
   |
note: trait defined here, with 1 lifetime parameter: `'a`
  --> $DIR/wrong-number-of-args.rs:159:15
   |
LL |         trait GenericLifetimeAT<'a> {
   |               ^^^^^^^^^^^^^^^^^ --

error[E0107]: this trait takes 0 generic arguments but 1 generic argument was supplied
  --> $DIR/wrong-number-of-args.rs:172:26
   |
LL |         type C = Box<dyn GenericLifetimeAT<(), AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^ -- help: remove this generic argument
   |                          |
   |                          expected 0 generic arguments
   |
note: trait defined here, with 0 generic parameters
  --> $DIR/wrong-number-of-args.rs:159:15
   |
LL |         trait GenericLifetimeAT<'a> {
   |               ^^^^^^^^^^^^^^^^^

error[E0107]: this trait takes 1 generic argument but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:185:26
   |
LL |         type A = Box<dyn GenericTypeAT<AssocTy=()>>;
   |                          ^^^^^^^^^^^^^ expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:181:15
   |
LL |         trait GenericTypeAT<A> {
   |               ^^^^^^^^^^^^^ -
help: add missing generic argument
   |
LL |         type A = Box<dyn GenericTypeAT<A, AssocTy=()>>;
   |                                        ++

error[E0107]: this trait takes 1 generic argument but 2 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:189:26
   |
LL |         type B = Box<dyn GenericTypeAT<(), (), AssocTy=()>>;
   |                          ^^^^^^^^^^^^^     -- help: remove this generic argument
   |                          |
   |                          expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:181:15
   |
LL |         trait GenericTypeAT<A> {
   |               ^^^^^^^^^^^^^ -

error[E0107]: this trait takes 0 lifetime arguments but 1 lifetime argument was supplied
  --> $DIR/wrong-number-of-args.rs:193:26
   |
LL |         type C = Box<dyn GenericTypeAT<'static, AssocTy=()>>;
   |                          ^^^^^^^^^^^^^--------------------- help: remove these generics
   |                          |
   |                          expected 0 lifetime arguments
   |
note: trait defined here, with 0 lifetime parameters
  --> $DIR/wrong-number-of-args.rs:181:15
   |
LL |         trait GenericTypeAT<A> {
   |               ^^^^^^^^^^^^^

error[E0107]: this trait takes 1 generic argument but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:193:26
   |
LL |         type C = Box<dyn GenericTypeAT<'static, AssocTy=()>>;
   |                          ^^^^^^^^^^^^^ expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:181:15
   |
LL |         trait GenericTypeAT<A> {
   |               ^^^^^^^^^^^^^ -
help: add missing generic argument
   |
LL |         type C = Box<dyn GenericTypeAT<'static, A, AssocTy=()>>;
   |                                               +++

error[E0107]: this trait takes 1 generic argument but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:205:26
   |
LL |         type A = Box<dyn GenericLifetimeTypeAT<AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^ expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:201:15
   |
LL |         trait GenericLifetimeTypeAT<'a, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^     -
help: add missing generic argument
   |
LL |         type A = Box<dyn GenericLifetimeTypeAT<A, AssocTy=()>>;
   |                                                ++

error[E0107]: this trait takes 1 generic argument but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:212:26
   |
LL |         type B = Box<dyn GenericLifetimeTypeAT<'static, AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^ expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:201:15
   |
LL |         trait GenericLifetimeTypeAT<'a, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^     -
help: add missing generic argument
   |
LL |         type B = Box<dyn GenericLifetimeTypeAT<'static, A, AssocTy=()>>;
   |                                                       +++

error[E0107]: this trait takes 1 lifetime argument but 2 lifetime arguments were supplied
  --> $DIR/wrong-number-of-args.rs:216:26
   |
LL |         type C = Box<dyn GenericLifetimeTypeAT<'static, 'static, AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^          ------- help: remove this lifetime argument
   |                          |
   |                          expected 1 lifetime argument
   |
note: trait defined here, with 1 lifetime parameter: `'a`
  --> $DIR/wrong-number-of-args.rs:201:15
   |
LL |         trait GenericLifetimeTypeAT<'a, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^ --

error[E0107]: this trait takes 1 generic argument but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:216:26
   |
LL |         type C = Box<dyn GenericLifetimeTypeAT<'static, 'static, AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^ expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:201:15
   |
LL |         trait GenericLifetimeTypeAT<'a, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^     -
help: add missing generic argument
   |
LL |         type C = Box<dyn GenericLifetimeTypeAT<'static, 'static, A, AssocTy=()>>;
   |                                                                +++

error[E0107]: this trait takes 1 generic argument but 2 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:227:26
   |
LL |         type E = Box<dyn GenericLifetimeTypeAT<(), (), AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^     -- help: remove this generic argument
   |                          |
   |                          expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:201:15
   |
LL |         trait GenericLifetimeTypeAT<'a, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^     -

error[E0107]: this trait takes 1 lifetime argument but 2 lifetime arguments were supplied
  --> $DIR/wrong-number-of-args.rs:234:26
   |
LL |         type F = Box<dyn GenericLifetimeTypeAT<'static, 'static, (), AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^          ------- help: remove this lifetime argument
   |                          |
   |                          expected 1 lifetime argument
   |
note: trait defined here, with 1 lifetime parameter: `'a`
  --> $DIR/wrong-number-of-args.rs:201:15
   |
LL |         trait GenericLifetimeTypeAT<'a, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^ --

error[E0107]: this trait takes 1 generic argument but 2 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:238:26
   |
LL |         type G = Box<dyn GenericLifetimeTypeAT<'static, (), (), AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^              -- help: remove this generic argument
   |                          |
   |                          expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:201:15
   |
LL |         trait GenericLifetimeTypeAT<'a, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^     -

error[E0107]: this trait takes 1 lifetime argument but 2 lifetime arguments were supplied
  --> $DIR/wrong-number-of-args.rs:242:26
   |
LL |         type H = Box<dyn GenericLifetimeTypeAT<'static, 'static, (), (), AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^          ------- help: remove this lifetime argument
   |                          |
   |                          expected 1 lifetime argument
   |
note: trait defined here, with 1 lifetime parameter: `'a`
  --> $DIR/wrong-number-of-args.rs:201:15
   |
LL |         trait GenericLifetimeTypeAT<'a, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^ --

error[E0107]: this trait takes 1 generic argument but 2 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:242:26
   |
LL |         type H = Box<dyn GenericLifetimeTypeAT<'static, 'static, (), (), AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^                       -- help: remove this generic argument
   |                          |
   |                          expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:201:15
   |
LL |         trait GenericLifetimeTypeAT<'a, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^     -

error[E0107]: this trait takes 2 generic arguments but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:254:26
   |
LL |         type A = Box<dyn GenericTypeTypeAT<AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^ expected 2 generic arguments
   |
note: trait defined here, with 2 generic parameters: `A`, `B`
  --> $DIR/wrong-number-of-args.rs:250:15
   |
LL |         trait GenericTypeTypeAT<A, B> {
   |               ^^^^^^^^^^^^^^^^^ -  -
help: add missing generic arguments
   |
LL |         type A = Box<dyn GenericTypeTypeAT<A, B, AssocTy=()>>;
   |                                            +++++

error[E0107]: this trait takes 2 generic arguments but 1 generic argument was supplied
  --> $DIR/wrong-number-of-args.rs:258:26
   |
LL |         type B = Box<dyn GenericTypeTypeAT<(), AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^ -- supplied 1 generic argument
   |                          |
   |                          expected 2 generic arguments
   |
note: trait defined here, with 2 generic parameters: `A`, `B`
  --> $DIR/wrong-number-of-args.rs:250:15
   |
LL |         trait GenericTypeTypeAT<A, B> {
   |               ^^^^^^^^^^^^^^^^^ -  -
help: add missing generic argument
   |
LL |         type B = Box<dyn GenericTypeTypeAT<(), B, AssocTy=()>>;
   |                                              +++

error[E0107]: this trait takes 2 generic arguments but 3 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:262:26
   |
LL |         type C = Box<dyn GenericTypeTypeAT<(), (), (), AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^         -- help: remove this generic argument
   |                          |
   |                          expected 2 generic arguments
   |
note: trait defined here, with 2 generic parameters: `A`, `B`
  --> $DIR/wrong-number-of-args.rs:250:15
   |
LL |         trait GenericTypeTypeAT<A, B> {
   |               ^^^^^^^^^^^^^^^^^ -  -

error[E0107]: this trait takes 2 lifetime arguments but 1 lifetime argument was supplied
  --> $DIR/wrong-number-of-args.rs:277:26
   |
LL |         type B = Box<dyn GenericLifetimeLifetimeAT<'static, AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^ ------- supplied 1 lifetime argument
   |                          |
   |                          expected 2 lifetime arguments
   |
note: trait defined here, with 2 lifetime parameters: `'a`, `'b`
  --> $DIR/wrong-number-of-args.rs:268:15
   |
LL |         trait GenericLifetimeLifetimeAT<'a, 'b> {
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^ --  --
help: add missing lifetime argument
   |
LL |         type B = Box<dyn GenericLifetimeLifetimeAT<'static, 'static, AssocTy=()>>;
   |                                                           +++++++++

error[E0107]: this trait takes 1 generic argument but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:287:26
   |
LL |         type A = Box<dyn GenericLifetimeLifetimeTypeAT<AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:283:15
   |
LL |         trait GenericLifetimeLifetimeTypeAT<'a, 'b, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^         -
help: add missing generic argument
   |
LL |         type A = Box<dyn GenericLifetimeLifetimeTypeAT<A, AssocTy=()>>;
   |                                                        ++

error[E0107]: this trait takes 2 lifetime arguments but 1 lifetime argument was supplied
  --> $DIR/wrong-number-of-args.rs:294:26
   |
LL |         type B = Box<dyn GenericLifetimeLifetimeTypeAT<'static, AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------- supplied 1 lifetime argument
   |                          |
   |                          expected 2 lifetime arguments
   |
note: trait defined here, with 2 lifetime parameters: `'a`, `'b`
  --> $DIR/wrong-number-of-args.rs:283:15
   |
LL |         trait GenericLifetimeLifetimeTypeAT<'a, 'b, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --  --
help: add missing lifetime argument
   |
LL |         type B = Box<dyn GenericLifetimeLifetimeTypeAT<'static, 'static, AssocTy=()>>;
   |                                                               +++++++++

error[E0107]: this trait takes 1 generic argument but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:294:26
   |
LL |         type B = Box<dyn GenericLifetimeLifetimeTypeAT<'static, AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 1 generic argument
   |
note: trait defined here, with 1 generic parameter: `A`
  --> $DIR/wrong-number-of-args.rs:283:15
   |
LL |         trait GenericLifetimeLifetimeTypeAT<'a, 'b, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^         -
help: add missing generic argument
   |
LL |         type B = Box<dyn GenericLifetimeLifetimeTypeAT<'static, A, AssocTy=()>>;
   |                                                               +++

error[E0107]: this trait takes 2 lifetime arguments but 1 lifetime argument was supplied
  --> $DIR/wrong-number-of-args.rs:300:26
   |
LL |         type C = Box<dyn GenericLifetimeLifetimeTypeAT<'static, (), AssocTy=()>>;
   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ------- supplied 1 lifetime argument
   |                          |
   |                          expected 2 lifetime arguments
   |
note: trait defined here, with 2 lifetime parameters: `'a`, `'b`
  --> $DIR/wrong-number-of-args.rs:283:15
   |
LL |         trait GenericLifetimeLifetimeTypeAT<'a, 'b, A> {
   |               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ --  --
help: add missing lifetime argument
   |
LL |         type C = Box<dyn GenericLifetimeLifetimeTypeAT<'static, 'static, (), AssocTy=()>>;
   |                                                               +++++++++

error[E0107]: missing generics for struct `HashMap`
  --> $DIR/wrong-number-of-args.rs:310:18
   |
LL |         type A = HashMap;
   |                  ^^^^^^^ expected at least 2 generic arguments
   |
help: add missing generic arguments
   |
LL |         type A = HashMap<K, V>;
   |                         ++++++

error[E0107]: this struct takes at least 2 generic arguments but 1 generic argument was supplied
  --> $DIR/wrong-number-of-args.rs:314:18
   |
LL |         type B = HashMap<String>;
   |                  ^^^^^^^ ------ supplied 1 generic argument
   |                  |
   |                  expected at least 2 generic arguments
   |
help: add missing generic argument
   |
LL |         type B = HashMap<String, V>;
   |                                +++

error[E0107]: this struct takes 0 lifetime arguments but 1 lifetime argument was supplied
  --> $DIR/wrong-number-of-args.rs:318:18
   |
LL |         type C = HashMap<'static>;
   |                  ^^^^^^^--------- help: remove these generics
   |                  |
   |                  expected 0 lifetime arguments

error[E0107]: this struct takes at least 2 generic arguments but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:318:18
   |
LL |         type C = HashMap<'static>;
   |                  ^^^^^^^ expected at least 2 generic arguments
   |
help: add missing generic arguments
   |
LL |         type C = HashMap<'static, K, V>;
   |                                 ++++++

error[E0107]: this struct takes at most 3 generic arguments but 4 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:324:18
   |
LL |         type D = HashMap<usize, String, char, f64>;
   |                  ^^^^^^^                      --- help: remove this generic argument
   |                  |
   |                  expected at most 3 generic arguments

error[E0107]: this struct takes at least 2 generic arguments but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:328:18
   |
LL |         type E = HashMap<>;
   |                  ^^^^^^^ expected at least 2 generic arguments
   |
help: add missing generic arguments
   |
LL |         type E = HashMap<K, V>;
   |                          ++++

error[E0107]: missing generics for enum `Result`
  --> $DIR/wrong-number-of-args.rs:334:18
   |
LL |         type A = Result;
   |                  ^^^^^^ expected 2 generic arguments
   |
help: add missing generic arguments
   |
LL |         type A = Result<T, E>;
   |                        ++++++

error[E0107]: this enum takes 2 generic arguments but 1 generic argument was supplied
  --> $DIR/wrong-number-of-args.rs:338:18
   |
LL |         type B = Result<String>;
   |                  ^^^^^^ ------ supplied 1 generic argument
   |                  |
   |                  expected 2 generic arguments
   |
help: add missing generic argument
   |
LL |         type B = Result<String, E>;
   |                               +++

error[E0107]: this enum takes 0 lifetime arguments but 1 lifetime argument was supplied
  --> $DIR/wrong-number-of-args.rs:342:18
   |
LL |         type C = Result<'static>;
   |                  ^^^^^^--------- help: remove these generics
   |                  |
   |                  expected 0 lifetime arguments

error[E0107]: this enum takes 2 generic arguments but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:342:18
   |
LL |         type C = Result<'static>;
   |                  ^^^^^^ expected 2 generic arguments
   |
help: add missing generic arguments
   |
LL |         type C = Result<'static, T, E>;
   |                                ++++++

error[E0107]: this enum takes 2 generic arguments but 3 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:348:18
   |
LL |         type D = Result<usize, String, char>;
   |                  ^^^^^^                ---- help: remove this generic argument
   |                  |
   |                  expected 2 generic arguments

error[E0107]: this enum takes 2 generic arguments but 0 generic arguments were supplied
  --> $DIR/wrong-number-of-args.rs:352:18
   |
LL |         type E = Result<>;
   |                  ^^^^^^ expected 2 generic arguments
   |
help: add missing generic arguments
   |
LL |         type E = Result<T, E>;
   |                         ++++

error: aborting due to 71 previous errors

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