trait Foo { fn foo<'a>(x: &i32, y: &'a i32) -> &'a i32; } impl Foo for () { fn foo<'a>(x: &'a i32, y: &'a i32) -> &'a i32 { //~^ ERROR `impl` item signature doesn't match `trait` item signature if x > y { x } else { y } } } fn main() {}