| //! Test taking a method value without parentheses |
| |
| struct Point { |
| x: isize, |
| y: isize, |
| } |
| |
| impl Point { |
| fn new() -> Point { |
| Point { x: 0, y: 0 } |
| } |
| |
| fn get_x(&self) -> isize { |
| self.x |
| } |
| } |
| |
| fn main() { |
| // Test with primitive type method |
| let _f = 10i32.abs; //~ ERROR attempted to take value of method |
| |
| // Test with custom type method |
| let point: Point = Point::new(); |
| let px: isize = point.get_x; //~ ERROR attempted to take value of method `get_x` on type `Point` |
| |
| // Test with method chains - ensure the span is useful |
| let ys = &[1, 2, 3, 4, 5, 6, 7]; |
| let a = ys |
| .iter() |
| .map(|x| x) |
| .filter(|&&x| x == 1) |
| .filter_map; //~ ERROR attempted to take value of method `filter_map` on type |
| } |