Skip to content

Commit 4892800

Browse files
committed
[astgen] Fix the locations of a few visitors.
1 parent 8beda68 commit 4892800

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

lib/ASTGen/Sources/ASTGen/Decls.swift

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,12 @@ extension ASTGenVisitor {
119119
}
120120

121121
public func visit(_ node: FunctionDeclSyntax) -> ASTNode {
122-
let loc = self.base.advanced(by: node.position.utf8Offset).raw
122+
let staticLoc = self.base.advanced(by: node.position.utf8Offset).raw
123+
let funcLoc = self.base.advanced(by: node.funcKeyword.position.utf8Offset).raw
124+
let nameLoc = self.base.advanced(by: node.identifier.position.utf8Offset).raw
125+
let rParamLoc = self.base.advanced(by: node.signature.input.leftParen.position.utf8Offset).raw
126+
let lParamLoc = self.base.advanced(by: node.signature.input.rightParen.position.utf8Offset).raw
127+
123128

124129
var nameText = node.identifier.text
125130
let name = nameText.withUTF8 { buf in
@@ -144,7 +149,7 @@ extension ASTGenVisitor {
144149
return .decl(
145150
params.withBridgedArrayRef { ref in
146151
FuncDecl_create(
147-
ctx, loc, false, loc, name, loc, false, nil, false, nil, loc, ref, loc, body?.rawValue,
152+
ctx, staticLoc, false, funcLoc, name, nameLoc, false, nil, false, nil, rParamLoc, ref, lParamLoc, body?.rawValue,
148153
returnType?.rawValue, declContext)
149154
})
150155
}

lib/ASTGen/Sources/ASTGen/Exprs.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ import SwiftSyntax
55
extension ASTGenVisitor {
66
public func visit(_ node: ClosureExprSyntax) -> ASTNode {
77
let statements = node.statements.map { self.visit($0).bridged() }
8-
let loc = self.base.advanced(by: node.position.utf8Offset).raw
9-
108
let body = statements.withBridgedArrayRef { ref in
11-
BraceStmt_create(ctx, loc, ref, loc)
9+
let startLoc = self.base.advanced(by: node.leftBrace.position.utf8Offset).raw
10+
let endLoc = self.base.advanced(by: node.rightBrace.position.utf8Offset).raw
11+
return BraceStmt_create(ctx, startLoc, ref, endLoc)
1212
}
1313

1414
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($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)