Skip to content

Commit e9dc95c

Browse files
committed
remove peek_token from StringReader
1 parent 830ff4a commit e9dc95c

File tree

2 files changed

+8
-18
lines changed

2 files changed

+8
-18
lines changed

src/libsyntax/parse/lexer/comments.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ fn read_block_comment(rdr: &mut StringReader<'_>,
268268
while level > 0 {
269269
debug!("=== block comment level {}", level);
270270
if rdr.is_eof() {
271-
rdr.fatal("unterminated block comment").raise();
271+
rdr.fatal_span_(rdr.pos, rdr.pos, "unterminated block comment").raise();
272272
}
273273
if rdr.ch_is('\n') {
274274
trim_whitespace_prefix_and_push_line(&mut lines, curr_line, col);

src/libsyntax/parse/lexer/mod.rs

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ pub struct StringReader<'a> {
3939
/// Stop reading src at this index.
4040
crate end_src_index: usize,
4141
// cached:
42-
peek_token: Token,
4342
peek_span_src_raw: Span,
4443
fatal_errs: Vec<DiagnosticBuilder<'a>>,
4544
// cache a direct reference to the source text, so that we don't have to
@@ -78,9 +77,7 @@ impl<'a> StringReader<'a> {
7877
/// Returns the next token. EFFECT: advances the string_reader.
7978
pub fn try_next_token(&mut self) -> Result<Token, ()> {
8079
assert!(self.fatal_errs.is_empty());
81-
let ret_val = self.peek_token.take();
82-
self.advance_token()?;
83-
Ok(ret_val)
80+
self.advance_token()
8481
}
8582

8683
fn try_real_token(&mut self) -> Result<Token, ()> {
@@ -120,10 +117,6 @@ impl<'a> StringReader<'a> {
120117
FatalError.raise();
121118
}
122119

123-
fn fatal(&self, m: &str) -> FatalError {
124-
self.fatal_span(self.peek_token.span, m)
125-
}
126-
127120
crate fn emit_fatal_errors(&mut self) {
128121
for err in &mut self.fatal_errs {
129122
err.emit();
@@ -169,7 +162,6 @@ impl<'a> StringReader<'a> {
169162
ch: Some('\n'),
170163
source_file,
171164
end_src_index: src.len(),
172-
peek_token: Token::dummy(),
173165
peek_span_src_raw: syntax_pos::DUMMY_SP,
174166
src,
175167
fatal_errs: Vec::new(),
@@ -267,11 +259,11 @@ impl<'a> StringReader<'a> {
267259

268260
/// Advance peek_token to refer to the next token, and
269261
/// possibly update the interner.
270-
fn advance_token(&mut self) -> Result<(), ()> {
262+
fn advance_token(&mut self) -> Result<Token, ()> {
271263
match self.scan_whitespace_or_comment() {
272264
Some(comment) => {
273265
self.peek_span_src_raw = comment.span;
274-
self.peek_token = comment;
266+
Ok(comment)
275267
}
276268
None => {
277269
let (kind, start_pos, end_pos) = if self.is_eof() {
@@ -281,12 +273,10 @@ impl<'a> StringReader<'a> {
281273
(self.next_token_inner()?, start_pos, self.pos)
282274
};
283275
let (real, raw) = self.mk_sp_and_raw(start_pos, end_pos);
284-
self.peek_token = Token::new(kind, real);
285276
self.peek_span_src_raw = raw;
277+
Ok(Token::new(kind, real))
286278
}
287279
}
288-
289-
Ok(())
290280
}
291281

292282
#[inline]
@@ -1484,17 +1474,17 @@ mod tests {
14841474
assert_eq!(tok1.kind, tok2.kind);
14851475
assert_eq!(tok1.span, tok2.span);
14861476
assert_eq!(string_reader.next_token(), token::Whitespace);
1487-
// the 'main' id is already read:
1488-
assert_eq!(string_reader.pos.clone(), BytePos(28));
14891477
// read another token:
14901478
let tok3 = string_reader.next_token();
1479+
assert_eq!(string_reader.pos.clone(), BytePos(28));
14911480
let tok4 = Token::new(
14921481
mk_ident("main"),
14931482
Span::new(BytePos(24), BytePos(28), NO_EXPANSION),
14941483
);
14951484
assert_eq!(tok3.kind, tok4.kind);
14961485
assert_eq!(tok3.span, tok4.span);
1497-
// the lparen is already read:
1486+
1487+
assert_eq!(string_reader.next_token(), token::OpenDelim(token::Paren));
14981488
assert_eq!(string_reader.pos.clone(), BytePos(29))
14991489
})
15001490
}

0 commit comments

Comments
 (0)