The Reference says:
A trait implementation must define all non-default associated items declared by the implemented trait, may redefine default associated items defined by the implemented trait, and cannot define any other items.
However, the compiler accepts:
trait Tr {
    type Ty where Self: Sized;
    fn f() where Self: Sized;
}
trait A {}
impl Tr for dyn A {}cc @ehuss rust-lang/rust#135480 #1933 rust-lang/rust#127251