@@ -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