From ad4b02ecc00977538cf7225a8b47cfc76d386221 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 29 Dec 2021 18:37:06 +0300 Subject: [PATCH] add automated semicolon insertion test --- .../hir_def/src/macro_expansion_tests/mbe.rs | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/crates/hir_def/src/macro_expansion_tests/mbe.rs b/crates/hir_def/src/macro_expansion_tests/mbe.rs index 466c85fc5b09..4bef508840dc 100644 --- a/crates/hir_def/src/macro_expansion_tests/mbe.rs +++ b/crates/hir_def/src/macro_expansion_tests/mbe.rs @@ -299,6 +299,34 @@ fn baz() { ) } +#[test] +fn asi() { + // Thanks, Christopher! + // + // https://internals.rust-lang.org/t/understanding-decisions-behind-semicolons/15181/29 + check( + r#" +macro_rules! asi { ($($stmt:stmt)*) => ($($stmt)*); } + +fn main() { + asi! { + let a = 2 + let b = 5 + drop(b-a) + println!("{}", a+b) + } +} +"#, + expect![[r#" +macro_rules! asi { ($($stmt:stmt)*) => ($($stmt)*); } + +fn main() { + let a = 2let b = 5drop(b-a)println!("{}", a+b) +} +"#]], + ) +} + #[test] fn test_match_group_empty_fixed_token() { check(