error: at least one trait must be specified
  --> $DIR/generic_type_does_not_live_long_enough.rs:9:24
   |
LL | type WrongGeneric<T> = impl 'static;
   |                        ^^^^^^^^^^^^

error[E0308]: mismatched types
  --> $DIR/generic_type_does_not_live_long_enough.rs:6:18
   |
LL |     let z: i32 = x;
   |            ---   ^ expected `i32`, found opaque type
   |            |
   |            expected due to this
...
LL | type WrongGeneric<T> = impl 'static;
   |                        ------------ the found opaque type
   |
   = note:     expected type `i32`
           found opaque type `impl Sized`

error[E0310]: the parameter type `T` may not live long enough
  --> $DIR/generic_type_does_not_live_long_enough.rs:12:30
   |
LL | fn wrong_generic<T>(t: T) -> WrongGeneric<T> {
   |                              ^^^^^^^^^^^^^^^
   |
   = help: consider adding an explicit lifetime bound `T: 'static`...

error[E0310]: the parameter type `T` may not live long enough
  --> $DIR/generic_type_does_not_live_long_enough.rs:9:24
   |
LL | type WrongGeneric<T> = impl 'static;
   |                        ^^^^^^^^^^^^
   |
   = help: consider adding an explicit lifetime bound `T: 'static`...
   = note: ...so that the type `T` will meet its required lifetime bounds

error: aborting due to 4 previous errors

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