File tree 3 files changed +9
-17
lines changed
3 files changed +9
-17
lines changed Original file line number Diff line number Diff line change @@ -346,11 +346,13 @@ impl<'a> Cursor<'a> {
346
346
self . span ( )
347
347
}
348
348
349
- /// Skip over the next token without cloning it. Returns ` None` if this
350
- /// cursor points to eof.
349
+ /// Skip over the next token that is not a None-delimited group, without
350
+ /// cloning it. Returns `None` if this cursor points to eof.
351
351
///
352
352
/// This method treats `'lifetimes` as a single token.
353
- pub ( crate ) fn skip ( self ) -> Option < Cursor < ' a > > {
353
+ pub ( crate ) fn skip ( mut self ) -> Option < Cursor < ' a > > {
354
+ self . ignore_none ( ) ;
355
+
354
356
let len = match self . entry ( ) {
355
357
Entry :: End ( _) => return None ,
356
358
Original file line number Diff line number Diff line change @@ -614,11 +614,6 @@ impl<'a> ParseBuffer<'a> {
614
614
/// ```
615
615
pub fn peek2 < T : Peek > ( & self , token : T ) -> bool {
616
616
fn peek2 ( buffer : & ParseBuffer , peek : fn ( Cursor ) -> bool ) -> bool {
617
- if let Some ( group) = buffer. cursor ( ) . group ( Delimiter :: None ) {
618
- if group. 0 . skip ( ) . map_or ( false , peek) {
619
- return true ;
620
- }
621
- }
622
617
buffer. cursor ( ) . skip ( ) . map_or ( false , peek)
623
618
}
624
619
@@ -629,11 +624,6 @@ impl<'a> ParseBuffer<'a> {
629
624
/// Looks at the third-next token in the parse stream.
630
625
pub fn peek3 < T : Peek > ( & self , token : T ) -> bool {
631
626
fn peek3 ( buffer : & ParseBuffer , peek : fn ( Cursor ) -> bool ) -> bool {
632
- if let Some ( group) = buffer. cursor ( ) . group ( Delimiter :: None ) {
633
- if group. 0 . skip ( ) . and_then ( Cursor :: skip) . map_or ( false , peek) {
634
- return true ;
635
- }
636
- }
637
627
buffer
638
628
. cursor ( )
639
629
. skip ( )
Original file line number Diff line number Diff line change @@ -136,8 +136,8 @@ fn test_peek_groups() {
136
136
assert ! ( !input. peek2( Token ![ :: ] ) ) ;
137
137
assert ! ( input. peek2( Token ![ !] ) ) ;
138
138
assert ! ( input. peek2( token:: Group ) ) ;
139
- assert ! ( ! input. peek3( Token ![ =] ) ) ; // FIXME
140
- assert ! ( input. peek3( Token ![ static ] ) ) ; // FIXME
139
+ assert ! ( input. peek3( Token ![ =] ) ) ;
140
+ assert ! ( ! input. peek3( Token ![ static ] ) ) ;
141
141
142
142
let content;
143
143
parenthesized ! ( content in input) ;
@@ -155,8 +155,8 @@ fn test_peek_groups() {
155
155
assert ! ( input. peek( token:: Group ) ) ;
156
156
assert ! ( input. peek( Token ![ !] ) ) ;
157
157
assert ! ( input. peek2( Token ![ =] ) ) ;
158
- assert ! ( ! input. peek3( Token ![ static ] ) ) ; // FIXME
159
- assert ! ( input. peek2( Token ![ static ] ) ) ; // FIXME
158
+ assert ! ( input. peek3( Token ![ static ] ) ) ;
159
+ assert ! ( ! input. peek2( Token ![ static ] ) ) ;
160
160
161
161
let _: Token ! [ !] = input. parse ( ) ?;
162
162
You can’t perform that action at this time.
0 commit comments