Skip to content

Commit e0a13b1

Browse files
authored
Merge pull request swiftlang#129 from ahoppen/migrate-to-new-swiftsyntax-api
Update swift-format to new SwiftSyntax API
2 parents a47ad53 + bd50eec commit e0a13b1

File tree

56 files changed

+775
-783
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+775
-783
lines changed

Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ let package = Package(
2323
dependencies: [
2424
.package(
2525
url: "https://github.com/apple/swift-syntax",
26-
.revision("swift-DEVELOPMENT-SNAPSHOT-2019-09-26-m")
26+
.revision("swift-DEVELOPMENT-SNAPSHOT-2020-01-29-a")
2727
),
2828
.package(url: "https://github.com/apple/swift-tools-support-core.git", from: "0.0.1"),
2929
],

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ is also expressed in the `SwiftSyntax` dependency in
2626
| Xcode Release | Swift Version | `swift-format` Branch |
2727
|:-------------:|:---------------------------------------:|:----------------------|
2828
| Xcode 11.0 | Swift 5.1 | `swift-5.1-branch` |
29-
|| swift-DEVELOPMENT-SNAPSHOT-2019-09-26-a | `master` |
29+
|| swift-DEVELOPMENT-SNAPSHOT-2020-01-29-a | `master` |
3030

3131
For example, if you are using Xcode 11.0 (Swift 5.1), you can check out and
3232
build `swift-format` using the following commands:

Sources/SwiftFormat/LintPipeline.swift

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,7 @@ import SwiftSyntax
1616
/// A syntax visitor that delegates to individual rules for linting.
1717
///
1818
/// This file will be extended with `visit` methods in Pipelines+Generated.swift.
19-
struct LintPipeline: SyntaxVisitor {
20-
21-
/// The formatter context.
22-
let context: Context
23-
24-
/// Creates a new lint pipeline.
25-
init(context: Context) {
26-
self.context = context
27-
}
28-
19+
extension LintPipeline {
2920
/// Calls the `visit` method of a rule for the given node if that rule is enabled for the node.
3021
///
3122
/// - Parameters:
@@ -35,10 +26,10 @@ struct LintPipeline: SyntaxVisitor {
3526
/// disabled.
3627
/// - node: The syntax node on which the rule will be applied. This lets us check whether the
3728
/// rule is enabled for the particular source range where the node occurs.
38-
func visitIfEnabled<Rule: SyntaxLintRule, Node: Syntax>(
29+
func visitIfEnabled<Rule: SyntaxLintRule, Node: SyntaxProtocol>(
3930
_ visitor: (Rule) -> (Node) -> SyntaxVisitorContinueKind, in context: Context, for node: Node
4031
) {
41-
guard context.isRuleEnabled(Rule.self.ruleName, node: node) else { return }
32+
guard context.isRuleEnabled(Rule.self.ruleName, node: Syntax(node)) else { return }
4233
let rule = Rule(context: context)
4334
_ = visitor(rule)(node)
4435
}
@@ -52,14 +43,14 @@ struct LintPipeline: SyntaxVisitor {
5243
/// disabled.
5344
/// - node: The syntax node on which the rule will be applied. This lets us check whether the
5445
/// rule is enabled for the particular source range where the node occurs.
55-
func visitIfEnabled<Rule: SyntaxFormatRule, Node: Syntax>(
46+
func visitIfEnabled<Rule: SyntaxFormatRule, Node: SyntaxProtocol>(
5647
_ visitor: (Rule) -> (Node) -> Any, in context: Context, for node: Node
5748
) {
5849
// Note that visitor function type is expressed as `Any` because we ignore the return value, but
5950
// more importantly because the `visit` methods return protocol refinements of `Syntax` that
6051
// cannot currently be expressed as constraints without duplicating this function for each of
6152
// them individually.
62-
guard context.isRuleEnabled(Rule.self.ruleName, node: node) else { return }
53+
guard context.isRuleEnabled(Rule.self.ruleName, node: Syntax(node)) else { return }
6354
let rule = Rule(context: context)
6455
_ = visitor(rule)(node)
6556
}

Sources/SwiftFormat/Pipelines+Generated.swift

Lines changed: 53 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,34 @@
1313
// This file is automatically generated with generate-pipeline. Do Not Edit!
1414

1515
import SwiftFormatCore
16-
import SwiftFormatRules
1716
import SwiftSyntax
17+
import SwiftFormatRules
18+
19+
/// A syntax visitor that delegates to individual rules for linting.
20+
///
21+
/// This file will be extended with `visit` methods in Pipelines+Generated.swift.
22+
class LintPipeline: SyntaxVisitor {
1823

19-
extension LintPipeline {
24+
/// The formatter context.
25+
let context: Context
26+
27+
/// Creates a new lint pipeline.
28+
init(context: Context) {
29+
self.context = context
30+
}
2031

21-
func visit(_ node: AsExprSyntax) -> SyntaxVisitorContinueKind {
32+
override func visit(_ node: AsExprSyntax) -> SyntaxVisitorContinueKind {
2233
visitIfEnabled(NeverForceUnwrap.visit, in: context, for: node)
2334
return .visitChildren
2435
}
2536

26-
func visit(_ node: AssociatedtypeDeclSyntax) -> SyntaxVisitorContinueKind {
37+
override func visit(_ node: AssociatedtypeDeclSyntax) -> SyntaxVisitorContinueKind {
2738
visitIfEnabled(BeginDocumentationCommentWithOneLineSummary.visit, in: context, for: node)
2839
visitIfEnabled(NoLeadingUnderscores.visit, in: context, for: node)
2940
return .visitChildren
3041
}
3142

32-
func visit(_ node: ClassDeclSyntax) -> SyntaxVisitorContinueKind {
43+
override func visit(_ node: ClassDeclSyntax) -> SyntaxVisitorContinueKind {
3344
visitIfEnabled(AllPublicDeclarationsHaveDocumentation.visit, in: context, for: node)
3445
visitIfEnabled(BeginDocumentationCommentWithOneLineSummary.visit, in: context, for: node)
3546
visitIfEnabled(DontRepeatTypeInStaticProperties.visit, in: context, for: node)
@@ -38,41 +49,41 @@ extension LintPipeline {
3849
return .visitChildren
3950
}
4051

41-
func visit(_ node: ClosureExprSyntax) -> SyntaxVisitorContinueKind {
52+
override func visit(_ node: ClosureExprSyntax) -> SyntaxVisitorContinueKind {
4253
visitIfEnabled(OneVariableDeclarationPerLine.visit, in: context, for: node)
4354
return .visitChildren
4455
}
4556

46-
func visit(_ node: CodeBlockItemListSyntax) -> SyntaxVisitorContinueKind {
57+
override func visit(_ node: CodeBlockItemListSyntax) -> SyntaxVisitorContinueKind {
4758
visitIfEnabled(DoNotUseSemicolons.visit, in: context, for: node)
4859
return .visitChildren
4960
}
5061

51-
func visit(_ node: CodeBlockSyntax) -> SyntaxVisitorContinueKind {
62+
override func visit(_ node: CodeBlockSyntax) -> SyntaxVisitorContinueKind {
5263
visitIfEnabled(AmbiguousTrailingClosureOverload.visit, in: context, for: node)
5364
visitIfEnabled(OneVariableDeclarationPerLine.visit, in: context, for: node)
5465
return .visitChildren
5566
}
5667

57-
func visit(_ node: ConditionElementSyntax) -> SyntaxVisitorContinueKind {
68+
override func visit(_ node: ConditionElementSyntax) -> SyntaxVisitorContinueKind {
5869
visitIfEnabled(NoParensAroundConditions.visit, in: context, for: node)
5970
return .visitChildren
6071
}
6172

62-
func visit(_ node: DeinitializerDeclSyntax) -> SyntaxVisitorContinueKind {
73+
override func visit(_ node: DeinitializerDeclSyntax) -> SyntaxVisitorContinueKind {
6374
visitIfEnabled(AllPublicDeclarationsHaveDocumentation.visit, in: context, for: node)
6475
visitIfEnabled(BeginDocumentationCommentWithOneLineSummary.visit, in: context, for: node)
6576
visitIfEnabled(UseTripleSlashForDocumentationComments.visit, in: context, for: node)
6677
return .visitChildren
6778
}
6879

69-
func visit(_ node: EnumCaseElementSyntax) -> SyntaxVisitorContinueKind {
80+
override func visit(_ node: EnumCaseElementSyntax) -> SyntaxVisitorContinueKind {
7081
visitIfEnabled(AlwaysUseLowerCamelCase.visit, in: context, for: node)
7182
visitIfEnabled(NoLeadingUnderscores.visit, in: context, for: node)
7283
return .visitChildren
7384
}
7485

75-
func visit(_ node: EnumDeclSyntax) -> SyntaxVisitorContinueKind {
86+
override func visit(_ node: EnumDeclSyntax) -> SyntaxVisitorContinueKind {
7687
visitIfEnabled(BeginDocumentationCommentWithOneLineSummary.visit, in: context, for: node)
7788
visitIfEnabled(DontRepeatTypeInStaticProperties.visit, in: context, for: node)
7889
visitIfEnabled(FullyIndirectEnum.visit, in: context, for: node)
@@ -82,25 +93,25 @@ extension LintPipeline {
8293
return .visitChildren
8394
}
8495

85-
func visit(_ node: ExtensionDeclSyntax) -> SyntaxVisitorContinueKind {
96+
override func visit(_ node: ExtensionDeclSyntax) -> SyntaxVisitorContinueKind {
8697
visitIfEnabled(DontRepeatTypeInStaticProperties.visit, in: context, for: node)
8798
visitIfEnabled(NoAccessLevelOnExtensionDeclaration.visit, in: context, for: node)
8899
visitIfEnabled(UseTripleSlashForDocumentationComments.visit, in: context, for: node)
89100
return .visitChildren
90101
}
91102

92-
func visit(_ node: ForcedValueExprSyntax) -> SyntaxVisitorContinueKind {
103+
override func visit(_ node: ForcedValueExprSyntax) -> SyntaxVisitorContinueKind {
93104
visitIfEnabled(NeverForceUnwrap.visit, in: context, for: node)
94105
return .visitChildren
95106
}
96107

97-
func visit(_ node: FunctionCallExprSyntax) -> SyntaxVisitorContinueKind {
108+
override func visit(_ node: FunctionCallExprSyntax) -> SyntaxVisitorContinueKind {
98109
visitIfEnabled(NoEmptyTrailingClosureParentheses.visit, in: context, for: node)
99110
visitIfEnabled(OnlyOneTrailingClosureArgument.visit, in: context, for: node)
100111
return .visitChildren
101112
}
102113

103-
func visit(_ node: FunctionDeclSyntax) -> SyntaxVisitorContinueKind {
114+
override func visit(_ node: FunctionDeclSyntax) -> SyntaxVisitorContinueKind {
104115
visitIfEnabled(AllPublicDeclarationsHaveDocumentation.visit, in: context, for: node)
105116
visitIfEnabled(AlwaysUseLowerCamelCase.visit, in: context, for: node)
106117
visitIfEnabled(BeginDocumentationCommentWithOneLineSummary.visit, in: context, for: node)
@@ -110,72 +121,72 @@ extension LintPipeline {
110121
return .visitChildren
111122
}
112123

113-
func visit(_ node: FunctionParameterSyntax) -> SyntaxVisitorContinueKind {
124+
override func visit(_ node: FunctionParameterSyntax) -> SyntaxVisitorContinueKind {
114125
visitIfEnabled(NoLeadingUnderscores.visit, in: context, for: node)
115126
return .visitChildren
116127
}
117128

118-
func visit(_ node: FunctionSignatureSyntax) -> SyntaxVisitorContinueKind {
129+
override func visit(_ node: FunctionSignatureSyntax) -> SyntaxVisitorContinueKind {
119130
visitIfEnabled(NoVoidReturnOnFunctionSignature.visit, in: context, for: node)
120131
return .visitChildren
121132
}
122133

123-
func visit(_ node: FunctionTypeSyntax) -> SyntaxVisitorContinueKind {
134+
override func visit(_ node: FunctionTypeSyntax) -> SyntaxVisitorContinueKind {
124135
visitIfEnabled(ReturnVoidInsteadOfEmptyTuple.visit, in: context, for: node)
125136
return .visitChildren
126137
}
127138

128-
func visit(_ node: GenericParameterSyntax) -> SyntaxVisitorContinueKind {
139+
override func visit(_ node: GenericParameterSyntax) -> SyntaxVisitorContinueKind {
129140
visitIfEnabled(NoLeadingUnderscores.visit, in: context, for: node)
130141
return .visitChildren
131142
}
132143

133-
func visit(_ node: IdentifierPatternSyntax) -> SyntaxVisitorContinueKind {
144+
override func visit(_ node: IdentifierPatternSyntax) -> SyntaxVisitorContinueKind {
134145
visitIfEnabled(IdentifiersMustBeASCII.visit, in: context, for: node)
135146
visitIfEnabled(NoLeadingUnderscores.visit, in: context, for: node)
136147
return .visitChildren
137148
}
138149

139-
func visit(_ node: IfStmtSyntax) -> SyntaxVisitorContinueKind {
150+
override func visit(_ node: IfStmtSyntax) -> SyntaxVisitorContinueKind {
140151
visitIfEnabled(NoParensAroundConditions.visit, in: context, for: node)
141152
return .visitChildren
142153
}
143154

144-
func visit(_ node: InitializerDeclSyntax) -> SyntaxVisitorContinueKind {
155+
override func visit(_ node: InitializerDeclSyntax) -> SyntaxVisitorContinueKind {
145156
visitIfEnabled(AllPublicDeclarationsHaveDocumentation.visit, in: context, for: node)
146157
visitIfEnabled(BeginDocumentationCommentWithOneLineSummary.visit, in: context, for: node)
147158
visitIfEnabled(UseTripleSlashForDocumentationComments.visit, in: context, for: node)
148159
visitIfEnabled(ValidateDocumentationComments.visit, in: context, for: node)
149160
return .visitChildren
150161
}
151162

152-
func visit(_ node: IntegerLiteralExprSyntax) -> SyntaxVisitorContinueKind {
163+
override func visit(_ node: IntegerLiteralExprSyntax) -> SyntaxVisitorContinueKind {
153164
visitIfEnabled(GroupNumericLiterals.visit, in: context, for: node)
154165
return .visitChildren
155166
}
156167

157-
func visit(_ node: MemberDeclBlockSyntax) -> SyntaxVisitorContinueKind {
168+
override func visit(_ node: MemberDeclBlockSyntax) -> SyntaxVisitorContinueKind {
158169
visitIfEnabled(AmbiguousTrailingClosureOverload.visit, in: context, for: node)
159170
visitIfEnabled(BlankLineBetweenMembers.visit, in: context, for: node)
160171
return .visitChildren
161172
}
162173

163-
func visit(_ node: MemberDeclListSyntax) -> SyntaxVisitorContinueKind {
174+
override func visit(_ node: MemberDeclListSyntax) -> SyntaxVisitorContinueKind {
164175
visitIfEnabled(DoNotUseSemicolons.visit, in: context, for: node)
165176
return .visitChildren
166177
}
167178

168-
func visit(_ node: PatternBindingSyntax) -> SyntaxVisitorContinueKind {
179+
override func visit(_ node: PatternBindingSyntax) -> SyntaxVisitorContinueKind {
169180
visitIfEnabled(UseSingleLinePropertyGetter.visit, in: context, for: node)
170181
return .visitChildren
171182
}
172183

173-
func visit(_ node: PrecedenceGroupDeclSyntax) -> SyntaxVisitorContinueKind {
184+
override func visit(_ node: PrecedenceGroupDeclSyntax) -> SyntaxVisitorContinueKind {
174185
visitIfEnabled(NoLeadingUnderscores.visit, in: context, for: node)
175186
return .visitChildren
176187
}
177188

178-
func visit(_ node: ProtocolDeclSyntax) -> SyntaxVisitorContinueKind {
189+
override func visit(_ node: ProtocolDeclSyntax) -> SyntaxVisitorContinueKind {
179190
visitIfEnabled(AllPublicDeclarationsHaveDocumentation.visit, in: context, for: node)
180191
visitIfEnabled(BeginDocumentationCommentWithOneLineSummary.visit, in: context, for: node)
181192
visitIfEnabled(DontRepeatTypeInStaticProperties.visit, in: context, for: node)
@@ -184,17 +195,17 @@ extension LintPipeline {
184195
return .visitChildren
185196
}
186197

187-
func visit(_ node: RepeatWhileStmtSyntax) -> SyntaxVisitorContinueKind {
198+
override func visit(_ node: RepeatWhileStmtSyntax) -> SyntaxVisitorContinueKind {
188199
visitIfEnabled(NoParensAroundConditions.visit, in: context, for: node)
189200
return .visitChildren
190201
}
191202

192-
func visit(_ node: SimpleTypeIdentifierSyntax) -> SyntaxVisitorContinueKind {
203+
override func visit(_ node: SimpleTypeIdentifierSyntax) -> SyntaxVisitorContinueKind {
193204
visitIfEnabled(UseShorthandTypeNames.visit, in: context, for: node)
194205
return .visitChildren
195206
}
196207

197-
func visit(_ node: SourceFileSyntax) -> SyntaxVisitorContinueKind {
208+
override func visit(_ node: SourceFileSyntax) -> SyntaxVisitorContinueKind {
198209
visitIfEnabled(AmbiguousTrailingClosureOverload.visit, in: context, for: node)
199210
visitIfEnabled(NeverForceUnwrap.visit, in: context, for: node)
200211
visitIfEnabled(NeverUseForceTry.visit, in: context, for: node)
@@ -204,12 +215,12 @@ extension LintPipeline {
204215
return .visitChildren
205216
}
206217

207-
func visit(_ node: SpecializeExprSyntax) -> SyntaxVisitorContinueKind {
218+
override func visit(_ node: SpecializeExprSyntax) -> SyntaxVisitorContinueKind {
208219
visitIfEnabled(UseShorthandTypeNames.visit, in: context, for: node)
209220
return .visitChildren
210221
}
211222

212-
func visit(_ node: StructDeclSyntax) -> SyntaxVisitorContinueKind {
223+
override func visit(_ node: StructDeclSyntax) -> SyntaxVisitorContinueKind {
213224
visitIfEnabled(AllPublicDeclarationsHaveDocumentation.visit, in: context, for: node)
214225
visitIfEnabled(BeginDocumentationCommentWithOneLineSummary.visit, in: context, for: node)
215226
visitIfEnabled(DontRepeatTypeInStaticProperties.visit, in: context, for: node)
@@ -220,48 +231,48 @@ extension LintPipeline {
220231
return .visitChildren
221232
}
222233

223-
func visit(_ node: SubscriptDeclSyntax) -> SyntaxVisitorContinueKind {
234+
override func visit(_ node: SubscriptDeclSyntax) -> SyntaxVisitorContinueKind {
224235
visitIfEnabled(AllPublicDeclarationsHaveDocumentation.visit, in: context, for: node)
225236
visitIfEnabled(BeginDocumentationCommentWithOneLineSummary.visit, in: context, for: node)
226237
visitIfEnabled(UseTripleSlashForDocumentationComments.visit, in: context, for: node)
227238
return .visitChildren
228239
}
229240

230-
func visit(_ node: SwitchCaseLabelSyntax) -> SyntaxVisitorContinueKind {
241+
override func visit(_ node: SwitchCaseLabelSyntax) -> SyntaxVisitorContinueKind {
231242
visitIfEnabled(NoLabelsInCasePatterns.visit, in: context, for: node)
232243
visitIfEnabled(UseLetInEveryBoundCaseVariable.visit, in: context, for: node)
233244
return .visitChildren
234245
}
235246

236-
func visit(_ node: SwitchCaseListSyntax) -> SyntaxVisitorContinueKind {
247+
override func visit(_ node: SwitchCaseListSyntax) -> SyntaxVisitorContinueKind {
237248
visitIfEnabled(NoCasesWithOnlyFallthrough.visit, in: context, for: node)
238249
return .visitChildren
239250
}
240251

241-
func visit(_ node: SwitchStmtSyntax) -> SyntaxVisitorContinueKind {
252+
override func visit(_ node: SwitchStmtSyntax) -> SyntaxVisitorContinueKind {
242253
visitIfEnabled(NoParensAroundConditions.visit, in: context, for: node)
243254
return .visitChildren
244255
}
245256

246-
func visit(_ node: TokenSyntax) -> SyntaxVisitorContinueKind {
257+
override func visit(_ node: TokenSyntax) -> SyntaxVisitorContinueKind {
247258
visitIfEnabled(NoBlockComments.visit, in: context, for: node)
248259
return .visitChildren
249260
}
250261

251-
func visit(_ node: TryExprSyntax) -> SyntaxVisitorContinueKind {
262+
override func visit(_ node: TryExprSyntax) -> SyntaxVisitorContinueKind {
252263
visitIfEnabled(NeverUseForceTry.visit, in: context, for: node)
253264
return .visitChildren
254265
}
255266

256-
func visit(_ node: TypealiasDeclSyntax) -> SyntaxVisitorContinueKind {
267+
override func visit(_ node: TypealiasDeclSyntax) -> SyntaxVisitorContinueKind {
257268
visitIfEnabled(AllPublicDeclarationsHaveDocumentation.visit, in: context, for: node)
258269
visitIfEnabled(BeginDocumentationCommentWithOneLineSummary.visit, in: context, for: node)
259270
visitIfEnabled(NoLeadingUnderscores.visit, in: context, for: node)
260271
visitIfEnabled(UseTripleSlashForDocumentationComments.visit, in: context, for: node)
261272
return .visitChildren
262273
}
263274

264-
func visit(_ node: VariableDeclSyntax) -> SyntaxVisitorContinueKind {
275+
override func visit(_ node: VariableDeclSyntax) -> SyntaxVisitorContinueKind {
265276
visitIfEnabled(AllPublicDeclarationsHaveDocumentation.visit, in: context, for: node)
266277
visitIfEnabled(AlwaysUseLowerCamelCase.visit, in: context, for: node)
267278
visitIfEnabled(BeginDocumentationCommentWithOneLineSummary.visit, in: context, for: node)

Sources/SwiftFormat/SwiftFormatter.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public final class SwiftFormatter {
9797
configuration: configuration, diagnosticEngine: diagnosticEngine, fileURL: assumedURL,
9898
sourceFileSyntax: syntax)
9999
let pipeline = FormatPipeline(context: context)
100-
let transformedSyntax = pipeline.visit(syntax)
100+
let transformedSyntax = pipeline.visit(Syntax(syntax))
101101

102102
if debugOptions.contains(.disablePrettyPrint) {
103103
outputStream.write(transformedSyntax.description)

0 commit comments

Comments
 (0)