#![feature(type_alias_impl_trait)] fn main() {} type Underconstrained = impl Send; // not a defining use, because it doesn't define *all* possible generics fn underconstrained(_: U) -> Underconstrained { //~^ ERROR `U` doesn't implement `Debug` 5u32 } type Underconstrained2 = impl Send; // not a defining use, because it doesn't define *all* possible generics fn underconstrained2(_: U, _: V) -> Underconstrained2 { //~^ ERROR `V` doesn't implement `Debug` 5u32 }