Use Token::uninterpolate in couple more places matching on (Nt)Ident
This commit is contained in:
parent
5d7f67d3b1
commit
9be233cbfe
7 changed files with 28 additions and 38 deletions
|
|
@ -50,7 +50,6 @@ macro_rules! maybe_whole_expr {
|
|||
AttrVec::new(),
|
||||
));
|
||||
}
|
||||
// N.B., `NtIdent(ident)` is normalized to `Ident` in `fn bump`.
|
||||
_ => {}
|
||||
};
|
||||
}
|
||||
|
|
@ -482,7 +481,7 @@ impl<'a> Parser<'a> {
|
|||
}
|
||||
|
||||
fn is_mistaken_not_ident_negation(&self) -> bool {
|
||||
let token_cannot_continue_expr = |t: &Token| match t.kind {
|
||||
let token_cannot_continue_expr = |t: &Token| match t.uninterpolate().kind {
|
||||
// These tokens can start an expression after `!`, but
|
||||
// can't continue an expression after an ident
|
||||
token::Ident(name, is_raw) => token::ident_can_begin_expr(name, t.span, is_raw),
|
||||
|
|
|
|||
|
|
@ -1544,6 +1544,8 @@ impl<'a> Parser<'a> {
|
|||
|
||||
let is_name_required = match self.token.kind {
|
||||
token::DotDotDot => false,
|
||||
// FIXME: Consider using interpolated token for this edition check,
|
||||
// it should match the intent of edition hygiene better.
|
||||
_ => req_name(self.token.uninterpolate().span.edition()),
|
||||
};
|
||||
let (pat, ty) = if is_name_required || self.is_named_param() {
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ impl<'a> Parser<'a> {
|
|||
/// Note that there are more tokens such as `@` for which we know that the `|`
|
||||
/// is an illegal parse. However, the user's intent is less clear in that case.
|
||||
fn recover_trailing_vert(&mut self, lo: Option<Span>) -> bool {
|
||||
let is_end_ahead = self.look_ahead(1, |token| match &token.kind {
|
||||
let is_end_ahead = self.look_ahead(1, |token| match &token.uninterpolate().kind {
|
||||
token::FatArrow // e.g. `a | => 0,`.
|
||||
| token::Ident(kw::If, false) // e.g. `a | if expr`.
|
||||
| token::Eq // e.g. `let a | = 0`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue