// check-pass // rust-lang/rust#55810: types for a binding in a match arm can be // inferred from arms that come later in the match. struct S; impl S { fn method(&self) -> bool { unimplemented!() } } fn get() -> T { unimplemented!() } fn main() { match get() { x if x.method() => {} &S => {} } }