File tree Expand file tree Collapse file tree 3 files changed +46
-5
lines changed Expand file tree Collapse file tree 3 files changed +46
-5
lines changed Original file line number Diff line number Diff line change @@ -412,14 +412,21 @@ pub fn str_lit(lit: &str) -> String {
412
412
loop {
413
413
match chars. next ( ) {
414
414
Some ( ( i, c) ) => {
415
- let em = error ( i) ;
416
415
match c {
417
416
'\\' => {
418
- if chars. peek ( ) . expect ( em. as_slice ( ) ) . val1 ( ) == '\n' {
417
+ let ch = chars. peek ( ) . unwrap_or_else ( || {
418
+ fail ! ( "{}" , error( i) . as_slice( ) )
419
+ } ) . val1 ( ) ;
420
+
421
+ if ch == '\n' {
419
422
eat ( & mut chars) ;
420
- } else if chars . peek ( ) . expect ( em . as_slice ( ) ) . val1 ( ) == '\r' {
423
+ } else if ch == '\r' {
421
424
chars. next ( ) ;
422
- if chars. peek ( ) . expect ( em. as_slice ( ) ) . val1 ( ) != '\n' {
425
+ let ch = chars. peek ( ) . unwrap_or_else ( || {
426
+ fail ! ( "{}" , error( i) . as_slice( ) )
427
+ } ) . val1 ( ) ;
428
+
429
+ if ch != '\n' {
423
430
fail ! ( "lexer accepted bare CR" ) ;
424
431
}
425
432
eat ( & mut chars) ;
@@ -433,7 +440,11 @@ pub fn str_lit(lit: &str) -> String {
433
440
}
434
441
} ,
435
442
'\r' => {
436
- if chars. peek ( ) . expect ( em. as_slice ( ) ) . val1 ( ) != '\n' {
443
+ let ch = chars. peek ( ) . unwrap_or_else ( || {
444
+ fail ! ( "{}" , error( i) . as_slice( ) )
445
+ } ) . val1 ( ) ;
446
+
447
+ if ch != '\n' {
437
448
fail ! ( "lexer accepted bare CR" ) ;
438
449
}
439
450
chars. next ( ) ;
Load Diff Large diffs are not rendered by default.
Load Diff Large diffs are not rendered by default.
You can’t perform that action at this time.
0 commit comments