Skip to content

Commit 781d2b9

Browse files
committed
Unified: Add Swift tests with additional trailing closure
1 parent aeca3cf commit 781d2b9

4 files changed

Lines changed: 207 additions & 1 deletion

File tree

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
handlers[0]
2+
3+
handlers[0] {
4+
first()
5+
} completion: {
6+
second()
7+
} failure: {
8+
third()
9+
}
10+
11+
---
12+
13+
sourceFile
14+
endOfFileToken: endOfFile
15+
statements:
16+
codeBlockItem
17+
item:
18+
subscriptCallExpr
19+
leftSquare: [
20+
rightSquare: ]
21+
arguments:
22+
labeledExpr
23+
expression:
24+
integerLiteralExpr
25+
literal: integerLiteral "0"
26+
additionalTrailingClosures:
27+
calledExpression:
28+
declReferenceExpr
29+
baseName: identifier "handlers"
30+
codeBlockItem
31+
item:
32+
subscriptCallExpr
33+
leftSquare: [
34+
rightSquare: ]
35+
arguments:
36+
labeledExpr
37+
expression:
38+
integerLiteralExpr
39+
literal: integerLiteral "0"
40+
additionalTrailingClosures:
41+
multipleTrailingClosureElement
42+
colon: :
43+
label: identifier "completion"
44+
closure:
45+
closureExpr
46+
leftBrace: {
47+
rightBrace: }
48+
statements:
49+
codeBlockItem
50+
item:
51+
functionCallExpr
52+
leftParen: (
53+
rightParen: )
54+
arguments:
55+
additionalTrailingClosures:
56+
calledExpression:
57+
declReferenceExpr
58+
baseName: identifier "second"
59+
multipleTrailingClosureElement
60+
colon: :
61+
label: identifier "failure"
62+
closure:
63+
closureExpr
64+
leftBrace: {
65+
rightBrace: }
66+
statements:
67+
codeBlockItem
68+
item:
69+
functionCallExpr
70+
leftParen: (
71+
rightParen: )
72+
arguments:
73+
additionalTrailingClosures:
74+
calledExpression:
75+
declReferenceExpr
76+
baseName: identifier "third"
77+
calledExpression:
78+
declReferenceExpr
79+
baseName: identifier "handlers"
80+
trailingClosure:
81+
closureExpr
82+
leftBrace: {
83+
rightBrace: }
84+
statements:
85+
codeBlockItem
86+
item:
87+
functionCallExpr
88+
leftParen: (
89+
rightParen: )
90+
arguments:
91+
additionalTrailingClosures:
92+
calledExpression:
93+
declReferenceExpr
94+
baseName: identifier "first"
95+
96+
---
97+
98+
top_level source="⟨body⟩"
99+
body:
100+
block source="⟨stmt⟩\n\n⟨stmt⟩"
101+
stmt:
102+
call_expr source="⟨callee⟩[⟨argument⟩]"
103+
callee: identifier "handlers" source="handlers"
104+
argument:
105+
argument source="⟨value⟩"
106+
value: int_literal "0" source="0"
107+
call_expr source="⟨callee⟩[⟨argument⟩] {\n first()\n} completion: {\n second()\n} failure: {\n third()\n}"
108+
callee: identifier "handlers" source="handlers"
109+
argument:
110+
argument source="⟨value⟩"
111+
value: int_literal "0" source="0"
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
handlers[0]
2+
3+
handlers[0] {
4+
first()
5+
} completion: {
6+
second()
7+
} failure: {
8+
third()
9+
}

‎unified/extractor/tests/corpus/swift/functions/function-call.output‎

Lines changed: 79 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
foo(1, 2)
22

3+
handle {
4+
first()
5+
} completion: {
6+
second()
7+
} failure: {
8+
third()
9+
}
10+
311
---
412

513
sourceFile
@@ -24,12 +32,71 @@ sourceFile
2432
calledExpression:
2533
declReferenceExpr
2634
baseName: identifier "foo"
35+
codeBlockItem
36+
item:
37+
functionCallExpr
38+
arguments:
39+
additionalTrailingClosures:
40+
multipleTrailingClosureElement
41+
colon: :
42+
label: identifier "completion"
43+
closure:
44+
closureExpr
45+
leftBrace: {
46+
rightBrace: }
47+
statements:
48+
codeBlockItem
49+
item:
50+
functionCallExpr
51+
leftParen: (
52+
rightParen: )
53+
arguments:
54+
additionalTrailingClosures:
55+
calledExpression:
56+
declReferenceExpr
57+
baseName: identifier "second"
58+
multipleTrailingClosureElement
59+
colon: :
60+
label: identifier "failure"
61+
closure:
62+
closureExpr
63+
leftBrace: {
64+
rightBrace: }
65+
statements:
66+
codeBlockItem
67+
item:
68+
functionCallExpr
69+
leftParen: (
70+
rightParen: )
71+
arguments:
72+
additionalTrailingClosures:
73+
calledExpression:
74+
declReferenceExpr
75+
baseName: identifier "third"
76+
calledExpression:
77+
declReferenceExpr
78+
baseName: identifier "handle"
79+
trailingClosure:
80+
closureExpr
81+
leftBrace: {
82+
rightBrace: }
83+
statements:
84+
codeBlockItem
85+
item:
86+
functionCallExpr
87+
leftParen: (
88+
rightParen: )
89+
arguments:
90+
additionalTrailingClosures:
91+
calledExpression:
92+
declReferenceExpr
93+
baseName: identifier "first"
2794

2895
---
2996

3097
top_level source="⟨body⟩"
3198
body:
32-
block source="⟨stmt⟩"
99+
block source="⟨stmt⟩\n\n⟨stmt⟩"
33100
stmt:
34101
call_expr source="⟨callee⟩(⟨argument⟩, ⟨argument⟩)"
35102
callee: identifier "foo" source="foo"
@@ -38,3 +105,14 @@ top_level source="⟨body⟩"
38105
value: int_literal "1" source="1"
39106
argument source="⟨value⟩"
40107
value: int_literal "2" source="2"
108+
call_expr source="⟨callee⟩ ⟨argument⟩ completion: {\n second()\n} failure: {\n third()\n}"
109+
callee: identifier "handle" source="handle"
110+
argument:
111+
argument source="⟨value⟩"
112+
value:
113+
function_expr source="{\n ⟨body⟩\n}"
114+
body:
115+
block source="⟨stmt⟩"
116+
stmt:
117+
call_expr source="⟨callee⟩()"
118+
callee: identifier "first" source="first"
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,9 @@
11
foo(1, 2)
2+
3+
handle {
4+
first()
5+
} completion: {
6+
second()
7+
} failure: {
8+
third()
9+
}

0 commit comments

Comments
 (0)