//@ run-pass
#![allow(non_camel_case_types)]
#![allow(dead_code)]
//@ pretty-expanded FIXME #23616
trait thing {
fn foo(&self) -> Option;
}
impl thing for isize {
fn foo(&self) -> Option { None }
}
fn foo_func>(x: B) -> Option { x.foo() }
struct A { a: isize }
pub fn main() {
let _x: Option = foo_func(0);
}