--- /dev/null
+error[E0277]: the trait bound `impl Future: Copy` is not satisfied
+ --> $DIR/issue-55872-2.rs:17:14
+ |
+LL | type E = impl std::marker::Copy;
+ | ^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `impl Future`
+
+error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
+ --> $DIR/issue-55872-2.rs:19:28
+ |
+LL | fn foo<T>() -> Self::E {
+ | ____________________________^
+LL | |
+LL | | async {}
+LL | | }
+ | |_____^
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0277`.