diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-07-31 21:25:11 +0200 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-07-31 21:25:11 +0200 |
| commit | 6551285ccaf1562eb73ca1013730165b4d415d8e (patch) | |
| tree | 8018078f67573fc2e48aa06be6f1bb984f97ca69 /src/libsyntax/parse | |
| parent | f3a3290ba36b66ee091f6442fe7f0a22dc57941b (diff) | |
| download | rust-6551285ccaf1562eb73ca1013730165b4d415d8e.tar.gz rust-6551285ccaf1562eb73ca1013730165b4d415d8e.zip | |
Address review comments.
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 8 | ||||
| -rw-r--r-- | src/libsyntax/parse/token.rs | 4 |
2 files changed, 4 insertions, 8 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 2fa6d20430b..ae4925ec340 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -143,6 +143,7 @@ macro_rules! maybe_whole_expr { $p.token.span, ExprKind::Block(block, None), ThinVec::new() )); } + // N.B: `NtIdent(ident)` is normalized to `Ident` in `fn bump`. _ => {}, }; } @@ -2781,12 +2782,7 @@ impl<'a> Parser<'a> { // can't continue an expression after an ident token::Ident(name, is_raw) => token::ident_can_begin_expr(name, t.span, is_raw), token::Literal(..) | token::Pound => true, - token::Interpolated(ref nt) => match **nt { - token::NtIdent(..) | token::NtExpr(..) | - token::NtBlock(..) | token::NtPath(..) => true, - _ => false, - }, - _ => false + _ => t.is_whole_expr(), }; let cannot_continue_expr = self.look_ahead(1, token_cannot_continue_expr); if cannot_continue_expr { diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index d6d13c19f71..73adb5c947c 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -478,10 +478,10 @@ impl Token { /// Would `maybe_whole_expr` in `parser.rs` return `Ok(..)`? /// That is, is this a pre-parsed expression dropped into the token stream - /// (which happens while parsing the result ofmacro expansion)? + /// (which happens while parsing the result of macro expansion)? crate fn is_whole_expr(&self) -> bool { if let Interpolated(ref nt) = self.kind { - if let NtExpr(_) | NtLiteral(_) | NtPath(_) | NtBlock(_) = **nt { + if let NtExpr(_) | NtLiteral(_) | NtPath(_) | NtIdent(..) | NtBlock(_) = **nt { return true; } } |
