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