File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed
Sources/SwiftParser/Lexer Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -181,7 +181,7 @@ extension Unicode.Scalar {
181
181
if encodedBytes == 1 || !Unicode. Scalar ( curByte) . isStartOfUTF8Character {
182
182
// Skip until we get the start of another character. This is guaranteed to
183
183
// at least stop at the nul at the end of the buffer.
184
- while let peeked = peek ( ) , Unicode . Scalar ( peeked) . isStartOfUTF8Character {
184
+ while let peeked = peek ( ) , ! Unicode. Scalar ( peeked) . isStartOfUTF8Character {
185
185
_ = advance ( )
186
186
}
187
187
return nil
Original file line number Diff line number Diff line change @@ -886,6 +886,23 @@ public class LexerTests: XCTestCase {
886
886
}
887
887
}
888
888
889
+ func testInvalidUtf8_3() {
890
+ let sourceBytes: [UInt8] = [0xfd, 0x41] // 0x41 == "A"
891
+
892
+ lex(sourceBytes) { lexemes in
893
+ guard lexemes.count == 2 else {
894
+ return XCTFail("Expected 2 lexemes, got \(lexemes.count)")
895
+ }
896
+ AssertRawBytesLexeme(
897
+ lexemes[0],
898
+ kind: .identifier,
899
+ leadingTrivia: [0xfd],
900
+ text: [0x41],
901
+ error: TokenDiagnostic(.invalidUtf8, byteOffset: 0)
902
+ )
903
+ }
904
+ }
905
+
889
906
func testInterpolatedString() {
890
907
AssertLexemes(
891
908
#"""
You can’t perform that action at this time.
0 commit comments