diff options
| author | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-06-05 09:39:34 +0300 |
|---|---|---|
| committer | Vadim Petrochenkov <vadim.petrochenkov@gmail.com> | 2019-06-06 14:04:02 +0300 |
| commit | 5e693531ffa55cfb0cececdf5d7203a6d400e828 (patch) | |
| tree | 762458c4a3823ed70ae5eb01ca214a1d68858b92 /src/libsyntax/parse/token.rs | |
| parent | aa6fba98ae717d6090cdd5d0569114adfc825680 (diff) | |
| download | rust-5e693531ffa55cfb0cececdf5d7203a6d400e828.tar.gz rust-5e693531ffa55cfb0cececdf5d7203a6d400e828.zip | |
syntax: Add some helper methods to `Token`
Diffstat (limited to 'src/libsyntax/parse/token.rs')
| -rw-r--r-- | src/libsyntax/parse/token.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index a06bf9fae7c..559e0524a4b 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -13,7 +13,7 @@ use crate::syntax::parse::parse_stream_from_source_str; use crate::tokenstream::{self, DelimSpan, TokenStream, TokenTree}; use syntax_pos::symbol::{self, Symbol}; -use syntax_pos::{self, Span, FileName}; +use syntax_pos::{self, Span, FileName, DUMMY_SP}; use log::info; use std::fmt; @@ -609,6 +609,22 @@ impl TokenKind { } } +impl Token { + crate fn new(kind: TokenKind, span: Span) -> Self { + Token { kind, span } + } + + /// Some token that will be thrown away later. + crate fn dummy() -> Self { + Token::new(TokenKind::Whitespace, DUMMY_SP) + } + + /// Return this token by value and leave a dummy token in its place. + crate fn take(&mut self) -> Self { + mem::replace(self, Token::dummy()) + } +} + impl PartialEq<TokenKind> for Token { fn eq(&self, rhs: &TokenKind) -> bool { self.kind == *rhs |
