Skip to content

Commit f7b6740

Browse files
authored
Merge pull request #65239 from ahoppen/ahoppen/5.9/cherry-pick-2
[5.9] Companion of cherry-picking multiple SwiftSyntax PRs to `release/5.9`
2 parents febedf4 + 8cb6835 commit f7b6740

File tree

6 files changed

+22
-11
lines changed

6 files changed

+22
-11
lines changed

lib/ASTGen/Sources/ASTGen/Decls.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ extension ASTGenVisitor {
3939
declContext = out.declContext
4040
defer { declContext = oldDeclContext }
4141

42-
node.members.members
42+
node.memberBlock.members
4343
.map { self.visit($0).rawValue }
4444
.withBridgedArrayRef { ref in
4545
NominalTypeDecl_setMembers(out.nominalDecl, ref)
@@ -60,7 +60,7 @@ extension ASTGenVisitor {
6060
declContext = out.declContext
6161
defer { declContext = oldDeclContext }
6262

63-
node.members.members
63+
node.memberBlock.members
6464
.map { self.visit($0).rawValue }
6565
.withBridgedArrayRef { ref in
6666
NominalTypeDecl_setMembers(out.nominalDecl, ref)

lib/ASTGen/Sources/ASTGen/Generics.swift

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,20 @@ extension ASTGenVisitor {
2323
let nameLoc = self.base.advanced(by: node.name.position.utf8Offset).raw
2424
let eachLoc = node.each.map { self.base.advanced(by: $0.position.utf8Offset).raw }
2525

26+
var genericParameterIndex: Int?
27+
for (index, sibling) in (node.parent?.as(GenericParameterListSyntax.self) ?? []).enumerated() {
28+
if sibling == node {
29+
genericParameterIndex = index
30+
break
31+
}
32+
}
33+
guard let genericParameterIndex = genericParameterIndex else {
34+
preconditionFailure("Node not part of the parent?")
35+
}
36+
2637
return .decl(
2738
GenericTypeParamDecl_create(
28-
self.ctx, self.declContext, name, nameLoc, eachLoc, node.indexInParent / 2,
39+
self.ctx, self.declContext, name, nameLoc, eachLoc, genericParameterIndex,
2940
eachLoc != nil))
3041
}
3142
}

lib/ASTGen/Sources/ASTGen/Macros.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -546,7 +546,7 @@ func expandFreestandingMacroInProcess(
546546
guard let parentExpansion = macroSyntax.asProtocol(
547547
FreestandingMacroExpansionSyntax.self
548548
) else {
549-
print("not on a macro expansion node: \(macroSyntax.recursiveDescription)")
549+
print("not on a macro expansion node: \(macroSyntax.debugDescription)")
550550
return nil
551551
}
552552

@@ -671,7 +671,7 @@ private func findSyntaxNodeInSourceFile<Node: SyntaxProtocol>(
671671
currentSyntax = parentSyntax
672672
}
673673

674-
print("unable to find node: \(token.recursiveDescription)")
674+
print("unable to find node: \(token.debugDescription)")
675675
return nil
676676
}
677677

lib/Macros/Sources/ObservationMacros/ObservableMacro.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public struct ObservableMacro: MemberMacro, MemberAttributeMacro, ConformanceMac
7171
"""
7272

7373
let memberList = MemberDeclListSyntax(
74-
declaration.members.members.filter {
74+
declaration.memberBlock.members.filter {
7575
$0.decl.isObservableStoredProperty
7676
}
7777
)

lib/Macros/Sources/SwiftMacros/OptionSetMacro.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ public struct OptionSetMacro {
9797
}
9898

9999
// Find the option enum within the struct.
100-
let optionsEnums: [EnumDeclSyntax] = decl.members.members.compactMap({ member in
100+
let optionsEnums: [EnumDeclSyntax] = decl.memberBlock.members.compactMap({ member in
101101
if let enumDecl = member.decl.as(EnumDeclSyntax.self),
102102
enumDecl.identifier.text == optionsEnumName {
103103
return enumDecl
@@ -163,7 +163,7 @@ extension OptionSetMacro: MemberMacro {
163163

164164
// Find all of the case elements.
165165
var caseElements: [EnumCaseElementSyntax] = []
166-
for member in optionsEnum.members.members {
166+
for member in optionsEnum.memberBlock.members {
167167
if let caseDecl = member.decl.as(EnumCaseDeclSyntax.self) {
168168
caseElements.append(contentsOf: caseDecl.elements)
169169
}

test/Macros/Inputs/syntax_macro_definitions.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ public enum AddBlocker: ExpressionMacro {
149149
ExprSyntax(
150150
binOp.with(
151151
\.operatorToken,
152-
binOp.operatorToken.withKind(.binaryOperator("-"))
152+
binOp.operatorToken.with(\.tokenKind, .binaryOperator("-"))
153153
)
154154
)
155155
)
@@ -694,7 +694,7 @@ extension DeclGroupSyntax {
694694
/// Enumerate the stored properties that syntactically occur in this
695695
/// declaration.
696696
func storedProperties() -> [VariableDeclSyntax] {
697-
return members.members.compactMap { member in
697+
return memberBlock.members.compactMap { member in
698698
guard let variable = member.decl.as(VariableDeclSyntax.self),
699699
variable.isStoredProperty else {
700700
return nil
@@ -1033,7 +1033,7 @@ public struct ObservableMacro: MemberMacro, MemberAttributeMacro {
10331033
"""
10341034

10351035
let memberList = MemberDeclListSyntax(
1036-
declaration.members.members.filter {
1036+
declaration.memberBlock.members.filter {
10371037
$0.decl.isObservableStoredProperty
10381038
}
10391039
)

0 commit comments

Comments
 (0)