1 error[E0277]: the trait bound `S: std::marker::Copy` is not satisfied in `(S, T)`
2 --> $DIR/issue-55872-1.rs:12:5
4 LL | impl<S: Default> Bar for S {
5 | -- help: consider further restricting this bound: `S: std::marker::Copy +`
6 LL | type E = impl Copy;
7 | ^^^^^^^^^^^^^^^^^^^ within `(S, T)`, the trait `std::marker::Copy` is not implemented for `S`
9 = note: required because it appears within the type `(S, T)`
10 = note: the return type of a function must have a statically known size
12 error[E0277]: the trait bound `T: std::marker::Copy` is not satisfied in `(S, T)`
13 --> $DIR/issue-55872-1.rs:12:5
15 LL | type E = impl Copy;
16 | ^^^^^^^^^^^^^^^^^^^ within `(S, T)`, the trait `std::marker::Copy` is not implemented for `T`
18 LL | fn foo<T: Default>() -> Self::E {
19 | -- help: consider further restricting this bound: `T: std::marker::Copy +`
21 = note: required because it appears within the type `(S, T)`
22 = note: the return type of a function must have a statically known size
24 error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
25 --> $DIR/issue-55872-1.rs:16:37
27 LL | fn foo<T: Default>() -> Self::E {
28 | _____________________________________^
30 LL | | (S::default(), T::default())
34 error: aborting due to 3 previous errors
36 For more information about this error, try `rustc --explain E0277`.