error: concrete type differs from previous defining opaque type use --> $DIR/not_a_defining_use.rs:24:1 | LL | fn four(t: T) -> Two { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(T, i8)`, got `(T, ::Blub)` | note: previous use here --> $DIR/not_a_defining_use.rs:10:1 | LL | fn three(t: T) -> Two { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ error[E0277]: `T` doesn't implement `Debug` --> $DIR/not_a_defining_use.rs:7:18 | LL | type Two = impl Debug; | ^^^^^^^^^^ `T` cannot be formatted using `{:?}` because it doesn't implement `Debug` | = note: required because of the requirements on the impl of `Debug` for `(T, i8)` help: consider restricting type parameter `T` | LL | type Two = impl Debug; | +++++++++++++++++ error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0277`.