Skip to content

Commit 70cabe9

Browse files
committed
fix: do not add commas after ';' in macro args (#6629)
1 parent 0332da0 commit 70cabe9

File tree

3 files changed

+24
-4
lines changed

3 files changed

+24
-4
lines changed

src/lists.rs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -288,10 +288,12 @@ where
288288
let inner_item = item.item.as_ref().or_else(|err| Err(err.clone()))?;
289289
let first = i == 0;
290290
let last = iter.peek().is_none();
291-
let mut separate = match sep_place {
292-
SeparatorPlace::Front => !first,
293-
SeparatorPlace::Back => !last || trailing_separator,
294-
};
291+
let ends_with_semi = inner_item.ends_with(";");
292+
let mut separate = !ends_with_semi
293+
&& match sep_place {
294+
SeparatorPlace::Front => !first,
295+
SeparatorPlace::Back => !last || trailing_separator,
296+
};
295297
let item_sep_len = if separate { sep_len } else { 0 };
296298

297299
// Item string may be multi-line. Its length (used for block comment alignment)

tests/source/issue-6629.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
macro_rules! reproduce {
2+
(type Fail = $ty:ty; arr = $($arr:expr),*) => {
3+
( vec![$($arr),+] )
4+
};
5+
}
6+
7+
fn main() {
8+
reproduce!(type Fail = char; arr = 1);
9+
}

tests/target/issue-6629.rs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
macro_rules! reproduce {
2+
(type Fail = $ty:ty; arr = $($arr:expr),*) => {
3+
( vec![$($arr),+] )
4+
};
5+
}
6+
7+
fn main() {
8+
reproduce!(type Fail = char; arr = 1);
9+
}

0 commit comments

Comments
 (0)