1 warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
2 --> $DIR/generic_duplicate_param_use8.rs:3:32
4 LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
5 | ^^^^^^^^^^^^^^^^^^^^^
7 = note: `#[warn(incomplete_features)]` on by default
8 = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
10 error: concrete type differs from previous defining opaque type use
11 --> $DIR/generic_duplicate_param_use8.rs:17:1
13 LL | fn three<T: Debug, U: Debug>(_: T, u: U) -> Two<T, U> {
14 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(T, u32)`, got `(U, u32)`
16 note: previous use here
17 --> $DIR/generic_duplicate_param_use8.rs:13:1
19 LL | fn two<T: Debug, U: Debug>(t: T, _: U) -> Two<T, U> {
20 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
22 error[E0277]: `T` doesn't implement `Debug`
23 --> $DIR/generic_duplicate_param_use8.rs:10:18
25 LL | type Two<T, U> = impl Debug;
26 | ^^^^^^^^^^ `T` cannot be formatted using `{:?}` because it doesn't implement `Debug`
28 = note: required because of the requirements on the impl of `Debug` for `(T, u32)`
29 help: consider restricting type parameter `T`
31 LL | type Two<T: std::fmt::Debug, U> = impl Debug;
34 error: aborting due to 2 previous errors; 1 warning emitted
36 For more information about this error, try `rustc --explain E0277`.