about summary refs log tree commit diff
path: root/tests/ui/methods/method-value-without-call.rs
blob: 43bee4864b422604dc42b2bda678cc0852e27eed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//! 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
}