// Test that specializing on opaque types is allowed //@ check-pass #![feature(min_specialization, type_alias_impl_trait)] trait SpecTrait { fn f(); } impl SpecTrait for () { default fn f() {} } type Opaque = impl Tuple; trait Tuple {} impl Tuple for () {} impl SpecTrait for () { fn f() {} } impl SpecTrait for () { fn f() {} } fn foo() -> Opaque {} fn main() {}