File tree Expand file tree Collapse file tree 2 files changed +24
-8
lines changed Expand file tree Collapse file tree 2 files changed +24
-8
lines changed Original file line number Diff line number Diff line change @@ -74,21 +74,18 @@ func (s *Scanner) next() rune {
74
74
return eof
75
75
}
76
76
77
- if ch == utf8 .RuneError && size == 1 {
78
- s .srcPos .Column ++
79
- s .srcPos .Offset += size
80
- s .lastCharLen = size
81
- s .err ("illegal UTF-8 encoding" )
82
- return ch
83
- }
84
-
85
77
// remember last position
86
78
s .prevPos = s .srcPos
87
79
88
80
s .srcPos .Column ++
89
81
s .lastCharLen = size
90
82
s .srcPos .Offset += size
91
83
84
+ if ch == utf8 .RuneError && size == 1 {
85
+ s .err ("illegal UTF-8 encoding" )
86
+ return ch
87
+ }
88
+
92
89
if ch == '\n' {
93
90
s .srcPos .Line ++
94
91
s .lastLineLen = s .srcPos .Column
Original file line number Diff line number Diff line change @@ -592,3 +592,22 @@ func countNewlines(s string) int {
592
592
}
593
593
return n
594
594
}
595
+
596
+ func TestScanHeredocRegexpCompile (t * testing.T ) {
597
+ cases := []string {
598
+ "0\xe1 \n <<ȸ\n hello\n world\n ȸ" ,
599
+ }
600
+
601
+ for _ , c := range cases {
602
+ s := New ([]byte (c ))
603
+ fmt .Printf ("START %q\n " , c )
604
+
605
+ for {
606
+ tok := s .Scan ()
607
+ if tok .Type == token .EOF {
608
+ break
609
+ }
610
+ t .Logf ("s.Scan() = %s" , tok )
611
+ }
612
+ }
613
+ }
You can’t perform that action at this time.
0 commit comments