cuelang.org/go@v0.13.0/cue/testdata/comprehensions/issue3762.txtar (about) 1 -- in.cue -- 2 full: { 3 kube: node: n1: { 4 _CL: "l" 5 _cs: (_CL): _a[(_CL)] 6 _cs: (_CL): { 7 opts: {} 8 } 9 } 10 11 _a: "l": { 12 _ba?: string 13 opts: { 14 if _ba != _|_ {b: (_ba)} 15 } 16 } 17 18 for k, _ in _a & _b { 19 x: 5 20 } 21 22 _a: [ID=_]: vms: [{ name: "hello" }] 23 _b: [ID=_]: vms: [{ name: "again" }] 24 } 25 reduced: p1: { 26 _cs: _a.l & { 27 opts: {} 28 } 29 30 _a: l: { 31 _ba?: string 32 opts: { 33 if _ba != _|_ { 34 b: _ba 35 } 36 } 37 vms: "hello" 38 } 39 40 _b: l: vms: "again" 41 42 for k, _ in _a & _b { 43 x: 5 44 } 45 } 46 reduced: p2: { 47 for k, _ in _a & _b { 48 x: 5 49 } 50 51 _cs: _a.l & { 52 opts: {} 53 } 54 55 _a: l: { 56 _ba?: string 57 opts: { 58 if _ba != _|_ { 59 b: _ba 60 } 61 } 62 vms: "hello" 63 } 64 65 _b: l: vms: "again" 66 } 67 reference: { 68 _x: { 69 f: true 70 } 71 72 _y: { 73 f: false 74 } 75 76 for k, _ in _x & _y { 77 ok: true 78 } 79 } 80 -- out/eval/stats -- 81 Leaks: 4 82 Freed: 63 83 Reused: 55 84 Allocs: 12 85 Retain: 11 86 87 Unifications: 67 88 Conjuncts: 88 89 Disjuncts: 74 90 -- out/evalalpha -- 91 (struct){ 92 full: (struct){ 93 kube: (struct){ 94 node: (struct){ 95 n1: (struct){ 96 _CL: (string){ "l" } 97 _cs: (struct){ 98 l: (struct){ 99 opts: (struct){ 100 } 101 _ba?: (string){ string } 102 vms: (#list){ 103 0: (struct){ 104 name: (string){ "hello" } 105 } 106 } 107 } 108 } 109 } 110 } 111 } 112 _a: (struct){ 113 l: (struct){ 114 _ba?: (string){ string } 115 opts: (struct){ 116 } 117 vms: (#list){ 118 0: (struct){ 119 name: (string){ "hello" } 120 } 121 } 122 } 123 } 124 x: (int){ 5 } 125 _b: (struct){ 126 } 127 } 128 reduced: (struct){ 129 p1: (struct){ 130 _cs: (struct){ 131 opts: (struct){ 132 } 133 _ba?: (string){ string } 134 vms: (string){ "hello" } 135 } 136 _a: (struct){ 137 l: (struct){ 138 _ba?: (string){ string } 139 opts: (struct){ 140 } 141 vms: (string){ "hello" } 142 } 143 } 144 _b: (struct){ 145 l: (struct){ 146 vms: (string){ "again" } 147 } 148 } 149 x: (int){ 5 } 150 } 151 p2: (struct){ 152 x: (int){ 5 } 153 _cs: (struct){ 154 opts: (struct){ 155 } 156 _ba?: (string){ string } 157 vms: (string){ "hello" } 158 } 159 _a: (struct){ 160 l: (struct){ 161 _ba?: (string){ string } 162 opts: (struct){ 163 } 164 vms: (string){ "hello" } 165 } 166 } 167 _b: (struct){ 168 l: (struct){ 169 vms: (string){ "again" } 170 } 171 } 172 } 173 } 174 reference: (struct){ 175 _x: (struct){ 176 f: (bool){ true } 177 } 178 _y: (struct){ 179 f: (bool){ false } 180 } 181 ok: (bool){ true } 182 } 183 } 184 -- diff/-out/evalalpha<==>+out/eval -- 185 diff old new 186 --- old 187 +++ new 188 @@ -6,9 +6,9 @@ 189 _CL: (string){ "l" } 190 _cs: (struct){ 191 l: (struct){ 192 - _ba?: (string){ string } 193 opts: (struct){ 194 } 195 + _ba?: (string){ string } 196 vms: (#list){ 197 0: (struct){ 198 name: (string){ "hello" } 199 @@ -38,9 +38,9 @@ 200 reduced: (struct){ 201 p1: (struct){ 202 _cs: (struct){ 203 - _ba?: (string){ string } 204 - opts: (struct){ 205 - } 206 + opts: (struct){ 207 + } 208 + _ba?: (string){ string } 209 vms: (string){ "hello" } 210 } 211 _a: (struct){ 212 @@ -61,9 +61,9 @@ 213 p2: (struct){ 214 x: (int){ 5 } 215 _cs: (struct){ 216 - _ba?: (string){ string } 217 - opts: (struct){ 218 - } 219 + opts: (struct){ 220 + } 221 + _ba?: (string){ string } 222 vms: (string){ "hello" } 223 } 224 _a: (struct){ 225 -- out/eval -- 226 (struct){ 227 full: (struct){ 228 kube: (struct){ 229 node: (struct){ 230 n1: (struct){ 231 _CL: (string){ "l" } 232 _cs: (struct){ 233 l: (struct){ 234 _ba?: (string){ string } 235 opts: (struct){ 236 } 237 vms: (#list){ 238 0: (struct){ 239 name: (string){ "hello" } 240 } 241 } 242 } 243 } 244 } 245 } 246 } 247 _a: (struct){ 248 l: (struct){ 249 _ba?: (string){ string } 250 opts: (struct){ 251 } 252 vms: (#list){ 253 0: (struct){ 254 name: (string){ "hello" } 255 } 256 } 257 } 258 } 259 x: (int){ 5 } 260 _b: (struct){ 261 } 262 } 263 reduced: (struct){ 264 p1: (struct){ 265 _cs: (struct){ 266 _ba?: (string){ string } 267 opts: (struct){ 268 } 269 vms: (string){ "hello" } 270 } 271 _a: (struct){ 272 l: (struct){ 273 _ba?: (string){ string } 274 opts: (struct){ 275 } 276 vms: (string){ "hello" } 277 } 278 } 279 _b: (struct){ 280 l: (struct){ 281 vms: (string){ "again" } 282 } 283 } 284 x: (int){ 5 } 285 } 286 p2: (struct){ 287 x: (int){ 5 } 288 _cs: (struct){ 289 _ba?: (string){ string } 290 opts: (struct){ 291 } 292 vms: (string){ "hello" } 293 } 294 _a: (struct){ 295 l: (struct){ 296 _ba?: (string){ string } 297 opts: (struct){ 298 } 299 vms: (string){ "hello" } 300 } 301 } 302 _b: (struct){ 303 l: (struct){ 304 vms: (string){ "again" } 305 } 306 } 307 } 308 } 309 reference: (struct){ 310 _x: (struct){ 311 f: (bool){ true } 312 } 313 _y: (struct){ 314 f: (bool){ false } 315 } 316 ok: (bool){ true } 317 } 318 } 319 -- out/compile -- 320 --- in.cue 321 { 322 full: { 323 kube: { 324 node: { 325 n1: { 326 _CL: "l" 327 _cs: { 328 〈1;_CL〉: 〈4;_a〉[〈1;_CL〉] 329 } 330 _cs: { 331 〈1;_CL〉: { 332 opts: {} 333 } 334 } 335 } 336 } 337 } 338 _a: { 339 l: { 340 _ba?: string 341 opts: { 342 if (〈1;_ba〉 != _|_(explicit error (_|_ literal) in source)) { 343 b: 〈2;_ba〉 344 } 345 } 346 } 347 } 348 for k, _ in (〈0;_a〉 & 〈0;_b〉) { 349 x: 5 350 } 351 _a: { 352 [_]: { 353 vms: [ 354 { 355 name: "hello" 356 }, 357 ] 358 } 359 } 360 _b: { 361 [_]: { 362 vms: [ 363 { 364 name: "again" 365 }, 366 ] 367 } 368 } 369 } 370 reduced: { 371 p1: { 372 _cs: (〈0;_a〉.l & { 373 opts: {} 374 }) 375 _a: { 376 l: { 377 _ba?: string 378 opts: { 379 if (〈1;_ba〉 != _|_(explicit error (_|_ literal) in source)) { 380 b: 〈2;_ba〉 381 } 382 } 383 vms: "hello" 384 } 385 } 386 _b: { 387 l: { 388 vms: "again" 389 } 390 } 391 for k, _ in (〈0;_a〉 & 〈0;_b〉) { 392 x: 5 393 } 394 } 395 } 396 reduced: { 397 p2: { 398 for k, _ in (〈0;_a〉 & 〈0;_b〉) { 399 x: 5 400 } 401 _cs: (〈0;_a〉.l & { 402 opts: {} 403 }) 404 _a: { 405 l: { 406 _ba?: string 407 opts: { 408 if (〈1;_ba〉 != _|_(explicit error (_|_ literal) in source)) { 409 b: 〈2;_ba〉 410 } 411 } 412 vms: "hello" 413 } 414 } 415 _b: { 416 l: { 417 vms: "again" 418 } 419 } 420 } 421 } 422 reference: { 423 _x: { 424 f: true 425 } 426 _y: { 427 f: false 428 } 429 for k, _ in (〈0;_x〉 & 〈0;_y〉) { 430 ok: true 431 } 432 } 433 }