Fix tests
This commit is contained in:
parent
0e53360af6
commit
ce76b1a1f3
2 changed files with 27 additions and 9 deletions
|
@ -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"),
|
||||
}
|
||||
}
|
||||
|
@ -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).
|
||||
|
|
|
@ -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,
|
||||
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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());
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue