summaryrefslogtreecommitdiffstats
path: root/tests/run-coverage/closure_bug.rs
blob: 739bc5f0b51c95fe2cf022bfa5b9f118034e95a4 (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
34
35
36
37
38
39
40
41
42
43
44
// Regression test for #115930.
// All of these closures are identical, and should produce identical output in
// the coverage report. However, an unstable sort was causing them to be treated
// inconsistently when preparing coverage spans.

fn main() {
    let truthy = std::env::args().len() == 1;

    let a
        =
        |
        |
        if truthy { true } else { false };

    a();
    if truthy { a(); }

    let b
        =
        |
        |
        if truthy { true } else { false };

    b();
    if truthy { b(); }

    let c
        =
        |
        |
        if truthy { true } else { false };

    c();
    if truthy { c(); }

    let d
        =
        |
        |
        if truthy { true } else { false };

    d();
    if truthy { d(); }
}