| // run-pass | |
| // Test that non-static methods can be assigned to local variables as | |
| // function pointers. | |
| trait Foo { | |
| fn foo(&self) -> usize; | |
| } | |
| struct A(usize); | |
| impl A { | |
| fn bar(&self) -> usize { self.0 } | |
| } | |
| impl Foo for A { | |
| fn foo(&self) -> usize { self.bar() } | |
| } | |
| fn main() { | |
| let f = A::bar; | |
| let g = Foo::foo; | |
| let a = A(42); | |
| assert_eq!(f(&a), g(&a)); | |
| } |