Skip to content

Commit f8109f8

Browse files
committed
Put spaces around braces
1 parent 96a83b5 commit f8109f8

File tree

3 files changed

+80
-8
lines changed

3 files changed

+80
-8
lines changed

src/macros.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ fn delim_token_to_str(
496496
let (lhs, rhs) = match *delim_token {
497497
DelimToken::Paren => ("(", ")"),
498498
DelimToken::Bracket => ("[", "]"),
499-
DelimToken::Brace => ("{", "}"),
499+
DelimToken::Brace => ("{ ", " }"),
500500
DelimToken::NoDelim => ("", ""),
501501
};
502502
if use_multiple_lines {
@@ -515,6 +515,13 @@ fn delim_token_to_str(
515515
}
516516

517517
impl MacroArgKind {
518+
fn starts_with_brace(&self) -> bool {
519+
match *self {
520+
MacroArgKind::Repeat(DelimToken::Brace, _, _, _)
521+
| MacroArgKind::Delimited(DelimToken::Brace, _) => true,
522+
_ => false,
523+
}
524+
}
518525
fn starts_with_dollar(&self) -> bool {
519526
match *self {
520527
MacroArgKind::Repeat(..) | MacroArgKind::MetaVariable(..) => true,
@@ -855,12 +862,7 @@ fn wrap_macro_args_inner(
855862
let indent_str = shape.indent.to_string_with_newline(context.config);
856863

857864
while let Some(ref arg) = iter.next() {
858-
let nested_shape = if use_multiple_lines {
859-
shape.with_max_width(context.config)
860-
} else {
861-
shape
862-
};
863-
result.push_str(&arg.rewrite(context, nested_shape, use_multiple_lines)?);
865+
result.push_str(&arg.rewrite(context, shape, use_multiple_lines)?);
864866

865867
if use_multiple_lines
866868
&& (arg.kind.ends_with_space() || iter.peek().map_or(false, |a| a.kind.has_meta_var()))
@@ -872,7 +874,8 @@ fn wrap_macro_args_inner(
872874
} else if let Some(ref next_arg) = iter.peek() {
873875
let space_before_dollar =
874876
!arg.kind.ends_with_space() && next_arg.kind.starts_with_dollar();
875-
if space_before_dollar {
877+
let space_before_brace = next_arg.kind.starts_with_brace();
878+
if space_before_dollar || space_before_brace {
876879
result.push(' ');
877880
}
878881
}

tests/source/macro_rules.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,26 @@ macro_rules! m {
1919
( $ x : tt foo bar foo bar foo bar $ y : tt => x*y*z $ z : tt , $ ( $a: tt ) , * ) => {};
2020
}
2121

22+
23+
macro_rules! impl_a_method {
24+
($n:ident ( $a:ident : $ta:ty ) -> $ret:ty { $body:expr }) => {
25+
fn $n($a:$ta) -> $ret { $body }
26+
macro_rules! $n { ($va:expr) => { $n($va) } }
27+
};
28+
($n:ident ( $a:ident : $ta:ty, $b:ident : $tb:ty ) -> $ret:ty { $body:expr }) => {
29+
fn $n($a:$ta, $b:$tb) -> $ret { $body }
30+
macro_rules! $n { ($va:expr, $vb:expr) => { $n($va, $vb) } }
31+
};
32+
($n:ident ( $a:ident : $ta:ty, $b:ident : $tb:ty, $c:ident : $tc:ty ) -> $ret:ty { $body:expr }) => {
33+
fn $n($a:$ta, $b:$tb, $c:$tc) -> $ret { $body }
34+
macro_rules! $n { ($va:expr, $vb:expr, $vc:expr) => { $n($va, $vb, $vc) } }
35+
};
36+
($n:ident ( $a:ident : $ta:ty, $b:ident : $tb:ty, $c:ident : $tc:ty, $d:ident : $td:ty ) -> $ret:ty { $body:expr }) => {
37+
fn $n($a:$ta, $b:$tb, $c:$tc, $d:$td) -> $ret { $body }
38+
macro_rules! $n { ($va:expr, $vb:expr, $vc:expr, $vd:expr) => { $n($va, $vb, $vc, $vd) } }
39+
};
40+
}
41+
2242
macro_rules! m {
2343
// a
2444
($expr :expr, $( $func : ident ) * ) => {

tests/target/macro_rules.rs

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,55 @@ macro_rules! m {
2727
($x: tt foo bar foo bar foo bar $y: tt => x * y * z $z: tt, $($a: tt),*) => {};
2828
}
2929

30+
macro_rules! impl_a_method {
31+
($n: ident($a: ident: $ta: ty) -> $ret: ty { $body: expr }) => {
32+
fn $n($a: $ta) -> $ret {
33+
$body
34+
}
35+
macro_rules! $n {
36+
($va: expr) => {
37+
$n($va)
38+
};
39+
}
40+
};
41+
($n: ident($a: ident: $ta: ty, $b: ident: $tb: ty) -> $ret: ty { $body: expr }) => {
42+
fn $n($a: $ta, $b: $tb) -> $ret {
43+
$body
44+
}
45+
macro_rules! $n {
46+
($va: expr,$vb: expr) => {
47+
$n($va, $vb)
48+
};
49+
}
50+
};
51+
(
52+
$n: ident($a: ident: $ta: ty, $b: ident: $tb: ty, $c: ident: $tc: ty) ->
53+
$ret: ty { $body: expr }
54+
) => {
55+
fn $n($a: $ta, $b: $tb, $c: $tc) -> $ret {
56+
$body
57+
}
58+
macro_rules! $n {
59+
($va: expr,$vb: expr,$vc: expr) => {
60+
$n($va, $vb, $vc)
61+
};
62+
}
63+
};
64+
(
65+
$n: ident($a: ident: $ta: ty, $b: ident: $tb: ty, $c: ident: $tc: ty, $d: ident: $td: ty) ->
66+
$ret: ty { $body: expr }
67+
) => {
68+
fn $n($a: $ta, $b: $tb, $c: $tc, $d: $td) -> $ret {
69+
$body
70+
}
71+
macro_rules! $n {
72+
($va: expr,$vb: expr,$vc: expr,$vd: expr) => {
73+
$n($va, $vb, $vc, $vd)
74+
};
75+
}
76+
};
77+
}
78+
3079
macro_rules! m {
3180
// a
3281
($expr: expr, $($func: ident)*) => {{

0 commit comments

Comments
 (0)