@@ -521,7 +521,7 @@ impl fmt::Display for Whitespace {
521521 Whitespace :: Space => f. write_str ( " " ) ,
522522 Whitespace :: Newline => f. write_str ( "\n " ) ,
523523 Whitespace :: Tab => f. write_str ( "\t " ) ,
524- Whitespace :: SingleLineComment { prefix, comment } => write ! ( f, "{prefix}{comment}" ) ,
524+ Whitespace :: SingleLineComment { prefix, comment } => writeln ! ( f, "{prefix}{comment}" ) ,
525525 Whitespace :: MultiLineComment ( s) => write ! ( f, "/*{s}*/" ) ,
526526 }
527527 }
@@ -2037,18 +2037,11 @@ impl<'a> Tokenizer<'a> {
20372037
20382038 // Consume characters until newline
20392039 fn tokenize_single_line_comment ( & self , chars : & mut State ) -> String {
2040- let mut comment = peeking_take_while ( chars, |ch| match ch {
2040+ peeking_take_while ( chars, |ch| match ch {
20412041 '\n' => false , // Always stop at \n
20422042 '\r' if dialect_of ! ( self is PostgreSqlDialect ) => false , // Stop at \r for Postgres
20432043 _ => true , // Keep consuming for other characters
2044- } ) ;
2045-
2046- if let Some ( ch) = chars. next ( ) {
2047- assert ! ( ch == '\n' || ch == '\r' ) ;
2048- comment. push ( ch) ;
2049- }
2050-
2051- comment
2044+ } )
20522045 }
20532046
20542047 /// Tokenize an identifier or keyword, after the first char is already consumed.
@@ -3346,8 +3339,9 @@ mod tests {
33463339 Token :: Number ( "0" . to_string( ) , false ) ,
33473340 Token :: Whitespace ( Whitespace :: SingleLineComment {
33483341 prefix: "--" . to_string( ) ,
3349- comment: "this is a comment\n " . to_string( ) ,
3342+ comment: "this is a comment" . to_string( ) ,
33503343 } ) ,
3344+ Token :: Whitespace ( Whitespace :: Newline ) ,
33513345 Token :: Number ( "1" . to_string( ) , false ) ,
33523346 ] ,
33533347 ) ,
@@ -3367,8 +3361,9 @@ mod tests {
33673361 Token :: Number ( "0" . to_string( ) , false ) ,
33683362 Token :: Whitespace ( Whitespace :: SingleLineComment {
33693363 prefix: "--" . to_string( ) ,
3370- comment: "this is a comment\r \n " . to_string( ) ,
3364+ comment: "this is a comment\r " . to_string( ) ,
33713365 } ) ,
3366+ Token :: Whitespace ( Whitespace :: Newline ) ,
33723367 Token :: Number ( "1" . to_string( ) , false ) ,
33733368 ] ,
33743369 ) ,
@@ -3392,8 +3387,9 @@ mod tests {
33923387 Token :: Number ( "1" . to_string( ) , false ) ,
33933388 Token :: Whitespace ( Whitespace :: SingleLineComment {
33943389 prefix: "--" . to_string( ) ,
3395- comment: "\r " . to_string( ) ,
3390+ comment: "" . to_string( ) ,
33963391 } ) ,
3392+ Token :: Whitespace ( Whitespace :: Newline ) , // Postgres treats \r as newline in single-line comments
33973393 Token :: Number ( "0" . to_string( ) , false ) ,
33983394 ] ;
33993395 compare ( expected, tokens) ;
@@ -4220,16 +4216,19 @@ mod tests {
42204216 vec ! [
42214217 Token :: Whitespace ( Whitespace :: SingleLineComment {
42224218 prefix: "--" . to_string( ) ,
4223- comment: "\n " . to_string( ) ,
4219+ comment: "" . to_string( ) ,
42244220 } ) ,
4221+ Token :: Whitespace ( Whitespace :: Newline ) ,
42254222 Token :: Whitespace ( Whitespace :: SingleLineComment {
42264223 prefix: "--" . to_string( ) ,
4227- comment: " Table structure for table...\n " . to_string( ) ,
4224+ comment: " Table structure for table..." . to_string( ) ,
42284225 } ) ,
4226+ Token :: Whitespace ( Whitespace :: Newline ) ,
42294227 Token :: Whitespace ( Whitespace :: SingleLineComment {
42304228 prefix: "--" . to_string( ) ,
4231- comment: "\n " . to_string( ) ,
4229+ comment: "" . to_string( ) ,
42324230 } ) ,
4231+ Token :: Whitespace ( Whitespace :: Newline ) ,
42334232 ] ,
42344233 ) ;
42354234 }
0 commit comments