error[E0106]: missing lifetime specifier --> $DIR/missing-lifetime-in-alias.rs:20:24 | LL | type B<'a> = as Trait>::Foo; | ^^^^^ expected named lifetime parameter | help: consider using the `'a` lifetime | LL | type B<'a> = as Trait<'a>>::Foo; | ++++ error[E0106]: missing lifetime specifier --> $DIR/missing-lifetime-in-alias.rs:24:28 | LL | type C<'a, 'b> = as Trait>::Bar; | ^^^^^ expected named lifetime parameter | note: these named lifetimes are available to use --> $DIR/missing-lifetime-in-alias.rs:24:8 | LL | type C<'a, 'b> = as Trait>::Bar; | ^^ ^^ help: consider using one of the available lifetimes here | LL | type C<'a, 'b> = as Trait<'lifetime>>::Bar; | +++++++++++ error[E0107]: missing generics for associated type `Trait::Bar` --> $DIR/missing-lifetime-in-alias.rs:24:36 | LL | type C<'a, 'b> = as Trait>::Bar; | ^^^ expected 1 lifetime argument | note: associated type defined here, with 1 lifetime parameter: `'b` --> $DIR/missing-lifetime-in-alias.rs:4:10 | LL | type Bar<'b> | ^^^ -- help: add missing lifetime argument | LL | type C<'a, 'b> = as Trait>::Bar<'a>; | ~~~~~~~ error: aborting due to 3 previous errors Some errors have detailed explanations: E0106, E0107. For more information about an error, try `rustc --explain E0106`.