Struct rustc_parse::lexer::tokentrees::TokenTreesReader
source · struct TokenTreesReader<'a> {
string_reader: StringReader<'a>,
token: Token,
open_braces: Vec<(Delimiter, Span)>,
unmatched_braces: Vec<UnmatchedBrace>,
matching_delim_spans: Vec<(Delimiter, Span, Span)>,
last_unclosed_found_span: Option<Span>,
last_delim_empty_block_spans: FxHashMap<Delimiter, Span>,
matching_block_spans: Vec<(Span, Span)>,
}
Fields
string_reader: StringReader<'a>
token: Token
open_braces: Vec<(Delimiter, Span)>
Stack of open delimiters and their spans. Used for error message.
unmatched_braces: Vec<UnmatchedBrace>
matching_delim_spans: Vec<(Delimiter, Span, Span)>
The type and spans for all braces
Used only for error recovery when arriving to EOF with mismatched braces.
last_unclosed_found_span: Option<Span>
last_delim_empty_block_spans: FxHashMap<Delimiter, Span>
Collect empty block spans that might have been auto-inserted by editors.
matching_block_spans: Vec<(Span, Span)>
Collect the spans of braces (Open, Close). Used only for detecting if blocks are empty and only braces.
Implementations
sourceimpl<'a> TokenTreesReader<'a>
impl<'a> TokenTreesReader<'a>
fn parse_all_token_trees(&mut self) -> PResult<'a, TokenStream>
fn parse_token_trees_until_close_delim(&mut self) -> TokenStream
fn parse_token_tree(&mut self) -> PResult<'a, TokenTree>
fn bump(&mut self) -> Spacing
Auto Trait Implementations
impl<'a> !RefUnwindSafe for TokenTreesReader<'a>
impl<'a> !Send for TokenTreesReader<'a>
impl<'a> !Sync for TokenTreesReader<'a>
impl<'a> Unpin for TokenTreesReader<'a>
impl<'a> !UnwindSafe for TokenTreesReader<'a>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 216 bytes