mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[SourceKit] Handle macro arguments in placeholder expansion
Allow macro argument placeholders to expand into trailing closures. rdar://150550747
This commit is contained in:
@@ -25,6 +25,10 @@ await foo(x: <#T##() -> Void#>)
|
||||
// CHECK-NEXT: <#code#>
|
||||
// CHECK-NEXT: }
|
||||
|
||||
foo(bar(<#T##() -> Void#>))
|
||||
// CHECK: foo(bar({
|
||||
// CHECK-NEXT: <#code#>
|
||||
// CHECK-NEXT: }))
|
||||
|
||||
anArr.indexOfObjectPassingTest(<#T##predicate: ((AnyObject!, Int, UnsafePointer<ObjCBool>) -> Bool)?##((AnyObject!, Int, UnsafePointer<ObjCBool>) -> Bool)?#>)
|
||||
// CHECK: anArr.indexOfObjectPassingTest { <#AnyObject!#>, <#Int#>, <#UnsafePointer<ObjCBool>#> in
|
||||
@@ -273,3 +277,41 @@ expandClosureWithInternalParameterNames {
|
||||
// CHECK: withtrail { a, b in
|
||||
// CHECK-NEXT: <#code#>
|
||||
}
|
||||
|
||||
// CHECK-LABEL: func expandMacro()
|
||||
func expandMacro() {
|
||||
#foo(<#T##() -> Int#>)
|
||||
// CHECK: #foo {
|
||||
// CHECK-NEXT: <#code#>
|
||||
// CHECK-NEXT: }
|
||||
|
||||
#foo(bar: <#T##() -> ()#>)
|
||||
// CHECK: #foo {
|
||||
// CHECK-NEXT: <#code#>
|
||||
// CHECK-NEXT: }
|
||||
|
||||
#foo(bar: <#T##() -> Int#>, baz: <#T##() -> ()#>)
|
||||
// CHECK: #foo {
|
||||
// CHECK-NEXT: <#code#>
|
||||
// CHECK-NEXT: } baz: {
|
||||
// CHECK-NEXT: <#code#>
|
||||
// CHECK-NEXT: }
|
||||
}
|
||||
|
||||
// CHECK-LABEL: struct ExpandDeclMacro
|
||||
struct ExpandDeclMacro {
|
||||
#foo(<#T##() -> ()#>)
|
||||
// CHECK: #foo {
|
||||
// CHECK-NEXT: <#code#>
|
||||
// CHECK-NEXT: }
|
||||
|
||||
#foo(bar(<#T##() -> ()#>))
|
||||
// CHECK: #foo(bar({
|
||||
// CHECK-NEXT: <#code#>
|
||||
// CHECK-NEXT: }))
|
||||
|
||||
#foo(#bar(<#T##() -> ()#>))
|
||||
// CHECK: #foo(#bar({
|
||||
// CHECK-NEXT: <#code#>
|
||||
// CHECK-NEXT: }))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user