| //! Test that a struct and function can have the same name | |
| //! | |
| //@ run-pass | |
| #![allow(non_snake_case)] | |
| trait Product { | |
| fn product(&self) -> isize; | |
| } | |
| struct Foo { | |
| x: isize, | |
| y: isize, | |
| } | |
| impl Foo { | |
| pub fn sum(&self) -> isize { | |
| self.x + self.y | |
| } | |
| } | |
| impl Product for Foo { | |
| fn product(&self) -> isize { | |
| self.x * self.y | |
| } | |
| } | |
| fn Foo(x: isize, y: isize) -> Foo { | |
| Foo { x, y } | |
| } | |
| pub fn main() { | |
| let foo = Foo(3, 20); | |
| println!("{} {}", foo.sum(), foo.product()); | |
| } |