@@ -511,7 +511,7 @@ impl<T: Iterator<Item = char>> Scanner<T> {
511
511
512
512
/// Consume a linebreak (either CR, LF or CRLF), if any. Do nothing if there's none.
513
513
#[ inline]
514
- fn skip_line ( & mut self ) {
514
+ fn skip_linebreak ( & mut self ) {
515
515
if self . buffer [ 0 ] == '\r' && self . buffer [ 1 ] == '\n' {
516
516
// While technically not a blank, this does not matter as `self.leading_whitespace`
517
517
// will be reset by `skip_nl`.
@@ -848,7 +848,7 @@ impl<T: Iterator<Item = char>> Scanner<T> {
848
848
'\t' | ' ' => self . skip_blank ( ) ,
849
849
'\n' | '\r' => {
850
850
self . lookahead ( 2 ) ;
851
- self . skip_line ( ) ;
851
+ self . skip_linebreak ( ) ;
852
852
if self . flow_level == 0 {
853
853
self . allow_simple_key ( ) ;
854
854
}
@@ -879,7 +879,7 @@ impl<T: Iterator<Item = char>> Scanner<T> {
879
879
}
880
880
'\n' | '\r' => {
881
881
self . lookahead ( 2 ) ;
882
- self . skip_line ( ) ;
882
+ self . skip_linebreak ( ) ;
883
883
if self . flow_level == 0 {
884
884
self . allow_simple_key ( ) ;
885
885
}
@@ -976,8 +976,6 @@ impl<T: Iterator<Item = char>> Scanner<T> {
976
976
self . disallow_simple_key ( ) ;
977
977
978
978
let tok = self . scan_directive ( ) ?;
979
- self . skip_ws_to_eol ( SkipTabs :: Yes ) ?;
980
-
981
979
self . tokens . push_back ( tok) ;
982
980
983
981
Ok ( ( ) )
@@ -1009,20 +1007,16 @@ impl<T: Iterator<Item = char>> Scanner<T> {
1009
1007
1010
1008
self . skip_ws_to_eol ( SkipTabs :: Yes ) ?;
1011
1009
1012
- if !is_breakz ( self . ch ( ) ) {
1013
- return Err ( ScanError :: new (
1010
+ if is_breakz ( self . ch ( ) ) {
1011
+ self . lookahead ( 2 ) ;
1012
+ self . skip_linebreak ( ) ;
1013
+ Ok ( tok)
1014
+ } else {
1015
+ Err ( ScanError :: new (
1014
1016
start_mark,
1015
1017
"while scanning a directive, did not find expected comment or line break" ,
1016
- ) ) ;
1017
- }
1018
-
1019
- // Eat a line break
1020
- if is_break ( self . ch ( ) ) {
1021
- self . lookahead ( 2 ) ;
1022
- self . skip_line ( ) ;
1018
+ ) )
1023
1019
}
1024
-
1025
- Ok ( tok)
1026
1020
}
1027
1021
1028
1022
fn scan_version_directive_value ( & mut self , mark : & Marker ) -> Result < Token , ScanError > {
@@ -2048,7 +2042,7 @@ impl<T: Iterator<Item = char>> Scanner<T> {
2048
2042
'\\' if !single && is_break ( self . buffer [ 1 ] ) => {
2049
2043
self . lookahead ( 3 ) ;
2050
2044
self . skip_non_blank ( ) ;
2051
- self . skip_line ( ) ;
2045
+ self . skip_linebreak ( ) ;
2052
2046
* leading_blanks = true ;
2053
2047
break ;
2054
2048
}
0 commit comments