1 error: concrete type differs from previous defining opaque type use
2 --> $DIR/generic_duplicate_param_use6.rs:18:1
4 LL | fn three<T: Copy + Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
5 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(T, T)`, got `(U, T)`
7 note: previous use here
8 --> $DIR/generic_duplicate_param_use6.rs:14:1
10 LL | fn two<T: Copy + Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
11 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
13 error[E0277]: `T` doesn't implement `Debug`
14 --> $DIR/generic_duplicate_param_use6.rs:11:18
16 LL | type Two<T, U> = impl Debug;
17 | ^^^^^^^^^^ `T` cannot be formatted using `{:?}` because it doesn't implement `Debug`
19 = note: required because of the requirements on the impl of `Debug` for `(T, T)`
20 help: consider restricting type parameter `T`
22 LL | type Two<T: std::fmt::Debug, U> = impl Debug;
25 error: aborting due to 2 previous errors
27 For more information about this error, try `rustc --explain E0277`.