--- /dev/null
+error: at least one trait must be specified
+ --> $DIR/generic_type_does_not_live_long_enough.rs:12:24
+ |
+LL | type WrongGeneric<T> = impl 'static;
+ | ^^^^^^^^^^^^
+
+error[E0308]: mismatched types
+ --> $DIR/generic_type_does_not_live_long_enough.rs:9: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:17: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:12: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`.