| #![allow( |
| unused, |
| clippy::unused_unit, |
| clippy::unnecessary_operation, |
| clippy::no_effect, |
| clippy::single_element_loop |
| )] |
| #![warn(clippy::semicolon_outside_block)] |
| |
| macro_rules! m { |
| (()) => { |
| () |
| }; |
| (0) => {{ |
| 0 |
| };}; |
| (1) => {{ |
| 1; |
| }}; |
| (2) => {{ |
| 2; |
| }}; |
| } |
| |
| fn unit_fn_block() { |
| () |
| } |
| |
| #[rustfmt::skip] |
| fn main() { |
| { unit_fn_block() } |
| unsafe { unit_fn_block() } |
| |
| { |
| unit_fn_block() |
| } |
| |
| { unit_fn_block() }; |
| unsafe { unit_fn_block() }; |
| |
| { unit_fn_block(); } |
| //~^ semicolon_outside_block |
| unsafe { unit_fn_block(); } |
| //~^ semicolon_outside_block |
| |
| { unit_fn_block(); }; |
| unsafe { unit_fn_block(); }; |
| |
| { |
| unit_fn_block(); |
| unit_fn_block() |
| }; |
| { |
| //~^ semicolon_outside_block |
| unit_fn_block(); |
| unit_fn_block(); |
| } |
| { |
| unit_fn_block(); |
| unit_fn_block(); |
| }; |
| |
| { m!(()) }; |
| { m!(()); } |
| //~^ semicolon_outside_block |
| { m!(()); }; |
| m!(0); |
| m!(1); |
| m!(2); |
| |
| for _ in [()] { |
| unit_fn_block(); |
| } |
| for _ in [()] { |
| unit_fn_block() |
| } |
| |
| let _d = || { |
| unit_fn_block(); |
| }; |
| let _d = || { |
| unit_fn_block() |
| }; |
| |
| { unit_fn_block(); }; |
| |
| unsafe { |
| //~^ semicolon_outside_block |
| std::arch::asm!(""); |
| } |
| |
| { |
| //~^ semicolon_outside_block |
| line!(); |
| } |
| |
| unit_fn_block() |
| } |
| |
| fn issue14926() { |
| macro_rules! gen_code { |
| [$l:lifetime: $b:block, $b2: block $(,)?] => { |
| $l: loop { |
| $b |
| break $l; |
| } |
| $l: loop { |
| $b2 |
| break $l; |
| } |
| }; |
| } |
| |
| gen_code! { |
| 'root: |
| { |
| println!("Block1"); |
| }, |
| { |
| println!("Block2"); |
| }, |
| } |
| } |