Skip to content

Commit 6e21c91

Browse files
committed
Improve macro token spacing after $crate
1 parent e05fac9 commit 6e21c91

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/mac.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,7 @@ impl Printer {
130130
enum State {
131131
Start,
132132
Dollar,
133+
DollarCrate,
133134
DollarIdent,
134135
DollarIdentColon,
135136
DollarParen,
@@ -152,7 +153,9 @@ impl Printer {
152153
for tt in stream {
153154
let token = Token::from(tt);
154155
let (needs_space, next_state) = match (&state, &token) {
155-
(Dollar, Token::Ident(_)) => (false, if matcher { DollarIdent } else { Other }),
156+
(Dollar, Token::Ident(_)) if matcher => (false, DollarIdent),
157+
(Dollar, Token::Ident(ident)) if ident == "crate" => (false, DollarCrate),
158+
(Dollar, Token::Ident(_)) => (false, Other),
156159
(DollarIdent, Token::Punct(':', Spacing::Alone)) => (false, DollarIdentColon),
157160
(DollarIdentColon, Token::Ident(_)) => (false, Other),
158161
(DollarParen, Token::Punct('+' | '*' | '?', Spacing::Alone)) => (false, Other),
@@ -180,7 +183,9 @@ impl Printer {
180183
(_, Token::Literal(_)) => (state != Dot, Ident),
181184
(_, Token::Punct(',' | ';', _)) => (false, Other),
182185
(_, Token::Punct('.', _)) if !matcher => (state != Ident && state != Delim, Dot),
183-
(_, Token::Punct(':', Spacing::Joint)) => (state != Ident, Colon),
186+
(_, Token::Punct(':', Spacing::Joint)) => {
187+
(state != Ident && state != DollarCrate, Colon)
188+
}
184189
(_, Token::Punct('$', _)) => (true, Dollar),
185190
(_, Token::Punct('#', _)) => (true, Pound),
186191
(_, _) => (true, Other),

0 commit comments

Comments
 (0)