Skip to content

Commit e87c1c3

Browse files
authored
Add missing colon in _SwiftifyImport function call (#78316)
1 parent 6e1cd3a commit e87c1c3

File tree

2 files changed

+62
-3
lines changed

2 files changed

+62
-3
lines changed

lib/Macros/Sources/SwiftMacros/SwiftifyImportMacro.swift

+4-3
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,8 @@ struct FunctionCallBuilder: BoundsCheckedThunkBuilder {
235235
return pointerArgs[i] ?? ExprSyntax(declref)
236236
}
237237
let labels: [TokenSyntax?] = base.signature.parameterClause.parameters.map { param in
238-
let firstName = param.firstName
239-
if firstName.trimmed.text == "_" {
238+
let firstName = param.firstName.trimmed
239+
if firstName.text == "_" {
240240
return nil
241241
}
242242
return firstName
@@ -247,7 +247,8 @@ struct FunctionCallBuilder: BoundsCheckedThunkBuilder {
247247
if i < args.count - 1 {
248248
comma = .commaToken()
249249
}
250-
return LabeledExprSyntax(label: label, expression: arg, trailingComma: comma)
250+
let colon: TokenSyntax? = label != nil ? .colonToken() : nil
251+
return LabeledExprSyntax(label: label, colon: colon, expression: arg, trailingComma: comma)
251252
}
252253
return ExprSyntax(
253254
FunctionCallExprSyntax(
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// REQUIRES: swift_swift_parser
2+
3+
// RUN: %target-swift-frontend %s -swift-version 5 -module-name main -disable-availability-checking -typecheck -plugin-path %swift-plugin-dir -dump-macro-expansions 2>&1 | %FileCheck --match-full-lines %s
4+
5+
@_SwiftifyImport(.countedBy(pointer: 1, count: "len"))
6+
func ptrNamed(ptr: UnsafePointer<CInt>, _ len: CInt) {
7+
}
8+
9+
@_SwiftifyImport(.countedBy(pointer: 1, count: "len"))
10+
func ptrNamedOther(buf ptr: UnsafePointer<CInt>, _ len: CInt) {
11+
}
12+
13+
@_SwiftifyImport(.countedBy(pointer: 1, count: "len"))
14+
func lenNamed(_ ptr: UnsafePointer<CInt>, len: CInt) {
15+
}
16+
17+
@_SwiftifyImport(.countedBy(pointer: 1, count: "len"))
18+
func lenNamedOther(_ ptr: UnsafePointer<CInt>, count len: CInt) {
19+
}
20+
21+
@_SwiftifyImport(.countedBy(pointer: 1, count: "len"))
22+
func allNamed(ptr: UnsafePointer<CInt>, len: CInt) {
23+
}
24+
25+
@_SwiftifyImport(.countedBy(pointer: 1, count: "len"))
26+
func allNamedOther(buf ptr: UnsafePointer<CInt>, count len: CInt) {
27+
}
28+
29+
// CHECK: @_alwaysEmitIntoClient
30+
// CHECK-NEXT: func ptrNamed(ptr: UnsafeBufferPointer<CInt>) {
31+
// CHECK-NEXT: return ptrNamed(ptr: ptr.baseAddress!, CInt(exactly: ptr.count)!)
32+
// CHECK-NEXT: }
33+
34+
// CHECK: @_alwaysEmitIntoClient
35+
// CHECK-NEXT: func ptrNamedOther(buf ptr: UnsafeBufferPointer<CInt>) {
36+
// CHECK-NEXT: return ptrNamedOther(buf: ptr.baseAddress!, CInt(exactly: ptr.count)!)
37+
// CHECK-NEXT: }
38+
39+
// CHECK: @_alwaysEmitIntoClient
40+
// CHECK-NEXT: func lenNamed(_ ptr: UnsafeBufferPointer<CInt>) {
41+
// CHECK-NEXT: return lenNamed(ptr.baseAddress!, len: CInt(exactly: ptr.count)!)
42+
// CHECK-NEXT: }
43+
44+
// CHECK: @_alwaysEmitIntoClient
45+
// CHECK-NEXT: func lenNamedOther(_ ptr: UnsafeBufferPointer<CInt>) {
46+
// CHECK-NEXT: return lenNamedOther(ptr.baseAddress!, count: CInt(exactly: ptr.count)!)
47+
// CHECK-NEXT: }
48+
49+
// CHECK: @_alwaysEmitIntoClient
50+
// CHECK-NEXT: func allNamed(ptr: UnsafeBufferPointer<CInt>) {
51+
// CHECK-NEXT: return allNamed(ptr: ptr.baseAddress!, len: CInt(exactly: ptr.count)!)
52+
// CHECK-NEXT: }
53+
54+
// CHECK: @_alwaysEmitIntoClient
55+
// CHECK-NEXT: func allNamedOther(buf ptr: UnsafeBufferPointer<CInt>) {
56+
// CHECK-NEXT: return allNamedOther(buf: ptr.baseAddress!, count: CInt(exactly: ptr.count)!)
57+
// CHECK-NEXT: }
58+

0 commit comments

Comments
 (0)