Skip to content

Commit 1e8db6b

Browse files
committed
[astgen] Fix the locations of a few visitors.
1 parent cfe5b8b commit 1e8db6b

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

lib/ASTGen/Sources/ASTGen/Decls.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,12 @@ extension ASTGenVisitor {
116116
}
117117

118118
public func visit(_ node: FunctionDeclSyntax) -> ASTNode {
119-
let loc = self.base.advanced(by: node.position.utf8Offset).raw
119+
let staticLoc = self.base.advanced(by: node.position.utf8Offset).raw
120+
let funcLoc = self.base.advanced(by: node.funcKeyword.position.utf8Offset).raw
121+
let nameLoc = self.base.advanced(by: node.identifier.position.utf8Offset).raw
122+
let rParamLoc = self.base.advanced(by: node.signature.input.leftParen.position.utf8Offset).raw
123+
let lParamLoc = self.base.advanced(by: node.signature.input.rightParen.position.utf8Offset).raw
124+
120125

121126
var nameText = node.identifier.text
122127
let name = nameText.withUTF8 { buf in
@@ -141,7 +146,7 @@ extension ASTGenVisitor {
141146
return .decl(
142147
params.withBridgedArrayRef { ref in
143148
FuncDecl_create(
144-
ctx, loc, false, loc, name, loc, false, nil, false, nil, loc, ref, loc, body?.rawValue,
149+
ctx, staticLoc, false, funcLoc, name, nameLoc, false, nil, false, nil, rParamLoc, ref, lParamLoc, body?.rawValue,
145150
returnType?.rawValue, declContext)
146151
})
147152
}

lib/ASTGen/Sources/ASTGen/Exprs.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import SwiftSyntax
55
extension ASTGenVisitor {
66
public func visit(_ node: ClosureExprSyntax) -> ASTNode {
77
let statements = node.statements.map(self.visit).map { $0.bridged() }
8-
let loc = self.base.advanced(by: node.position.utf8Offset).raw
98

109
let body = statements.withBridgedArrayRef { ref in
11-
BraceStmt_create(ctx, loc, ref, loc)
10+
let startLoc = self.base.advanced(by: node.leftBrace.position.utf8Offset).raw
11+
let endLoc = self.base.advanced(by: node.rightBrace.position.utf8Offset).raw
12+
return BraceStmt_create(ctx, startLoc, ref, endLoc)
1213
}
1314

1415
return .expr(ClosureExpr_create(ctx, body, declContext))

lib/ASTGen/Sources/ASTGen/Stmts.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ import SwiftSyntax
55
extension ASTGenVisitor {
66
public func visit(_ node: CodeBlockSyntax) -> ASTNode {
77
let statements = node.statements.map(self.visit).map { $0.bridged() }
8-
let startLoc = self.base.advanced(by: node.position.utf8Offset).raw
9-
let endLoc = self.base.advanced(by: node.endPosition.utf8Offset).raw
8+
let startLoc = self.base.advanced(by: node.leftBrace.position.utf8Offset).raw
9+
let endLoc = self.base.advanced(by: node.rightBrace.position.utf8Offset).raw
1010

1111
return .stmt(
1212
statements.withBridgedArrayRef { ref in

0 commit comments

Comments
 (0)