Skip to content

Commit 90cc923

Browse files
authored
Merge pull request #61829 from zoecarver/astgen-post-commit-review
[astgen] Address comments post-commit.
2 parents 47b29b6 + 88dfb83 commit 90cc923

File tree

6 files changed

+23
-19
lines changed

6 files changed

+23
-19
lines changed

include/swift/AST/CASTBridging.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,6 @@ struct ASTNodeBridged {
142142
ASTNodeKind kind;
143143
};
144144

145-
void *BraceStmt_create(void *ctx, void *lbloc, BridgedArrayRef elements,
146-
void *rbloc);
147145
void *BraceStmt_create(void *ctx, void *lbloc, BridgedArrayRef elements,
148146
void *rbloc);
149147

lib/ASTGen/Sources/ASTGen/ASTGen.swift

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ enum ASTNode {
2121
case stmt(UnsafeMutableRawPointer)
2222
case expr(UnsafeMutableRawPointer)
2323
case type(UnsafeMutableRawPointer)
24+
case misc(UnsafeMutableRawPointer)
2425

2526
var rawValue: UnsafeMutableRawPointer {
2627
switch self {
@@ -32,6 +33,8 @@ enum ASTNode {
3233
return ptr
3334
case .type(let ptr):
3435
return ptr
36+
case .misc(let ptr):
37+
return ptr
3538
}
3639
}
3740

@@ -44,7 +47,7 @@ enum ASTNode {
4447
case .decl(let d):
4548
return ASTNodeBridged(ptr: d, kind: .decl)
4649
default:
47-
fatalError("Must be expr or stmt.")
50+
fatalError("Must be expr, stmt, or decl.")
4851
}
4952
}
5053
}
@@ -96,8 +99,8 @@ struct ASTGenVisitor: SyntaxTransformVisitor {
9699
out.append(SwiftTopLevelCodeDecl_createStmt(ctx, declContext, loc, s, loc))
97100
case .expr(let e):
98101
out.append(SwiftTopLevelCodeDecl_createExpr(ctx, declContext, loc, e, loc))
99-
case .type(_):
100-
fatalError("Type should not exist at top level.")
102+
default:
103+
fatalError("Top level nodes must be decls, stmts, or exprs.")
101104
}
102105
}
103106

lib/ASTGen/Sources/ASTGen/Decls.swift

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ extension ASTGenVisitor {
1111
return SwiftASTContext_getIdentifier(ctx, buf.baseAddress, buf.count)
1212
}
1313
let nameLoc = self.base.advanced(by: node.identifier.position.utf8Offset).raw
14-
let genericParams = node.genericParameterClause.map(self.visit).map { $0.rawValue }
14+
let genericParams = node.genericParameterClause.map { self.visit($0).rawValue }
1515
let out = TypeAliasDecl_create(
1616
self.ctx, self.declContext, aliasLoc, equalLoc, name, nameLoc, genericParams)
1717

@@ -33,16 +33,17 @@ extension ASTGenVisitor {
3333
}
3434

3535
let genericParams = node.genericParameterClause
36-
.map(self.visit)
37-
.map { $0.rawValue }
36+
.map { self.visit($0).rawValue }
3837
let out = StructDecl_create(ctx, loc, name, loc, genericParams, declContext)
3938
let oldDeclContext = declContext
4039
declContext = out.declContext
4140
defer { declContext = oldDeclContext }
4241

43-
node.members.members.map(self.visit).withBridgedArrayRef { ref in
44-
NominalTypeDecl_setMembers(out.nominalDecl, ref)
45-
}
42+
node.members.members
43+
.map { self.visit($0).rawValue }
44+
.withBridgedArrayRef { ref in
45+
NominalTypeDecl_setMembers(out.nominalDecl, ref)
46+
}
4647

4748
return .decl(out.decl)
4849
}
@@ -59,9 +60,11 @@ extension ASTGenVisitor {
5960
declContext = out.declContext
6061
defer { declContext = oldDeclContext }
6162

62-
node.members.members.map(self.visit).withBridgedArrayRef { ref in
63-
NominalTypeDecl_setMembers(out.nominalDecl, ref)
64-
}
63+
node.members.members
64+
.map { self.visit($0).rawValue }
65+
.withBridgedArrayRef { ref in
66+
NominalTypeDecl_setMembers(out.nominalDecl, ref)
67+
}
6568

6669
return .decl(out.decl)
6770
}

lib/ASTGen/Sources/ASTGen/Exprs.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import SwiftSyntax
44

55
extension ASTGenVisitor {
66
public func visit(_ node: ClosureExprSyntax) -> ASTNode {
7-
let statements = node.statements.map(self.visit).map { $0.bridged() }
7+
let statements = node.statements.map { self.visit($0).bridged() }
88
let loc = self.base.advanced(by: node.position.utf8Offset).raw
99

1010
let body = statements.withBridgedArrayRef { ref in
@@ -64,7 +64,7 @@ extension ASTGenVisitor {
6464
}
6565

6666
public func visit(_ node: TupleExprElementListSyntax) -> ASTNode {
67-
let elements = node.map(self.visit).map { $0.rawValue }
67+
let elements = node.map { self.visit($0).rawValue }
6868

6969
// TODO: find correct paren locs.
7070
let lParenLoc = self.base.advanced(by: node.position.utf8Offset).raw

lib/ASTGen/Sources/ASTGen/Generics.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ extension ASTGenVisitor {
99
self.base.advanced(by: $0.whereKeyword.position.utf8Offset).raw
1010
}
1111
let rAngleLoc = self.base.advanced(by: node.rightAngleBracket.position.utf8Offset).raw
12-
return .decl(
12+
return .misc(
1313
self.withBridgedParametersAndRequirements(node) { params, reqs in
1414
return GenericParamList_create(self.ctx, lAngleLoc, params, whereLoc, reqs, rAngleLoc)
1515
})

lib/ASTGen/Sources/ASTGen/Stmts.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import SwiftSyntax
44

55
extension ASTGenVisitor {
66
public func visit(_ node: CodeBlockSyntax) -> ASTNode {
7-
let statements = node.statements.map(self.visit).map { $0.bridged() }
7+
let statements = node.statements.map { self.visit($0).bridged() }
88
let startLoc = self.base.advanced(by: node.position.utf8Offset).raw
99
let endLoc = self.base.advanced(by: node.endPosition.utf8Offset).raw
1010

@@ -15,7 +15,7 @@ extension ASTGenVisitor {
1515
}
1616

1717
public func visit(_ node: IfStmtSyntax) -> ASTNode {
18-
let conditions = node.conditions.map(self.visit).map { $0.rawValue }
18+
let conditions = node.conditions.map { self.visit($0).rawValue }
1919
assert(conditions.count == 1) // TODO: handle multiple conditions.
2020

2121
let body = visit(node.body).rawValue

0 commit comments

Comments
 (0)