fn f(a: T, b: T) -> std::cmp::Ordering { a.cmp(&b) //~ ERROR E0599 } fn g(a: T, b: T) -> std::cmp::Ordering { (&a).cmp(&b) //~ ERROR E0599 } fn h(a: &T, b: T) -> std::cmp::Ordering { a.cmp(&b) //~ ERROR E0599 } trait T {} impl T for X {} fn main() { let x: Box = Box::new(0); x.cmp(&x); //~ ERROR E0599 }