Skip to content

Commit

Permalink
Fix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
ricochet1k committed Dec 28, 2017
1 parent 0e53360 commit ce76b1a
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 9 deletions.
24 changes: 17 additions & 7 deletions src/libsyntax/parse/parser.rs
Expand Up @@ -1295,6 +1295,10 @@ impl<'a> Parser<'a> {
fn get_label(&mut self) -> ast::Ident {
match self.token {
token::Lifetime(ref ident) => *ident,
token::Interpolated(ref nt) => match nt.0 {
token::NtLifetime(lifetime) => lifetime.ident,
_ => self.bug("not a lifetime"),
},
_ => self.bug("not a lifetime"),
}
}
Expand Down Expand Up @@ -2032,14 +2036,20 @@ impl<'a> Parser<'a> {

/// Parse single lifetime 'a or panic.
pub fn expect_lifetime(&mut self) -> Lifetime {
match self.token {
token::Lifetime(ident) => {
let ident_span = self.span;
self.bump();
Lifetime { ident: ident, span: ident_span, id: ast::DUMMY_NODE_ID }
let lifetime = match self.token {
token::Lifetime(ident) =>
Lifetime { ident: ident, span: self.span, id: ast::DUMMY_NODE_ID },
token::Interpolated(ref nt) => match nt.0 {
token::NtLifetime(lifetime) =>
lifetime,
//Lifetime { ident: lifetime.ident, span: lifetime.span, id: ast::DUMMY_NODE_ID },
_ => self.span_bug(self.span, &format!("not a lifetime: {:?}", self.token))
}
_ => self.span_bug(self.span, "not a lifetime")
}
_ => self.span_bug(self.span, &format!("not a lifetime: {:?}", self.token))
};

self.bump();
lifetime
}

/// Parse mutability (`mut` or nothing).
Expand Down
12 changes: 10 additions & 2 deletions src/libsyntax/parse/token.rs
Expand Up @@ -251,7 +251,7 @@ impl Token {
Lt | BinOp(Shl) | // associated path
ModSep => true, // global path
Interpolated(ref nt) => match nt.0 {
NtIdent(..) | NtTy(..) | NtPath(..) => true,
NtIdent(..) | NtTy(..) | NtPath(..) | NtLifetime(..) => true,
_ => false,
},
_ => false,
Expand Down Expand Up @@ -318,7 +318,11 @@ impl Token {
pub fn is_lifetime(&self) -> bool {
match *self {
Lifetime(..) => true,
_ => false,
Interpolated(ref nt) => match nt.0 {
NtLifetime(..) => true,
_ => false,
},
_ => false,
}
}

Expand Down Expand Up @@ -486,6 +490,10 @@ impl Token {
let token = Token::Ident(ident.node);
tokens = Some(TokenTree::Token(ident.span, token).into());
}
Nonterminal::NtLifetime(lifetime) => {
let token = Token::Lifetime(lifetime.ident);
tokens = Some(TokenTree::Token(lifetime.span, token).into());
}
Nonterminal::NtTT(ref tt) => {
tokens = Some(tt.clone().into());
}
Expand Down

0 comments on commit ce76b1a

Please sign in to comment.