about summary refs log tree commit diff
path: root/tests/coverage/holes.coverage
blob: 1ea60491800d060f8dfe6e54dce07084a64846b8 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
   LL|       |//@ edition: 2021
   LL|       |
   LL|       |// Nested items/closures should be treated as "holes", so that their spans are
   LL|       |// not displayed as executable code in the enclosing function.
   LL|       |
   LL|       |use core::hint::black_box;
   LL|       |
   LL|      1|fn main() {
   LL|      1|    black_box(());
   LL|       |
   LL|       |    static MY_STATIC: () = ();
   LL|       |
   LL|      1|    black_box(());
   LL|       |
   LL|       |    const MY_CONST: () = ();
   LL|       |
   LL|       |    // Splitting this across multiple lines makes it easier to see where the
   LL|       |    // coverage mapping regions begin and end.
   LL|       |    #[rustfmt::skip]
   LL|      1|    let _closure =
   LL|       |        |
   LL|       |            _arg: (),
   LL|       |        |
   LL|      0|        {
   LL|      0|            black_box(());
   LL|      0|        }
   LL|       |        ;
   LL|       |
   LL|      1|    black_box(());
   LL|       |
   LL|      0|    fn _unused_fn() {}
   LL|       |
   LL|      1|    black_box(());
   LL|       |
   LL|       |    struct MyStruct {
   LL|       |        _x: u32,
   LL|       |        _y: u32,
   LL|       |    }
   LL|       |
   LL|      1|    black_box(());
   LL|       |
   LL|       |    impl MyStruct {
   LL|      0|        fn _method(&self) {}
   LL|       |    }
   LL|       |
   LL|      1|    black_box(());
   LL|       |
   LL|       |    trait MyTrait {}
   LL|       |
   LL|      1|    black_box(());
   LL|       |
   LL|       |    impl MyTrait for MyStruct {}
   LL|       |
   LL|      1|    black_box(());
   LL|       |
   LL|       |    macro_rules! _my_macro {
   LL|       |        () => {};
   LL|       |    }
   LL|       |
   LL|      1|    black_box(());
   LL|       |
   LL|       |    #[rustfmt::skip]
   LL|      1|    let _const =
   LL|       |        const
   LL|       |        {
   LL|       |            7 + 4
   LL|       |        }
   LL|       |        ;
   LL|       |
   LL|      1|    black_box(());
   LL|       |
   LL|       |    #[rustfmt::skip]
   LL|      1|    let _async =
   LL|       |        async
   LL|      0|        {
   LL|      0|            7 + 4
   LL|      0|        }
   LL|       |        ;
   LL|       |
   LL|      1|    black_box(());
   LL|       |
   LL|       |    // This tests the edge case of a const block nested inside an "anon const",
   LL|       |    // such as the length of an array literal. Handling this case requires
   LL|       |    // `nested_filter::OnlyBodies` or equivalent.
   LL|       |    #[rustfmt::skip]
   LL|      1|    let _const_block_inside_anon_const =
   LL|       |        [
   LL|       |            0
   LL|       |            ;
   LL|       |            7
   LL|       |            +
   LL|       |            const
   LL|       |            {
   LL|       |                3
   LL|       |            }
   LL|       |        ]
   LL|       |        ;
   LL|       |
   LL|      1|    black_box(());
   LL|      1|}