...
1-- in.cue --
2import "strings"
3
4a: {x: 10, y: 100, z: 50}
5b: {
6 for k, v in a if v <= 50 {
7 "\(k)": v
8 }
9 x: int
10 if x > 3 {
11 k: 20
12 }
13 k: int
14 if k > 0 {
15 l: 40
16 }
17}
18
19c: {
20 for k, v in a let y = v + 10 if y > 50 {
21 "\(k)": y
22 }
23}
24
25A: X: run: "dfoo"
26
27if true {
28 A: X: {
29 run: string
30 files: "\(strings.Join([ run], "\n"))"
31 }
32}
33
34matchOrder: {
35 a1: {
36 out: [string]: Val: 1
37 out: in.a
38
39 in: a: {
40 if true {
41 b: {}
42 }
43 }
44 }
45 a2: {
46 out: [string]: Val: 1
47
48 in: a: {
49 if true {
50 b: {}
51 }
52 }
53
54 out: in.a
55 }
56 a3: {
57
58 in: a: {
59 if true {
60 b: {}
61 }
62 }
63
64 out: [string]: Val: 1
65 out: in.a
66 }
67 a4: {
68 out: in.a
69 out: [string]: Val: 1
70
71 in: a: {
72 if true {
73 b: {}
74 }
75 }
76 }
77 a5: {
78 out: in.a
79
80 in: a: {
81 if true {
82 b: {}
83 }
84 }
85
86 out: [string]: Val: 1
87 }
88 a6: {
89 in: a: {
90 if true {
91 b: {}
92 }
93 }
94
95 out: in.a
96 out: [string]: Val: 1
97 }
98}
99
100-- out/eval/stats --
101Leaks: 4
102Freed: 64
103Reused: 57
104Allocs: 11
105Retain: 19
106
107Unifications: 68
108Conjuncts: 96
109Disjuncts: 81
110-- out/eval --
111(struct){
112 a: (struct){
113 x: (int){ 10 }
114 y: (int){ 100 }
115 z: (int){ 50 }
116 }
117 b: (struct){
118 x: (int){ 10 }
119 k: (int){ 20 }
120 l: (int){ 40 }
121 z: (int){ 50 }
122 }
123 c: (struct){
124 y: (int){ 110 }
125 z: (int){ 60 }
126 }
127 A: (struct){
128 X: (struct){
129 run: (string){ "dfoo" }
130 files: (string){ "dfoo" }
131 }
132 }
133 matchOrder: (struct){
134 a1: (struct){
135 out: (struct){
136 b: (struct){
137 Val: (int){ 1 }
138 }
139 }
140 in: (struct){
141 a: (struct){
142 b: (struct){
143 }
144 }
145 }
146 }
147 a2: (struct){
148 out: (struct){
149 b: (struct){
150 Val: (int){ 1 }
151 }
152 }
153 in: (struct){
154 a: (struct){
155 b: (struct){
156 }
157 }
158 }
159 }
160 a3: (struct){
161 in: (struct){
162 a: (struct){
163 b: (struct){
164 }
165 }
166 }
167 out: (struct){
168 b: (struct){
169 Val: (int){ 1 }
170 }
171 }
172 }
173 a4: (struct){
174 out: (struct){
175 b: (struct){
176 Val: (int){ 1 }
177 }
178 }
179 in: (struct){
180 a: (struct){
181 b: (struct){
182 }
183 }
184 }
185 }
186 a5: (struct){
187 out: (struct){
188 b: (struct){
189 Val: (int){ 1 }
190 }
191 }
192 in: (struct){
193 a: (struct){
194 b: (struct){
195 }
196 }
197 }
198 }
199 a6: (struct){
200 in: (struct){
201 a: (struct){
202 b: (struct){
203 }
204 }
205 }
206 out: (struct){
207 b: (struct){
208 Val: (int){ 1 }
209 }
210 }
211 }
212 }
213}
214-- out/compile --
215--- in.cue
216{
217 a: {
218 x: 10
219 y: 100
220 z: 50
221 }
222 b: {
223 for k, v in 〈1;a〉 if (〈0;v〉 <= 50) {
224 "\(〈1;k〉)": 〈1;v〉
225 }
226 x: int
227 if (〈0;x〉 > 3) {
228 k: 20
229 }
230 k: int
231 if (〈0;k〉 > 0) {
232 l: 40
233 }
234 }
235 c: {
236 for k, v in 〈1;a〉 let y = (〈0;v〉 + 10) if (〈0;y〉 > 50) {
237 "\(〈2;k〉)": 〈1;y〉
238 }
239 }
240 A: {
241 X: {
242 run: "dfoo"
243 }
244 }
245 if true {
246 A: {
247 X: {
248 run: string
249 files: "\(〈import;strings〉.Join([
250 〈1;run〉,
251 ], "\n"))"
252 }
253 }
254 }
255 matchOrder: {
256 a1: {
257 out: {
258 [string]: {
259 Val: 1
260 }
261 }
262 out: 〈0;in〉.a
263 in: {
264 a: {
265 if true {
266 b: {}
267 }
268 }
269 }
270 }
271 a2: {
272 out: {
273 [string]: {
274 Val: 1
275 }
276 }
277 in: {
278 a: {
279 if true {
280 b: {}
281 }
282 }
283 }
284 out: 〈0;in〉.a
285 }
286 a3: {
287 in: {
288 a: {
289 if true {
290 b: {}
291 }
292 }
293 }
294 out: {
295 [string]: {
296 Val: 1
297 }
298 }
299 out: 〈0;in〉.a
300 }
301 a4: {
302 out: 〈0;in〉.a
303 out: {
304 [string]: {
305 Val: 1
306 }
307 }
308 in: {
309 a: {
310 if true {
311 b: {}
312 }
313 }
314 }
315 }
316 a5: {
317 out: 〈0;in〉.a
318 in: {
319 a: {
320 if true {
321 b: {}
322 }
323 }
324 }
325 out: {
326 [string]: {
327 Val: 1
328 }
329 }
330 }
331 a6: {
332 in: {
333 a: {
334 if true {
335 b: {}
336 }
337 }
338 }
339 out: 〈0;in〉.a
340 out: {
341 [string]: {
342 Val: 1
343 }
344 }
345 }
346 }
347}
View as plain text