// 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); }