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|}
|