File tree Expand file tree Collapse file tree 1 file changed +12
-9
lines changed
Sources/SwiftParser/Lexer Expand file tree Collapse file tree 1 file changed +12
-9
lines changed Original file line number Diff line number Diff line change @@ -814,11 +814,19 @@ extension Lexer.Cursor {
814814 openingRawStringDelimiters: Int ?
815815 ) -> Bool {
816816 precondition ( self . previous == #"""# )
817+
818+ var delimEnd = self
819+ guard delimEnd. advance ( matching: #"""# ) ,
820+ case let delimLast = delimEnd,
821+ delimEnd. advance ( matching: #"""# )
822+ else {
823+ return false
824+ }
825+
817826 // Test for single-line string literals that resemble multiline delimiter.
818- var sameLineCloseCheck = self
819- _ = sameLineCloseCheck. advance ( )
820827 if let openingRawStringDelimiters, openingRawStringDelimiters != 0 {
821828 // Scan if the current line contains `"` followed by `openingRawStringDelimiters` `#` characters
829+ var sameLineCloseCheck = delimLast
822830 while sameLineCloseCheck. is ( notAt: " \r " , " \n " ) {
823831 if sameLineCloseCheck. advance ( matching: #"""# ) {
824832 if sameLineCloseCheck. advanceIfStringDelimiter ( delimiterLength: openingRawStringDelimiters) {
@@ -831,13 +839,8 @@ extension Lexer.Cursor {
831839 }
832840 }
833841
834- var tmp = self
835- if tmp. advance ( matching: #"""# ) && tmp. advance ( matching: #"""# ) {
836- self = tmp
837- return true
838- }
839-
840- return false
842+ self = delimEnd
843+ return true
841844 }
842845
843846 /// Read a single UTF-8 scalar, which may span multiple bytes.
You can’t perform that action at this time.
0 commit comments