rust/tests/ui/lifetimes/missing-lifetime-in-alias.s...

67 lines
2.1 KiB
Plaintext

error[E0106]: missing lifetime specifier
--> $DIR/missing-lifetime-in-alias.rs:23:24
|
LL | type B<'a> = <A<'a> as Trait>::Foo;
| ^^^^^ expected named lifetime parameter
|
help: consider using the `'a` lifetime
|
LL | type B<'a> = <A<'a> as Trait<'a>>::Foo;
| ++++
error[E0106]: missing lifetime specifier
--> $DIR/missing-lifetime-in-alias.rs:27:28
|
LL | type C<'a, 'b> = <A<'a> as Trait>::Bar;
| ^^^^^ expected named lifetime parameter
|
note: these named lifetimes are available to use
--> $DIR/missing-lifetime-in-alias.rs:27:8
|
LL | type C<'a, 'b> = <A<'a> as Trait>::Bar;
| ^^ ^^
help: consider using one of the available lifetimes here
|
LL | type C<'a, 'b> = <A<'a> as Trait<'lifetime>>::Bar;
| +++++++++++
error[E0477]: the type `Impl<'a>` does not fulfill the required lifetime
--> $DIR/missing-lifetime-in-alias.rs:16:20
|
LL | type Bar<'b>
| ------------ definition of `Bar` from trait
...
LL | type Bar<'b> = &'b ();
| ^^^^^^
|
note: type must outlive the lifetime `'b` as defined here
--> $DIR/missing-lifetime-in-alias.rs:16:14
|
LL | type Bar<'b> = &'b ();
| ^^
help: copy the `where` clause predicates from the trait
|
LL | type Bar<'b> = &'b () where Self: 'b;
| ++++++++++++++
error[E0107]: missing generics for associated type `Trait::Bar`
--> $DIR/missing-lifetime-in-alias.rs:27:36
|
LL | type C<'a, 'b> = <A<'a> 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> = <A<'a> as Trait>::Bar<'a>;
| ++++
error: aborting due to 4 previous errors
Some errors have detailed explanations: E0106, E0107, E0477.
For more information about an error, try `rustc --explain E0106`.