diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-08-11 20:46:34 +0200 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-08-11 20:46:34 +0200 |
| commit | bcfcbfc923aa821332d8ae8ce977f311764768b1 (patch) | |
| tree | 6bad9725997dd80449af3321fb28bb73ad1255cd /src/libsyntax/parse/parser | |
| parent | 385d07f359cd4d4237cac6ae030d07792750a506 (diff) | |
| download | rust-bcfcbfc923aa821332d8ae8ce977f311764768b1.tar.gz rust-bcfcbfc923aa821332d8ae8ce977f311764768b1.zip | |
parser: {check,expect}_lifetime into ty.rs
Diffstat (limited to 'src/libsyntax/parse/parser')
| -rw-r--r-- | src/libsyntax/parse/parser/ty.rs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/libsyntax/parse/parser/ty.rs b/src/libsyntax/parse/parser/ty.rs index e01ce9a48c0..1eb3d441e69 100644 --- a/src/libsyntax/parse/parser/ty.rs +++ b/src/libsyntax/parse/parser/ty.rs @@ -1,8 +1,8 @@ -use super::{Parser, PResult, PathStyle, PrevTokenKind}; +use super::{Parser, PResult, PathStyle, PrevTokenKind, TokenType}; use crate::{maybe_whole, maybe_recover_from_interpolated_ty_qpath}; use crate::ptr::P; -use crate::ast::{self, Ty, TyKind, MutTy, BareFnTy, FunctionRetTy, GenericParam}; +use crate::ast::{self, Ty, TyKind, MutTy, BareFnTy, FunctionRetTy, GenericParam, Lifetime, Ident}; use crate::ast::{TraitBoundModifier, TraitObjectSyntax, GenericBound, GenericBounds, PolyTraitRef}; use crate::ast::{Mutability, AnonConst, FnDecl, Mac_}; use crate::parse::token::{self, Token}; @@ -442,4 +442,20 @@ impl<'a> Parser<'a> { Ok(Vec::new()) } } + + crate fn check_lifetime(&mut self) -> bool { + self.expected_tokens.push(TokenType::Lifetime); + self.token.is_lifetime() + } + + /// Parses a single lifetime `'a` or panics. + crate fn expect_lifetime(&mut self) -> Lifetime { + if let Some(ident) = self.token.lifetime() { + let span = self.token.span; + self.bump(); + Lifetime { ident: Ident::new(ident.name, span), id: ast::DUMMY_NODE_ID } + } else { + self.span_bug(self.token.span, "not a lifetime") + } + } } |
