Skip to content

Commit 480f06c

Browse files
authored
Merge pull request #1694 from kimdv/kimdv/1609-space-is-not-balanced-around-=-for-fix-its
Balance spacing around `=`
2 parents 2782139 + 43927e8 commit 480f06c

File tree

3 files changed

+24
-23
lines changed

3 files changed

+24
-23
lines changed

Sources/SwiftParserDiagnostics/ParseDiagnosticsGenerator.swift

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,9 @@ public class ParseDiagnosticsGenerator: SyntaxAnyVisitor {
169169
changes.append(
170170
FixIt.MultiNodeChange.makePresent(
171171
correctToken,
172-
leadingTrivia: misplacedToken.leadingTrivia,
173-
trailingTrivia: misplacedToken.trailingTrivia
172+
// Transfer any existing trivia. If there is no trivia in the misplaced token, pass `nil` so that `makePresent` can add required trivia, if necessary.
173+
leadingTrivia: misplacedToken.leadingTrivia.isEmpty ? nil : misplacedToken.leadingTrivia,
174+
trailingTrivia: misplacedToken.trailingTrivia.isEmpty ? nil : misplacedToken.trailingTrivia
174175
)
175176
)
176177
} else {
@@ -978,7 +979,7 @@ public class ParseDiagnosticsGenerator: SyntaxAnyVisitor {
978979
fixIts: [
979980
FixIt(
980981
message: ReplaceTokensFixIt(replaceTokens: [.binaryOperator("==")], replacements: [node.equal]),
981-
changes: [.makeMissing(unexpected), .makePresent(node.equal, leadingTrivia: [])]
982+
changes: [.makeMissing(unexpected), .makePresent(node.equal)]
982983
)
983984
],
984985
handledNodes: [unexpected.id, node.equal.id]
@@ -1333,7 +1334,7 @@ public class ParseDiagnosticsGenerator: SyntaxAnyVisitor {
13331334
node.statements,
13341335
.allStatmentsInSwitchMustBeCoveredByCase,
13351336
fixIts: [
1336-
FixIt(message: InsertTokenFixIt(missingNodes: [Syntax(node.label)]), changes: .makePresent(node.label, leadingTrivia: .newline))
1337+
FixIt(message: InsertTokenFixIt(missingNodes: [Syntax(node.label)]), changes: .makePresent(node.label))
13371338
],
13381339
handledNodes: [node.label.id]
13391340
)

Tests/SwiftParserTest/translated/DiagnoseInitializerAsTypedPatternTests.swift

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
2424
diagnostics: [
2525
DiagnosticSpec(message: "unexpected initializer in pattern; did you mean to use '='?", fixIts: ["replace ':' with '='"])
2626
],
27-
fixedSource: "let a=[X]()"
27+
fixedSource: "let a = [X]()"
2828
)
2929
}
3030

@@ -36,7 +36,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
3636
diagnostics: [
3737
DiagnosticSpec(message: "unexpected initializer in pattern; did you mean to use '='?", fixIts: ["replace ':' with '='"])
3838
],
39-
fixedSource: "let b= [X]()"
39+
fixedSource: "let b = [X]()"
4040
)
4141
}
4242

@@ -48,7 +48,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
4848
diagnostics: [
4949
DiagnosticSpec(message: "unexpected initializer in pattern; did you mean to use '='?", fixIts: ["replace ':' with '='"])
5050
],
51-
fixedSource: "let c =[X]()"
51+
fixedSource: "let c = [X]()"
5252
)
5353
}
5454

@@ -72,7 +72,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
7272
diagnostics: [
7373
DiagnosticSpec(message: "unexpected initializer in pattern; did you mean to use '='?", fixIts: ["replace ':' with '='"])
7474
],
75-
fixedSource: "let e= X(), ee: Int"
75+
fixedSource: "let e = X(), ee: Int"
7676
)
7777
}
7878

@@ -84,7 +84,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
8484
diagnostics: [
8585
DiagnosticSpec(message: "unexpected initializer in pattern; did you mean to use '='?", fixIts: ["replace ':' with '='"])
8686
],
87-
fixedSource: "let f=/*comment*/[X]()"
87+
fixedSource: "let f =/*comment*/[X]()"
8888
)
8989
}
9090

@@ -96,7 +96,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
9696
diagnostics: [
9797
DiagnosticSpec(message: "unexpected initializer in pattern; did you mean to use '='?", fixIts: ["replace ':' with '='"])
9898
],
99-
fixedSource: "let f/*comment*/=[X]()"
99+
fixedSource: "let f/*comment*/ = [X]()"
100100
)
101101
}
102102

@@ -129,7 +129,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
129129
DiagnosticSpec(message: "unexpected initializer in pattern; did you mean to use '='?", fixIts: ["replace ':' with '='"])
130130
],
131131
fixedSource: """
132-
let g= X(x)
132+
let g = X(x)
133133
"""
134134
)
135135
}
@@ -143,7 +143,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
143143
DiagnosticSpec(message: "unexpected initializer in pattern; did you mean to use '='?", fixIts: ["replace ':' with '='"])
144144
],
145145
fixedSource: """
146-
let h= X(x, y)
146+
let h = X(x, y)
147147
"""
148148
)
149149
}
@@ -157,7 +157,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
157157
DiagnosticSpec(message: "unexpected initializer in pattern; did you mean to use '='?", fixIts: ["replace ':' with '='"])
158158
],
159159
fixedSource: """
160-
let i= X() { foo() }
160+
let i = X() { foo() }
161161
"""
162162
)
163163
}
@@ -171,7 +171,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
171171
DiagnosticSpec(message: "unexpected initializer in pattern; did you mean to use '='?", fixIts: ["replace ':' with '='"])
172172
],
173173
fixedSource: """
174-
let j= X(x) { foo() }
174+
let j = X(x) { foo() }
175175
"""
176176
)
177177
}
@@ -185,7 +185,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
185185
DiagnosticSpec(message: "unexpected initializer in pattern; did you mean to use '='?", fixIts: ["replace ':' with '='"])
186186
],
187187
fixedSource: """
188-
let k= X(x, y) { foo() }
188+
let k = X(x, y) { foo() }
189189
"""
190190
)
191191
}
@@ -202,7 +202,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
202202
],
203203
fixedSource: """
204204
func nonTopLevel() {
205-
let a=[X]()
205+
let a = [X]()
206206
}
207207
"""
208208
)
@@ -220,7 +220,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
220220
],
221221
fixedSource: """
222222
func nonTopLevel() {
223-
let i= X() { foo() }
223+
let i = X() { foo() }
224224
}
225225
"""
226226
)
@@ -238,7 +238,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
238238
],
239239
fixedSource: """
240240
func nonTopLevel() {
241-
let j= X(x) { foo() }
241+
let j = X(x) { foo() }
242242
}
243243
"""
244244
)
@@ -256,7 +256,7 @@ final class DiagnoseInitializerAsTypedPatternTests: XCTestCase {
256256
],
257257
fixedSource: """
258258
func nonTopLevel() {
259-
let k= X(x, y) { foo() }
259+
let k = X(x, y) { foo() }
260260
}
261261
"""
262262
)

Tests/SwiftParserTest/translated/TypealiasTests.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ final class TypealiasTests: XCTestCase {
6868
diagnostics: [
6969
DiagnosticSpec(message: "expected '=' in typealias declaration", fixIts: ["replace ':' with '='"])
7070
],
71-
fixedSource: "typealias Foo2= Int"
71+
fixedSource: "typealias Foo2 = Int"
7272
)
7373
}
7474

@@ -80,7 +80,7 @@ final class TypealiasTests: XCTestCase {
8080
diagnostics: [
8181
DiagnosticSpec(message: "expected '=' in typealias declaration", fixIts: ["replace ':' with '='"])
8282
],
83-
fixedSource: "typealias Foo3 =Int"
83+
fixedSource: "typealias Foo3 = Int"
8484
)
8585
}
8686

@@ -92,7 +92,7 @@ final class TypealiasTests: XCTestCase {
9292
diagnostics: [
9393
DiagnosticSpec(message: "expected '=' in typealias declaration", fixIts: ["replace ':' with '='"])
9494
],
95-
fixedSource: "typealias Foo4=/*comment*/Int"
95+
fixedSource: "typealias Foo4 =/*comment*/Int"
9696
)
9797
}
9898

@@ -120,7 +120,7 @@ final class TypealiasTests: XCTestCase {
120120
DiagnosticSpec(locationMarker: "2️⃣", message: "expected type in typealias declaration", fixIts: ["insert type"]),
121121
],
122122
fixedSource: """
123-
typealias Recovery2 =<#type#>
123+
typealias Recovery2 = <#type#>
124124
"""
125125
)
126126
}

0 commit comments

Comments
 (0)