@@ -813,6 +813,28 @@ public class ParseDiagnosticsGenerator: SyntaxAnyVisitor {
813
813
if shouldSkip ( node) {
814
814
return . skipChildren
815
815
}
816
+ if let singleQuote = node. unexpectedBetweenOpenDelimiterAndOpenQuote? . onlyToken ( where: { $0. tokenKind == . singleQuote } ) {
817
+ let fixIt = FixIt (
818
+ message: ReplaceTokensFixIt ( replaceTokens: [ singleQuote] , replacement: node. openQuote) ,
819
+ changes: [
820
+ . makeMissing( singleQuote, transferTrivia: false ) ,
821
+ . makePresent( node. openQuote, leadingTrivia: singleQuote. leadingTrivia ?? [ ] ) ,
822
+ . makeMissing( node. unexpectedBetweenSegmentsAndCloseQuote, transferTrivia: false ) ,
823
+ . makePresent( node. closeQuote, trailingTrivia: node. unexpectedBetweenSegmentsAndCloseQuote? . trailingTrivia ?? [ ] ) ,
824
+ ]
825
+ )
826
+ addDiagnostic (
827
+ singleQuote,
828
+ . singleQuoteStringLiteral,
829
+ fixIts: [ fixIt] ,
830
+ handledNodes: [
831
+ node. unexpectedBetweenOpenDelimiterAndOpenQuote? . id,
832
+ node. openQuote. id,
833
+ node. unexpectedBetweenSegmentsAndCloseQuote? . id,
834
+ node. closeQuote. id,
835
+ ] . compactMap { $0 }
836
+ )
837
+ }
816
838
for (diagnostic, handledNodes) in MultiLineStringLiteralIndentatinDiagnosticsGenerator . diagnose ( node) {
817
839
addDiagnostic ( diagnostic, handledNodes: handledNodes)
818
840
}
@@ -870,37 +892,6 @@ public class ParseDiagnosticsGenerator: SyntaxAnyVisitor {
870
892
return . visitChildren
871
893
}
872
894
873
- public override func visit( _ node: StringLiteralExprSyntax ) -> SyntaxVisitorContinueKind {
874
- if shouldSkip ( node) {
875
- return . skipChildren
876
- }
877
-
878
- if let singleQuote = node. unexpectedBetweenOpenDelimiterAndOpenQuote? . onlyToken ( where: { $0. tokenKind == . singleQuote } ) {
879
- let fixIt = FixIt (
880
- message: ReplaceTokensFixIt ( replaceTokens: [ singleQuote] , replacement: node. openQuote) ,
881
- changes: [
882
- . makeMissing( singleQuote, transferTrivia: false ) ,
883
- . makePresent( node. openQuote, leadingTrivia: singleQuote. leadingTrivia ?? [ ] ) ,
884
- . makeMissing( node. unexpectedBetweenSegmentsAndCloseQuote, transferTrivia: false ) ,
885
- . makePresent( node. closeQuote, trailingTrivia: node. unexpectedBetweenSegmentsAndCloseQuote? . trailingTrivia ?? [ ] ) ,
886
- ]
887
- )
888
- addDiagnostic (
889
- singleQuote,
890
- . singleQuoteStringLiteral,
891
- fixIts: [ fixIt] ,
892
- handledNodes: [
893
- node. unexpectedBetweenOpenDelimiterAndOpenQuote? . id,
894
- node. openQuote. id,
895
- node. unexpectedBetweenSegmentsAndCloseQuote? . id,
896
- node. closeQuote. id,
897
- ] . compactMap { $0 }
898
- )
899
- }
900
-
901
- return . visitChildren
902
- }
903
-
904
895
public override func visit( _ node: SwitchCaseSyntax ) -> SyntaxVisitorContinueKind {
905
896
if shouldSkip ( node) {
906
897
return . skipChildren
0 commit comments