// Test that specializing on the well-formed predicates of the trait and // self-type of an impl is allowed. // check-pass #![feature(min_specialization)] struct OrdOnly(T); trait SpecTrait { fn f(); } impl SpecTrait for T { default fn f() {} } impl SpecTrait<()> for OrdOnly { fn f() {} } impl SpecTrait> for () { fn f() {} } impl SpecTrait<(OrdOnly, OrdOnly)> for &[OrdOnly] { fn f() {} } fn main() {}