// run-pass fn main() { struct X; trait Foo<T> { fn foo(&self) where (T, Option<T>): Ord {} fn bar(&self, x: &Option<T>) -> bool where Option<T>: Ord { *x < *x } } impl Foo<X> for () {} let _ = &() as &dyn Foo<X>; }