Skip to content

Commit c4c773b

Browse files
committed
Add @dynamicCallable SIL gen test.
This test verifies that dynamic calls resolve to the correct method.
1 parent 40e3fb9 commit c4c773b

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// RUN: %target-swift-frontend -emit-silgen -verify %s | %FileCheck %s
2+
3+
@dynamicCallable
4+
public struct Callable {
5+
func dynamicallyCall(withArguments: [Int]) {}
6+
func dynamicallyCall(withKeywordArguments: DictionaryLiteral<String, Int>) {}
7+
}
8+
9+
@_silgen_name("foo")
10+
public func foo(a: Callable) {
11+
a()
12+
a(1, 2, 3)
13+
a(1, 2, 3, label: 4)
14+
}
15+
16+
// CHECK-LABEL: sil @foo
17+
// CHECK: bb0(%0 : $Callable):
18+
// CHECK: [[DYN_CALL_1:%.*]] = function_ref @$S4main8CallableV15dynamicallyCall13withArgumentsySaySiG_tF
19+
// CHECK-NEXT: apply [[DYN_CALL_1]]
20+
// CHECK: [[DYN_CALL_2:%.*]] = function_ref @$S4main8CallableV15dynamicallyCall13withArgumentsySaySiG_tF
21+
// CHECK-NEXT: apply [[DYN_CALL_2]]
22+
// CHECK: [[DYN_CALL_3:%.*]] = function_ref @$S4main8CallableV15dynamicallyCall20withKeywordArgumentsys17DictionaryLiteralVySSSiG_tF
23+
// CHECK-NEXT: apply [[DYN_CALL_3]]

0 commit comments

Comments
 (0)