Skip to content

Commit 7a96bdd

Browse files
committed
Update macros to use new SwiftSyntax APIs
1 parent e9ac984 commit 7a96bdd

File tree

5 files changed

+18
-16
lines changed

5 files changed

+18
-16
lines changed

lib/Macros/Sources/ObservationMacros/ObservableMacro.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -276,8 +276,8 @@ extension ObservableMacro: ExtensionMacro {
276276
"""
277277
let ext = decl.cast(ExtensionDeclSyntax.self)
278278

279-
if let availability = declaration.attributes.availability {
280-
return [ext.with(\.attributes, availability)]
279+
if let availability = declaration.header.attributes.availability {
280+
return [ext.with(\.header.attributes, availability)]
281281
} else {
282282
return [ext]
283283
}

lib/Macros/Sources/SwiftMacros/DebugDescriptionMacro.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,7 @@ extension DeclGroupSyntax {
396396
case .actorDecl, .classDecl, .enumDecl, .structDecl:
397397
return self.asProtocol(NamedDeclSyntax.self)?.name.text
398398
case .extensionDecl:
399-
return self.as(ExtensionDeclSyntax.self)?.extendedType.trimmedDescription
399+
return self.as(ExtensionDeclSyntax.self)?.extensionHeader.extendedType.trimmedDescription
400400
default:
401401
// New types of decls are not presumed to be valid.
402402
return nil

lib/Macros/Sources/SwiftMacros/DistributedResolvableMacro.swift

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,8 @@ extension DistributedResolvableMacro {
4444
return []
4545
}
4646

47-
let accessModifiers = proto.accessControlModifiers
47+
let protoHeader = proto.protocolHeader
48+
let accessModifiers = protoHeader.accessControlModifiers
4849

4950
let requirementStubs =
5051
proto.memberBlock.members // requirements
@@ -63,7 +64,7 @@ extension DistributedResolvableMacro {
6364

6465
let extensionDecl: DeclSyntax =
6566
"""
66-
extension \(proto.name.trimmed) where Self: Distributed._DistributedActorStub {
67+
extension \(protoHeader.name.trimmed) where Self: Distributed._DistributedActorStub {
6768
\(raw: requirementStubs)
6869
}
6970
"""
@@ -132,9 +133,10 @@ extension DistributedResolvableMacro {
132133
var isGenericStub = false
133134
var specificActorSystemRequirement: TypeSyntax?
134135

135-
let accessModifiers = proto.accessControlModifiers
136+
let protoHeader = proto.protocolHeader
137+
let accessModifiers = protoHeader.accessControlModifiers
136138

137-
for req in proto.genericWhereClause?.requirements ?? [] {
139+
for req in protoHeader.genericWhereClause?.requirements ?? [] {
138140
switch req.requirement {
139141
case .conformanceRequirement(let conformanceReq)
140142
where conformanceReq.leftType.isActorSystem:
@@ -154,7 +156,7 @@ extension DistributedResolvableMacro {
154156
if isGenericStub, let specificActorSystemRequirement {
155157
return [
156158
"""
157-
\(proto.modifiers) distributed actor $\(proto.name.trimmed)<ActorSystem>: \(proto.name.trimmed),
159+
\(protoHeader.modifiers) distributed actor $\(protoHeader.name.trimmed)<ActorSystem>: \(protoHeader.name.trimmed),
158160
Distributed._DistributedActorStub
159161
where ActorSystem: \(specificActorSystemRequirement)
160162
{ }
@@ -163,7 +165,7 @@ extension DistributedResolvableMacro {
163165
} else if let specificActorSystemRequirement {
164166
return [
165167
"""
166-
\(proto.modifiers) distributed actor $\(proto.name.trimmed): \(proto.name.trimmed),
168+
\(protoHeader.modifiers) distributed actor $\(protoHeader.name.trimmed): \(protoHeader.name.trimmed),
167169
Distributed._DistributedActorStub
168170
{
169171
\(typealiasActorSystem(access: accessModifiers, proto, specificActorSystemRequirement))
@@ -179,7 +181,7 @@ extension DistributedResolvableMacro {
179181
// or extensions providing it.
180182
return [
181183
"""
182-
\(proto.modifiers) distributed actor $\(proto.name.trimmed): \(proto.name.trimmed),
184+
\(protoHeader.modifiers) distributed actor $\(protoHeader.name.trimmed): \(protoHeader.name.trimmed),
183185
Distributed._DistributedActorStub
184186
{
185187
}

lib/Macros/Sources/SwiftMacros/OptionSetMacro.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public struct OptionSetMacro {
9999
// Find the option enum within the struct.
100100
let optionsEnums: [EnumDeclSyntax] = decl.memberBlock.members.compactMap({ member in
101101
if let enumDecl = member.decl.as(EnumDeclSyntax.self),
102-
enumDecl.name.text == optionsEnumName {
102+
enumDecl.enumHeader.name.text == optionsEnumName {
103103
return enumDecl
104104
}
105105

@@ -169,12 +169,12 @@ extension OptionSetMacro: MemberMacro {
169169
}
170170

171171
// Dig out the access control keyword we need.
172-
let access = decl.modifiers.first(where: \.isNeededAccessLevelModifier)
172+
let access = decl.header.modifiers.first(where: \.isNeededAccessLevelModifier)
173173

174174
let staticVars = caseElements.map { (element) -> DeclSyntax in
175175
"""
176176
\(access) static let \(element.name): Self =
177-
Self(rawValue: 1 << \(optionsEnum.name).\(element.name).rawValue)
177+
Self(rawValue: 1 << \(optionsEnum.enumHeader.name).\(element.name).rawValue)
178178
"""
179179
}
180180

lib/Macros/Sources/SwiftMacros/SyntaxExtensions.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ import SwiftSyntax
1616
import SwiftSyntaxMacros
1717
import SwiftDiagnostics
1818

19-
extension DeclGroupSyntax {
19+
extension DeclGroupHeaderSyntaxProtocol {
2020
internal var accessControlModifiers: DeclModifierListSyntax {
21-
modifiers.filter { modifier in
21+
modifiers.filter { modifier in
2222
modifier.isAccessControl
2323
}
2424
}
@@ -43,4 +43,4 @@ extension ImplicitlyUnwrappedOptionalTypeSyntax {
4343
trailingTrivia: self.trailingTrivia
4444
)
4545
}
46-
}
46+
}

0 commit comments

Comments
 (0)