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