Skip to content

Commit 4d1ef71

Browse files
authored
Merge pull request #248 from ahoppen/ahoppen/swift-evolve-deprecation-warnings
Fix deprecation warnings in SwiftEvolve from renamed SwiftSyntax APIs
2 parents 017ec33 + e89641b commit 4d1ef71

File tree

8 files changed

+76
-81
lines changed

8 files changed

+76
-81
lines changed

SwiftEvolve/Sources/SwiftEvolve/DeclContext.swift

Lines changed: 33 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import SwiftSyntax
1919

2020
private func makeName(from declarationChain: [Decl]) -> String {
21-
return declarationChain.map { $0.name }.joined(separator: ".")
21+
return declarationChain.map { $0.nameString }.joined(separator: ".")
2222
}
2323

2424
public struct DeclContext {
@@ -150,12 +150,12 @@ public protocol Decl {
150150
/// means we don't have to reimplement the property in terms of Syntax(self).
151151
var _syntaxNode: Syntax { get }
152152

153-
var name: String { get }
153+
var nameString: String { get }
154154

155155
var isResilient: Bool { get }
156156
var isStored: Bool { get }
157157

158-
var modifiers: ModifierListSyntax? { get }
158+
var modifiers: DeclModifierListSyntax? { get }
159159

160160
func lookupDirect(_ name: String) -> Decl?
161161
}
@@ -173,7 +173,7 @@ public extension Decl where Self: DeclWithMembers {
173173
func lookupDirect(_ name: String) -> Decl? {
174174
for item in memberBlock.members {
175175
guard let member = item.decl.as(Decl.self) else { continue }
176-
if member.name == name {
176+
if member.nameString == name {
177177
return member
178178
}
179179
}
@@ -186,7 +186,7 @@ public extension Decl where Self: AbstractFunctionDecl {
186186
guard let body = self.body else { return nil }
187187
for item in body.statements {
188188
guard let decl = item.item.as(Decl.self) else { continue }
189-
if decl.name == name {
189+
if decl.nameString == name {
190190
return decl
191191
}
192192
}
@@ -195,14 +195,14 @@ public extension Decl where Self: AbstractFunctionDecl {
195195
}
196196

197197
extension SourceFileSyntax: Decl {
198-
public var name: String { return "(file)" }
198+
public var nameString: String { return "(file)" }
199199

200-
public var modifiers: ModifierListSyntax? { return nil }
200+
public var modifiers: DeclModifierListSyntax? { return nil }
201201

202202
public func lookupDirect(_ name: String) -> Decl? {
203203
for item in statements {
204204
guard let decl = item.item.as(Decl.self) else { continue }
205-
if decl.name == name {
205+
if decl.nameString == name {
206206
return decl
207207
}
208208
}
@@ -211,8 +211,8 @@ extension SourceFileSyntax: Decl {
211211
}
212212

213213
extension ClassDeclSyntax: Decl {
214-
public var name: String {
215-
return identifier.text
214+
public var nameString: String {
215+
return name.text
216216
}
217217

218218
public var isResilient: Bool {
@@ -221,8 +221,8 @@ extension ClassDeclSyntax: Decl {
221221
}
222222

223223
extension StructDeclSyntax: Decl {
224-
public var name: String {
225-
return identifier.text
224+
public var nameString: String {
225+
return name.text
226226
}
227227

228228
public var isResilient: Bool {
@@ -231,8 +231,8 @@ extension StructDeclSyntax: Decl {
231231
}
232232

233233
extension EnumDeclSyntax: Decl {
234-
public var name: String {
235-
return identifier.text
234+
public var nameString: String {
235+
return name.text
236236
}
237237

238238
public var isResilient: Bool {
@@ -241,30 +241,30 @@ extension EnumDeclSyntax: Decl {
241241
}
242242

243243
extension ProtocolDeclSyntax: Decl {
244-
public var name: String {
245-
return identifier.text
244+
public var nameString: String {
245+
return name.text
246246
}
247247
}
248248

249249
extension ExtensionDeclSyntax: Decl {
250-
public var name: String {
250+
public var nameString: String {
251251
return "(extension \(extendedType.typeText))"
252252
}
253253
}
254254

255-
extension TypealiasDeclSyntax: Decl {
256-
public var name: String {
257-
return identifier.text
255+
extension TypeAliasDeclSyntax: Decl {
256+
public var nameString: String {
257+
return name.text
258258
}
259259

260260
public func lookupDirect(_ name: String) -> Decl? {
261261
fatalError("Not implemented: \(type(of: self)).lookupDirect(_:)")
262262
}
263263
}
264264

265-
extension AssociatedtypeDeclSyntax: Decl {
266-
public var name: String {
267-
return identifier.text
265+
extension AssociatedTypeDeclSyntax: Decl {
266+
public var nameString: String {
267+
return name.text
268268
}
269269

270270
public func lookupDirect(_ name: String) -> Decl? {
@@ -338,7 +338,7 @@ extension VariableDeclSyntax: Decl {
338338
}
339339
}
340340

341-
public var name: String {
341+
public var nameString: String {
342342
let list = boundProperties
343343
if list.count == 1 { return list.first!.name.text }
344344
let nameList = list.map { $0.name.text }
@@ -376,7 +376,7 @@ extension VariableDeclSyntax: Decl {
376376
case .accessors(let accessors):
377377
// Check the individual accessors.
378378
return accessors.allSatisfy { accessor in
379-
switch accessor.accessorKind.text {
379+
switch accessor.accessorSpecifier.text {
380380
case "willSet", "didSet":
381381
// These accessors are allowed on stored properties.
382382
return true
@@ -385,10 +385,6 @@ extension VariableDeclSyntax: Decl {
385385
return false
386386
}
387387
}
388-
389-
default:
390-
// This binding doesn't include any computed getters.
391-
return true
392388
}
393389
}
394390
}
@@ -399,27 +395,27 @@ extension VariableDeclSyntax: Decl {
399395
}
400396

401397
extension EnumCaseElementSyntax {
402-
var name: String {
398+
var nameString: String {
403399
let params: String
404-
if let paramList = associatedValue?.parameterList {
400+
if let paramList = parameterClause?.parameters {
405401
params = paramList.map {
406402
"\($0.firstName?.text ?? "_"):"
407403
}.joined()
408404
}
409405
else {
410406
params = ""
411407
}
412-
return "\(identifier.text)(\( params ))"
408+
return "\(name.text)(\( params ))"
413409
}
414410
}
415411

416412
extension EnumCaseDeclSyntax: Decl {
417-
public var name: String {
413+
public var nameString: String {
418414
if elements.count == 1 {
419-
return elements.first!.name
415+
return elements.first!.nameString
420416
}
421417
else {
422-
return "(" + elements.map { $0.name }.joined(separator: ", ") + ")"
418+
return "(" + elements.map { $0.nameString }.joined(separator: ", ") + ")"
423419
}
424420
}
425421

@@ -435,7 +431,7 @@ extension EnumCaseDeclSyntax: Decl {
435431
extension IfConfigDeclSyntax {
436432
var containsStoredMembers: Bool {
437433
return clauses.contains { clause in
438-
guard let members = clause.elements?.as(MemberDeclListSyntax.self) else {
434+
guard let members = clause.elements?.as(MemberBlockItemListSyntax.self) else {
439435
return false
440436
}
441437

@@ -468,7 +464,7 @@ extension Optional where Wrapped == AttributeListSyntax {
468464
}
469465
}
470466

471-
extension Optional where Wrapped == ModifierListSyntax {
467+
extension Optional where Wrapped == DeclModifierListSyntax {
472468
func contains(named name: String) -> Bool {
473469
return self?.contains { $0.name.text == name } ?? false
474470
}

SwiftEvolve/Sources/SwiftEvolve/Evolution.swift

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ extension ShuffleMembersEvolution {
160160
where G: RandomNumberGenerator
161161
{
162162
guard
163-
let membersList = node.as(MemberDeclListSyntax.self)
163+
let membersList = node.as(MemberBlockItemListSyntax.self)
164164
else { throw EvolutionError.unsupported }
165165
let members = Array(membersList)
166166

@@ -191,27 +191,27 @@ extension ShuffleMembersEvolution {
191191
}
192192

193193
public func evolve(_ node: Syntax) -> Syntax {
194-
let members = Array(node.as(MemberDeclListSyntax.self)!)
194+
let members = Array(node.as(MemberBlockItemListSyntax.self)!)
195195

196196
let inMapping = Set(mapping)
197197
let missing = members.indices.filter { !inMapping.contains($0) }
198198
let fullMapping = mapping + missing
199199

200-
return Syntax(MemberDeclListSyntax(fullMapping.map { members[$0] }))
200+
return Syntax(MemberBlockItemListSyntax(fullMapping.map { members[$0] }))
201201
}
202202
}
203203

204204
extension SynthesizeMemberwiseInitializerEvolution {
205205
public init?<G>(for node: Syntax, in decl: DeclContext, using rng: inout G) throws
206206
where G : RandomNumberGenerator
207207
{
208-
guard let members = node.as(MemberDeclListSyntax.self) else {
208+
guard let members = node.as(MemberBlockItemListSyntax.self) else {
209209
throw EvolutionError.unsupported
210210
}
211211
guard let lastDecl = decl.last.map(Syntax.init), lastDecl.is(StructDeclSyntax.self) else {
212212
return nil
213213
}
214-
guard let parent = members.parent, parent.is(MemberDeclBlockSyntax.self) else {
214+
guard let parent = members.parent, parent.is(MemberBlockSyntax.self) else {
215215
return nil
216216
}
217217

@@ -260,7 +260,7 @@ extension SynthesizeMemberwiseInitializerEvolution {
260260
default:
261261
// Consistency check: This isn't somehow stored, is it?
262262
if let member = membersItem.decl.as(Decl.self) {
263-
assert(!member.isStored, "\(member.name) is a stored non-property???")
263+
assert(!member.isStored, "\(member.nameString) is a stored non-property???")
264264
}
265265

266266
// If not, then we don't care.
@@ -288,7 +288,7 @@ extension SynthesizeMemberwiseInitializerEvolution {
288288
}
289289

290290
public func evolve(_ node: Syntax) -> Syntax {
291-
let members = node.as(MemberDeclListSyntax.self)!
291+
let members = node.as(MemberBlockItemListSyntax.self)!
292292

293293
let evolved = inits.reduce(members) { members, properties in
294294
let parameters = properties.mapToFunctionParameterClause {
@@ -298,9 +298,9 @@ extension SynthesizeMemberwiseInitializerEvolution {
298298
firstName: .identifier($0.name),
299299
secondName: nil,
300300
colon: .colonToken(trailingTrivia: [.spaces(1)]),
301-
type: TypeSyntax(SimpleTypeIdentifierSyntax(name: .identifier($0.type), genericArgumentClause: nil)),
301+
type: TypeSyntax(IdentifierTypeSyntax(name: .identifier($0.type), genericArgumentClause: nil)),
302302
ellipsis: nil,
303-
defaultArgument: nil,
303+
defaultValue: nil,
304304
trailingComma: nil
305305
)
306306
}
@@ -312,7 +312,7 @@ extension SynthesizeMemberwiseInitializerEvolution {
312312
return .expr(expr)
313313
}
314314

315-
let signature = FunctionSignatureSyntax(input: parameters)
315+
let signature = FunctionSignatureSyntax(parameterClause: parameters)
316316

317317
let newInitializer = InitializerDeclSyntax(
318318
attributes: nil,
@@ -332,7 +332,7 @@ extension SynthesizeMemberwiseInitializerEvolution {
332332
body: body
333333
)
334334

335-
return members.appending(MemberDeclListItemSyntax(
335+
return members.appending(MemberBlockItemSyntax(
336336
decl: DeclSyntax(newInitializer),
337337
semicolon: nil
338338
))

SwiftEvolve/Sources/SwiftEvolve/Evolver.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public class Evolver: SyntaxRewriter {
6161

6262
// Cast makes this go through the overload with
6363
// visitPre()/visitAny()/visitPost().
64-
return visit(Syntax(file))
64+
return rewrite(Syntax(file))
6565
}
6666

6767
var recursionGuard: Syntax?
@@ -78,7 +78,7 @@ public class Evolver: SyntaxRewriter {
7878

7979
let nodePlan = plan[url, default: [:]][context.syntaxPath, default: []]
8080

81-
return nodePlan.reduce(visit(node)) { node, planned in
81+
return nodePlan.reduce(rewrite(node)) { node, planned in
8282
log(type: .debug, " Evolving \(planned.sourceLocation) by \(planned.evolution)")
8383
return planned.evolution.evolve(node)
8484
}

SwiftEvolve/Sources/SwiftEvolve/SyntaxConstructionExtensions.swift

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ extension Collection {
4848
innerTrailingTrivia: Trivia = [],
4949
outerTrailingTrivia: Trivia = [],
5050
_ transform: (Element) throws -> FunctionParameterSyntax
51-
) rethrows -> ParameterClauseSyntax {
51+
) rethrows -> FunctionParameterClauseSyntax {
5252
let params = try map(transform)
5353
.withCorrectTrailingCommas(betweenTrivia: betweenTrivia)
5454

55-
return ParameterClauseSyntax(
55+
return FunctionParameterClauseSyntax(
5656
leftParen: .leftParenToken(
5757
leadingTrivia: outerLeadingTrivia, trailingTrivia: innerLeadingTrivia
5858
),
59-
parameterList: FunctionParameterListSyntax(params),
59+
parameters: FunctionParameterListSyntax(params),
6060
rightParen: .rightParenToken(
6161
leadingTrivia: innerTrailingTrivia, trailingTrivia: outerTrailingTrivia
6262
)
@@ -115,7 +115,7 @@ struct ExprSyntaxTemplate {
115115
guard case .identifier(_) = identifier.tokenKind else {
116116
preconditionFailure("ExprSyntaxTemplate(var:) called with non-identifier \(identifier)")
117117
}
118-
self.init(expr: ExprSyntax(IdentifierExprSyntax(identifier: identifier, declNameArguments: nil)))
118+
self.init(expr: ExprSyntax(DeclReferenceExprSyntax(baseName: identifier, argumentNames: nil)))
119119
}
120120

121121
init(_ name: String) {
@@ -132,7 +132,7 @@ struct ExprSyntaxTemplate {
132132
lhs: ExprSyntaxTemplate, rhs: ExprSyntaxTemplate
133133
) -> ExprSyntaxTemplate {
134134
let assignment = AssignmentExprSyntax(
135-
assignToken: .equalToken(
135+
equal: .equalToken(
136136
leadingTrivia: .spaces(1), trailingTrivia: .spaces(1)
137137
)
138138
)
@@ -149,9 +149,8 @@ struct ExprSyntaxTemplate {
149149
subscript (dot identifier: TokenSyntax) -> ExprSyntaxTemplate {
150150
let memberAccess = MemberAccessExprSyntax(
151151
base: expr,
152-
dot: .periodToken(),
153-
name: identifier,
154-
declNameArguments: nil
152+
period: .periodToken(),
153+
name: identifier
155154
)
156155
return .init(expr: ExprSyntax(memberAccess))
157156
}

0 commit comments

Comments
 (0)