//@ edition: 2021 // Nested items/closures should be treated as "holes", so that their spans are // not displayed as executable code in the enclosing function. use core::hint::black_box; fn main() { black_box(()); static MY_STATIC: () = (); black_box(()); const MY_CONST: () = (); // Splitting this across multiple lines makes it easier to see where the // coverage mapping regions begin and end. #[rustfmt::skip] let _closure = | _arg: (), | { black_box(()); } ; black_box(()); fn _unused_fn() {} black_box(()); struct MyStruct { _x: u32, _y: u32, } black_box(()); impl MyStruct { fn _method(&self) {} } black_box(()); trait MyTrait {} black_box(()); impl MyTrait for MyStruct {} black_box(()); macro_rules! _my_macro { () => {}; } black_box(()); #[rustfmt::skip] let _const = const { 7 + 4 } ; black_box(()); #[rustfmt::skip] let _async = async { 7 + 4 } ; black_box(()); // This tests the edge case of a const block nested inside an "anon const", // such as the length of an array literal. Handling this case requires // `nested_filter::OnlyBodies` or equivalent. #[rustfmt::skip] let _const_block_inside_anon_const = [ 0 ; 7 + const { 3 } ] ; black_box(()); }