Skip to content

Commit 4228e6c

Browse files
committed
unified: Add string interpolation corpus test
1 parent 4897af6 commit 4228e6c

2 files changed

Lines changed: 130 additions & 1 deletion

File tree

‎unified/extractor/tests/corpus/swift/literals/string-with-interpolation.output‎

Lines changed: 120 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
1+
// Simple interpolation
12
"hello \(name)"
23

4+
// Multiple interpolations
5+
"hello \(first) \(last)"
6+
7+
// Interpolation with expression
8+
"result: \(x + y)"
9+
10+
// Plain string before and after interpolation
11+
"prefix \(value) suffix"
12+
313
---
414

515
sourceFile
@@ -24,10 +34,119 @@ sourceFile
2434
baseName: identifier "name"
2535
stringSegment
2636
content: stringSegment
37+
codeBlockItem
38+
item:
39+
stringLiteralExpr
40+
closingQuote: "
41+
openingQuote: "
42+
segments:
43+
stringSegment
44+
content: stringSegment "hello "
45+
expressionSegment
46+
leftParen: (
47+
rightParen: )
48+
backslash: \
49+
expressions:
50+
labeledExpr
51+
expression:
52+
declReferenceExpr
53+
baseName: identifier "first"
54+
stringSegment
55+
content: stringSegment " "
56+
expressionSegment
57+
leftParen: (
58+
rightParen: )
59+
backslash: \
60+
expressions:
61+
labeledExpr
62+
expression:
63+
declReferenceExpr
64+
baseName: identifier "last"
65+
stringSegment
66+
content: stringSegment
67+
codeBlockItem
68+
item:
69+
stringLiteralExpr
70+
closingQuote: "
71+
openingQuote: "
72+
segments:
73+
stringSegment
74+
content: stringSegment "result: "
75+
expressionSegment
76+
leftParen: (
77+
rightParen: )
78+
backslash: \
79+
expressions:
80+
labeledExpr
81+
expression:
82+
infixOperatorExpr
83+
operator:
84+
binaryOperatorExpr
85+
operator: binaryOperator "+"
86+
leftOperand:
87+
declReferenceExpr
88+
baseName: identifier "x"
89+
rightOperand:
90+
declReferenceExpr
91+
baseName: identifier "y"
92+
stringSegment
93+
content: stringSegment
94+
codeBlockItem
95+
item:
96+
stringLiteralExpr
97+
closingQuote: "
98+
openingQuote: "
99+
segments:
100+
stringSegment
101+
content: stringSegment "prefix "
102+
expressionSegment
103+
leftParen: (
104+
rightParen: )
105+
backslash: \
106+
expressions:
107+
labeledExpr
108+
expression:
109+
declReferenceExpr
110+
baseName: identifier "value"
111+
stringSegment
112+
content: stringSegment " suffix"
27113

28114
---
29115

30116
top_level
31117
body:
32118
block
33-
stmt: string_literal "\"hello \\(name)\""
119+
stmt:
120+
string_interpolation_expr
121+
element:
122+
string_literal "hello "
123+
name_expr
124+
identifier: identifier "name"
125+
string_literal
126+
string_interpolation_expr
127+
element:
128+
string_literal "hello "
129+
name_expr
130+
identifier: identifier "first"
131+
string_literal " "
132+
name_expr
133+
identifier: identifier "last"
134+
string_literal
135+
string_interpolation_expr
136+
element:
137+
string_literal "result: "
138+
binary_expr
139+
left:
140+
name_expr
141+
identifier: identifier "x"
142+
operator: infix_operator "+"
143+
right:
144+
name_expr
145+
identifier: identifier "y"
146+
string_literal
147+
string_interpolation_expr
148+
element:
149+
string_literal "prefix "
150+
name_expr
151+
identifier: identifier "value"
152+
string_literal " suffix"
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,11 @@
1+
// Simple interpolation
12
"hello \(name)"
3+
4+
// Multiple interpolations
5+
"hello \(first) \(last)"
6+
7+
// Interpolation with expression
8+
"result: \(x + y)"
9+
10+
// Plain string before and after interpolation
11+
"prefix \(value) suffix"

0 commit comments

Comments
 (0)