cuelang.org/go@v0.10.1/cue/testdata/eval/let.txtar (about) 1 -- in.cue -- 2 let A = 3 * 3 3 let B = A + A 4 let C = B + B 5 let D = C + C 6 let E = D + D 7 let F = E + E 8 b: { 9 let G = F + F 10 let H = G + G 11 let I = H + H 12 let J = I + I 13 let K = J + J 14 let L = K + K 15 let M = L + L 16 let N = M + M 17 let O = N + N 18 let P = O + O 19 let Q = P + P 20 let R = Q + Q 21 let S = R + R 22 let T = S + S 23 24 a: T 25 b: F 26 } 27 issue1828: { 28 volumes: L3 29 30 let L3 = { 31 for v2 in [for v1 in L2 {}] {} 32 } 33 34 let L2 = L1 35 let L1 = [] 36 } 37 ignoreErrorInLet: { 38 let X = 1 & 2 39 disjunction: *X | 3 40 } 41 -- incomprehension.cue -- 42 // for comprehensions in list do not have to split the let as each instance 43 // is already associated with a separate environment. 44 list: { 45 l: [ 1, 2, 3 ] 46 c: [ 47 for v in l { 48 let X = v*4 // can share 49 X 50 } 51 ] 52 } 53 54 referencesForDirectly: { 55 l: [ 1, 2, 3 ] 56 for k, v in l { 57 let Y = v*4 // multi 58 "\(k)": Y 59 } 60 } 61 62 referencesForViaLet: { 63 l: [ 1, 2, 3 ] 64 for k, v in l let X = v*4 { 65 let Y = X // multi 66 "\(k)": Y 67 } 68 } 69 70 letClauseReferencesInert: { 71 x: 2 72 l: [ 1, 2, 3 ] 73 for k, v in l let X = x { 74 let Y = X // can share 75 "\(k)": Y 76 } 77 } 78 79 // for indirect references, it is okay to not "split" a let clause, as the 80 // it will only fail as a result of not splitting if the referred values 81 // would fail as well. 82 indirectReference: { 83 l: [ 1, 2, 3 ] 84 for k, v in l { 85 y: v // fails if v differs for each y. 86 let X = y*4 // can share, as y fails if let fails. 87 "\(k)": X 88 } 89 } 90 91 nestedFor: { 92 for k, y in [ 4, 5 ] { 93 let X = { 94 for x in [ 1, 2 ] { 95 let X = x 96 "\(X)": X 97 } 98 } 99 "\(k)": X 100 } 101 } 102 103 -- issue2166.cue -- 104 letWithDynamicInComprehension: { 105 _i: { 106 a: "d" 107 b: "e" 108 } 109 110 for k, v in _i { 111 let T = v 112 (T): "1" 113 } 114 } 115 -- issue2218.cue -- 116 _parent_configs: { 117 PARENT: true 118 } 119 _configs: { 120 CHILD1: { 121 property: true 122 } 123 CHILD2: { 124 property: true 125 parent: "PARENT" 126 } 127 } 128 disabled_parent_test: {for k, v in _configs { 129 let parent_config = (*_parent_configs[v.parent] | false) 130 "\(k)": { 131 "parent_config": parent_config 132 } 133 }} 134 -- issue2063.cue -- 135 import ( 136 "encoding/yaml" 137 "strings" 138 ) 139 140 // Issue #2063 141 keepDescending: t1: { 142 ec: {} 143 bs: { 144 let m = ec.b 145 if m == _|_ { } 146 x: y: "" 147 } 148 } 149 150 keepDescending: t2: { 151 x: yaml.Marshal(bs) 152 153 ec: {} 154 bs: { 155 let m = ec.b 156 if m.b == _|_ { } 157 X: Y: strings.Join([], "") 158 } 159 } 160 161 -- out/evalalpha/stats -- 162 Leaks: 226 163 Freed: 16 164 Reused: 16 165 Allocs: 226 166 Retain: 0 167 168 Unifications: 210 169 Conjuncts: 1451 170 Disjuncts: 32 171 -- out/evalalpha -- 172 Errors: 173 indirectReference.y: conflicting values 2 and 1: 174 ./incomprehension.cue:42:7 175 ./incomprehension.cue:42:10 176 indirectReference.y: conflicting values 3 and 1: 177 ./incomprehension.cue:42:7 178 ./incomprehension.cue:42:13 179 180 Result: 181 (_|_){ 182 // [eval] 183 let A#1 = (int){ 9 } 184 let B#2 = (int){ 18 } 185 let C#3 = (int){ 36 } 186 let D#4 = (int){ 72 } 187 let E#5 = (int){ 144 } 188 let F#6 = (int){ 288 } 189 b: (struct){ 190 let G#7 = (int){ 576 } 191 let H#8 = (int){ 1152 } 192 let I#9 = (int){ 2304 } 193 let J#A = (int){ 4608 } 194 let K#B = (int){ 9216 } 195 let L#C = (int){ 18432 } 196 let M#D = (int){ 36864 } 197 let N#E = (int){ 73728 } 198 let O#F = (int){ 147456 } 199 let P#10 = (int){ 294912 } 200 let Q#11 = (int){ 589824 } 201 let R#12 = (int){ 1179648 } 202 let S#13 = (int){ 2359296 } 203 let T#14 = (int){ 4718592 } 204 a: (int){ 4718592 } 205 b: (int){ 288 } 206 } 207 issue1828: (struct){ 208 volumes: (struct){ 209 } 210 let L3#15 = (struct){ 211 } 212 let L2#16 = (#list){ 213 } 214 let L1#17 = (#list){ 215 } 216 } 217 ignoreErrorInLet: (struct){ 218 let X#18 = (_|_){ 219 // [eval] ignoreErrorInLet.X: conflicting values 2 and 1: 220 // ./in.cue:37:10 221 // ./in.cue:37:14 222 } 223 disjunction: (int){ 3 } 224 } 225 list: (struct){ 226 l: (#list){ 227 0: (int){ 1 } 228 1: (int){ 2 } 229 2: (int){ 3 } 230 } 231 c: (#list){ 232 0: (int){ 233 4 234 let X#19 = (int){ 4 } 235 } 236 1: (int){ 237 8 238 let X#19 = (int){ 8 } 239 } 240 2: (int){ 241 12 242 let X#19 = (int){ 12 } 243 } 244 } 245 } 246 referencesForDirectly: (struct){ 247 l: (#list){ 248 0: (int){ 1 } 249 1: (int){ 2 } 250 2: (int){ 3 } 251 } 252 let Y#1Amulti = (〈1;v〉 * 4) 253 "0": (int){ 4 } 254 "1": (int){ 8 } 255 "2": (int){ 12 } 256 } 257 referencesForViaLet: (struct){ 258 l: (#list){ 259 0: (int){ 1 } 260 1: (int){ 2 } 261 2: (int){ 3 } 262 } 263 let Y#1Bmulti = 〈1;X〉 264 "0": (int){ 4 } 265 "1": (int){ 8 } 266 "2": (int){ 12 } 267 } 268 letClauseReferencesInert: (struct){ 269 x: (int){ 2 } 270 l: (#list){ 271 0: (int){ 1 } 272 1: (int){ 2 } 273 2: (int){ 3 } 274 } 275 let Y#1C = (int){ 2 } 276 "0": (int){ 2 } 277 "1": (int){ 2 } 278 "2": (int){ 2 } 279 } 280 indirectReference: (_|_){ 281 // [eval] 282 l: (#list){ 283 0: (int){ 1 } 284 1: (int){ 2 } 285 2: (int){ 3 } 286 } 287 y: (_|_){ 288 // [eval] indirectReference.y: conflicting values 2 and 1: 289 // ./incomprehension.cue:42:7 290 // ./incomprehension.cue:42:10 291 // indirectReference.y: conflicting values 3 and 1: 292 // ./incomprehension.cue:42:7 293 // ./incomprehension.cue:42:13 294 } 295 let X#1D = (_|_){ 296 // [eval] indirectReference.y: conflicting values 2 and 1: 297 // ./incomprehension.cue:42:7 298 // ./incomprehension.cue:42:10 299 // indirectReference.y: conflicting values 3 and 1: 300 // ./incomprehension.cue:42:7 301 // ./incomprehension.cue:42:13 302 } 303 "0": (_|_){ 304 // [eval] indirectReference.y: conflicting values 2 and 1: 305 // ./incomprehension.cue:42:7 306 // ./incomprehension.cue:42:10 307 // indirectReference.y: conflicting values 3 and 1: 308 // ./incomprehension.cue:42:7 309 // ./incomprehension.cue:42:13 310 } 311 "1": (_|_){ 312 // [eval] indirectReference.y: conflicting values 2 and 1: 313 // ./incomprehension.cue:42:7 314 // ./incomprehension.cue:42:10 315 // indirectReference.y: conflicting values 3 and 1: 316 // ./incomprehension.cue:42:7 317 // ./incomprehension.cue:42:13 318 } 319 "2": (_|_){ 320 // [eval] indirectReference.y: conflicting values 2 and 1: 321 // ./incomprehension.cue:42:7 322 // ./incomprehension.cue:42:10 323 // indirectReference.y: conflicting values 3 and 1: 324 // ./incomprehension.cue:42:7 325 // ./incomprehension.cue:42:13 326 } 327 } 328 nestedFor: (struct){ 329 let X#1Emulti = { 330 for _, x in [ 331 1, 332 2, 333 ] { 334 let X#1Fmulti = 〈1;x〉 335 "\(〈0;let X#1F〉)": 〈0;let X#1F〉 336 } 337 } 338 "0": (struct){ 339 let X#1Fmulti = 〈1;x〉 340 "2": (int){ 2 } 341 "1": (int){ 1 } 342 } 343 "1": (struct){ 344 let X#1Fmulti = 〈1;x〉 345 "2": (int){ 2 } 346 "1": (int){ 1 } 347 } 348 } 349 keepDescending: (struct){ 350 t1: (struct){ 351 ec: (struct){ 352 } 353 bs: (struct){ 354 let m#21 = (_|_){ 355 // [incomplete] keepDescending.t1.bs.m: undefined field: b: 356 // ./issue2063.cue:10:14 357 } 358 x: (struct){ 359 y: (string){ "" } 360 } 361 } 362 } 363 t2: (struct){ 364 x: (string){ "X:\n \"Y\": \"\"\n" } 365 ec: (struct){ 366 } 367 bs: (struct){ 368 let m#22 = (_|_){ 369 // [incomplete] keepDescending.t2.bs.m: undefined field: b: 370 // ./issue2063.cue:21:14 371 } 372 X: (struct){ 373 Y: (string){ "" } 374 } 375 } 376 } 377 } 378 letWithDynamicInComprehension: (struct){ 379 _i: (struct){ 380 a: (string){ "d" } 381 b: (string){ "e" } 382 } 383 let T#23multi = 〈1;v〉 384 e: (string){ "1" } 385 d: (string){ "1" } 386 } 387 _parent_configs: (struct){ 388 PARENT: (bool){ true } 389 } 390 _configs: (struct){ 391 CHILD1: (struct){ 392 property: (bool){ true } 393 } 394 CHILD2: (struct){ 395 property: (bool){ true } 396 parent: (string){ "PARENT" } 397 } 398 } 399 disabled_parent_test: (struct){ 400 let parent_config#24multi = (*〈3;_parent_configs〉[〈1;v〉.parent]|false) 401 CHILD1: (struct){ 402 parent_config: (bool){ false } 403 } 404 CHILD2: (struct){ 405 parent_config: (bool){ |(*(bool){ true }, (bool){ false }) } 406 } 407 } 408 } 409 -- diff/-out/evalalpha<==>+out/eval -- 410 diff old new 411 --- old 412 +++ new 413 @@ -2,13 +2,9 @@ 414 indirectReference.y: conflicting values 2 and 1: 415 ./incomprehension.cue:42:7 416 ./incomprehension.cue:42:10 417 - ./incomprehension.cue:43:2 418 - ./incomprehension.cue:44:6 419 indirectReference.y: conflicting values 3 and 1: 420 ./incomprehension.cue:42:7 421 ./incomprehension.cue:42:13 422 - ./incomprehension.cue:43:2 423 - ./incomprehension.cue:44:6 424 425 Result: 426 (_|_){ 427 @@ -121,61 +117,41 @@ 428 // [eval] indirectReference.y: conflicting values 2 and 1: 429 // ./incomprehension.cue:42:7 430 // ./incomprehension.cue:42:10 431 - // ./incomprehension.cue:43:2 432 - // ./incomprehension.cue:44:6 433 - // indirectReference.y: conflicting values 3 and 1: 434 - // ./incomprehension.cue:42:7 435 - // ./incomprehension.cue:42:13 436 - // ./incomprehension.cue:43:2 437 - // ./incomprehension.cue:44:6 438 + // indirectReference.y: conflicting values 3 and 1: 439 + // ./incomprehension.cue:42:7 440 + // ./incomprehension.cue:42:13 441 } 442 let X#1D = (_|_){ 443 // [eval] indirectReference.y: conflicting values 2 and 1: 444 // ./incomprehension.cue:42:7 445 // ./incomprehension.cue:42:10 446 - // ./incomprehension.cue:43:2 447 - // ./incomprehension.cue:44:6 448 - // indirectReference.y: conflicting values 3 and 1: 449 - // ./incomprehension.cue:42:7 450 - // ./incomprehension.cue:42:13 451 - // ./incomprehension.cue:43:2 452 - // ./incomprehension.cue:44:6 453 + // indirectReference.y: conflicting values 3 and 1: 454 + // ./incomprehension.cue:42:7 455 + // ./incomprehension.cue:42:13 456 } 457 "0": (_|_){ 458 // [eval] indirectReference.y: conflicting values 2 and 1: 459 // ./incomprehension.cue:42:7 460 // ./incomprehension.cue:42:10 461 - // ./incomprehension.cue:43:2 462 - // ./incomprehension.cue:44:6 463 - // indirectReference.y: conflicting values 3 and 1: 464 - // ./incomprehension.cue:42:7 465 - // ./incomprehension.cue:42:13 466 - // ./incomprehension.cue:43:2 467 - // ./incomprehension.cue:44:6 468 + // indirectReference.y: conflicting values 3 and 1: 469 + // ./incomprehension.cue:42:7 470 + // ./incomprehension.cue:42:13 471 } 472 "1": (_|_){ 473 // [eval] indirectReference.y: conflicting values 2 and 1: 474 // ./incomprehension.cue:42:7 475 // ./incomprehension.cue:42:10 476 - // ./incomprehension.cue:43:2 477 - // ./incomprehension.cue:44:6 478 - // indirectReference.y: conflicting values 3 and 1: 479 - // ./incomprehension.cue:42:7 480 - // ./incomprehension.cue:42:13 481 - // ./incomprehension.cue:43:2 482 - // ./incomprehension.cue:44:6 483 + // indirectReference.y: conflicting values 3 and 1: 484 + // ./incomprehension.cue:42:7 485 + // ./incomprehension.cue:42:13 486 } 487 "2": (_|_){ 488 // [eval] indirectReference.y: conflicting values 2 and 1: 489 // ./incomprehension.cue:42:7 490 // ./incomprehension.cue:42:10 491 - // ./incomprehension.cue:43:2 492 - // ./incomprehension.cue:44:6 493 - // indirectReference.y: conflicting values 3 and 1: 494 - // ./incomprehension.cue:42:7 495 - // ./incomprehension.cue:42:13 496 - // ./incomprehension.cue:43:2 497 - // ./incomprehension.cue:44:6 498 + // indirectReference.y: conflicting values 3 and 1: 499 + // ./incomprehension.cue:42:7 500 + // ./incomprehension.cue:42:13 501 } 502 } 503 nestedFor: (struct){ 504 @@ -190,13 +166,13 @@ 505 } 506 "0": (struct){ 507 let X#1Fmulti = 〈1;x〉 508 - "1": (int){ 1 } 509 - "2": (int){ 2 } 510 + "2": (int){ 2 } 511 + "1": (int){ 1 } 512 } 513 "1": (struct){ 514 let X#1Fmulti = 〈1;x〉 515 - "1": (int){ 1 } 516 - "2": (int){ 2 } 517 + "2": (int){ 2 } 518 + "1": (int){ 1 } 519 } 520 } 521 keepDescending: (struct){ 522 @@ -234,8 +210,8 @@ 523 b: (string){ "e" } 524 } 525 let T#23multi = 〈1;v〉 526 - d: (string){ "1" } 527 e: (string){ "1" } 528 + d: (string){ "1" } 529 } 530 _parent_configs: (struct){ 531 PARENT: (bool){ true } 532 -- diff/-out/evalalpha/stats<==>+out/eval/stats -- 533 diff old new 534 --- old 535 +++ new 536 @@ -1,9 +1,9 @@ 537 -Leaks: 51 538 -Freed: 159 539 -Reused: 150 540 -Allocs: 60 541 -Retain: 188 542 +Leaks: 226 543 +Freed: 16 544 +Reused: 16 545 +Allocs: 226 546 +Retain: 0 547 548 -Unifications: 196 549 -Conjuncts: 373 550 -Disjuncts: 248 551 +Unifications: 210 552 +Conjuncts: 1451 553 +Disjuncts: 32 554 -- out/eval/stats -- 555 Leaks: 52 556 Freed: 158 557 Reused: 149 558 Allocs: 61 559 Retain: 184 560 561 Unifications: 196 562 Conjuncts: 365 563 Disjuncts: 241 564 -- out/eval -- 565 Errors: 566 indirectReference.y: conflicting values 2 and 1: 567 ./incomprehension.cue:42:7 568 ./incomprehension.cue:42:10 569 ./incomprehension.cue:43:2 570 ./incomprehension.cue:44:6 571 indirectReference.y: conflicting values 3 and 1: 572 ./incomprehension.cue:42:7 573 ./incomprehension.cue:42:13 574 ./incomprehension.cue:43:2 575 ./incomprehension.cue:44:6 576 577 Result: 578 (_|_){ 579 // [eval] 580 let A#1 = (int){ 9 } 581 let B#2 = (int){ 18 } 582 let C#3 = (int){ 36 } 583 let D#4 = (int){ 72 } 584 let E#5 = (int){ 144 } 585 let F#6 = (int){ 288 } 586 b: (struct){ 587 let G#7 = (int){ 576 } 588 let H#8 = (int){ 1152 } 589 let I#9 = (int){ 2304 } 590 let J#A = (int){ 4608 } 591 let K#B = (int){ 9216 } 592 let L#C = (int){ 18432 } 593 let M#D = (int){ 36864 } 594 let N#E = (int){ 73728 } 595 let O#F = (int){ 147456 } 596 let P#10 = (int){ 294912 } 597 let Q#11 = (int){ 589824 } 598 let R#12 = (int){ 1179648 } 599 let S#13 = (int){ 2359296 } 600 let T#14 = (int){ 4718592 } 601 a: (int){ 4718592 } 602 b: (int){ 288 } 603 } 604 issue1828: (struct){ 605 volumes: (struct){ 606 } 607 let L3#15 = (struct){ 608 } 609 let L2#16 = (#list){ 610 } 611 let L1#17 = (#list){ 612 } 613 } 614 ignoreErrorInLet: (struct){ 615 let X#18 = (_|_){ 616 // [eval] ignoreErrorInLet.X: conflicting values 2 and 1: 617 // ./in.cue:37:10 618 // ./in.cue:37:14 619 } 620 disjunction: (int){ 3 } 621 } 622 list: (struct){ 623 l: (#list){ 624 0: (int){ 1 } 625 1: (int){ 2 } 626 2: (int){ 3 } 627 } 628 c: (#list){ 629 0: (int){ 630 4 631 let X#19 = (int){ 4 } 632 } 633 1: (int){ 634 8 635 let X#19 = (int){ 8 } 636 } 637 2: (int){ 638 12 639 let X#19 = (int){ 12 } 640 } 641 } 642 } 643 referencesForDirectly: (struct){ 644 l: (#list){ 645 0: (int){ 1 } 646 1: (int){ 2 } 647 2: (int){ 3 } 648 } 649 let Y#1Amulti = (〈1;v〉 * 4) 650 "0": (int){ 4 } 651 "1": (int){ 8 } 652 "2": (int){ 12 } 653 } 654 referencesForViaLet: (struct){ 655 l: (#list){ 656 0: (int){ 1 } 657 1: (int){ 2 } 658 2: (int){ 3 } 659 } 660 let Y#1Bmulti = 〈1;X〉 661 "0": (int){ 4 } 662 "1": (int){ 8 } 663 "2": (int){ 12 } 664 } 665 letClauseReferencesInert: (struct){ 666 x: (int){ 2 } 667 l: (#list){ 668 0: (int){ 1 } 669 1: (int){ 2 } 670 2: (int){ 3 } 671 } 672 let Y#1C = (int){ 2 } 673 "0": (int){ 2 } 674 "1": (int){ 2 } 675 "2": (int){ 2 } 676 } 677 indirectReference: (_|_){ 678 // [eval] 679 l: (#list){ 680 0: (int){ 1 } 681 1: (int){ 2 } 682 2: (int){ 3 } 683 } 684 y: (_|_){ 685 // [eval] indirectReference.y: conflicting values 2 and 1: 686 // ./incomprehension.cue:42:7 687 // ./incomprehension.cue:42:10 688 // ./incomprehension.cue:43:2 689 // ./incomprehension.cue:44:6 690 // indirectReference.y: conflicting values 3 and 1: 691 // ./incomprehension.cue:42:7 692 // ./incomprehension.cue:42:13 693 // ./incomprehension.cue:43:2 694 // ./incomprehension.cue:44:6 695 } 696 let X#1D = (_|_){ 697 // [eval] indirectReference.y: conflicting values 2 and 1: 698 // ./incomprehension.cue:42:7 699 // ./incomprehension.cue:42:10 700 // ./incomprehension.cue:43:2 701 // ./incomprehension.cue:44:6 702 // indirectReference.y: conflicting values 3 and 1: 703 // ./incomprehension.cue:42:7 704 // ./incomprehension.cue:42:13 705 // ./incomprehension.cue:43:2 706 // ./incomprehension.cue:44:6 707 } 708 "0": (_|_){ 709 // [eval] indirectReference.y: conflicting values 2 and 1: 710 // ./incomprehension.cue:42:7 711 // ./incomprehension.cue:42:10 712 // ./incomprehension.cue:43:2 713 // ./incomprehension.cue:44:6 714 // indirectReference.y: conflicting values 3 and 1: 715 // ./incomprehension.cue:42:7 716 // ./incomprehension.cue:42:13 717 // ./incomprehension.cue:43:2 718 // ./incomprehension.cue:44:6 719 } 720 "1": (_|_){ 721 // [eval] indirectReference.y: conflicting values 2 and 1: 722 // ./incomprehension.cue:42:7 723 // ./incomprehension.cue:42:10 724 // ./incomprehension.cue:43:2 725 // ./incomprehension.cue:44:6 726 // indirectReference.y: conflicting values 3 and 1: 727 // ./incomprehension.cue:42:7 728 // ./incomprehension.cue:42:13 729 // ./incomprehension.cue:43:2 730 // ./incomprehension.cue:44:6 731 } 732 "2": (_|_){ 733 // [eval] indirectReference.y: conflicting values 2 and 1: 734 // ./incomprehension.cue:42:7 735 // ./incomprehension.cue:42:10 736 // ./incomprehension.cue:43:2 737 // ./incomprehension.cue:44:6 738 // indirectReference.y: conflicting values 3 and 1: 739 // ./incomprehension.cue:42:7 740 // ./incomprehension.cue:42:13 741 // ./incomprehension.cue:43:2 742 // ./incomprehension.cue:44:6 743 } 744 } 745 nestedFor: (struct){ 746 let X#1Emulti = { 747 for _, x in [ 748 1, 749 2, 750 ] { 751 let X#1Fmulti = 〈1;x〉 752 "\(〈0;let X#1F〉)": 〈0;let X#1F〉 753 } 754 } 755 "0": (struct){ 756 let X#1Fmulti = 〈1;x〉 757 "1": (int){ 1 } 758 "2": (int){ 2 } 759 } 760 "1": (struct){ 761 let X#1Fmulti = 〈1;x〉 762 "1": (int){ 1 } 763 "2": (int){ 2 } 764 } 765 } 766 keepDescending: (struct){ 767 t1: (struct){ 768 ec: (struct){ 769 } 770 bs: (struct){ 771 let m#21 = (_|_){ 772 // [incomplete] keepDescending.t1.bs.m: undefined field: b: 773 // ./issue2063.cue:10:14 774 } 775 x: (struct){ 776 y: (string){ "" } 777 } 778 } 779 } 780 t2: (struct){ 781 x: (string){ "X:\n \"Y\": \"\"\n" } 782 ec: (struct){ 783 } 784 bs: (struct){ 785 let m#22 = (_|_){ 786 // [incomplete] keepDescending.t2.bs.m: undefined field: b: 787 // ./issue2063.cue:21:14 788 } 789 X: (struct){ 790 Y: (string){ "" } 791 } 792 } 793 } 794 } 795 letWithDynamicInComprehension: (struct){ 796 _i: (struct){ 797 a: (string){ "d" } 798 b: (string){ "e" } 799 } 800 let T#23multi = 〈1;v〉 801 d: (string){ "1" } 802 e: (string){ "1" } 803 } 804 _parent_configs: (struct){ 805 PARENT: (bool){ true } 806 } 807 _configs: (struct){ 808 CHILD1: (struct){ 809 property: (bool){ true } 810 } 811 CHILD2: (struct){ 812 property: (bool){ true } 813 parent: (string){ "PARENT" } 814 } 815 } 816 disabled_parent_test: (struct){ 817 let parent_config#24multi = (*〈3;_parent_configs〉[〈1;v〉.parent]|false) 818 CHILD1: (struct){ 819 parent_config: (bool){ false } 820 } 821 CHILD2: (struct){ 822 parent_config: (bool){ |(*(bool){ true }, (bool){ false }) } 823 } 824 } 825 } 826 -- out/compile -- 827 --- in.cue 828 { 829 let A#1 = (3 * 3) 830 let B#2 = (〈0;let A#1〉 + 〈0;let A#1〉) 831 let C#3 = (〈0;let B#2〉 + 〈0;let B#2〉) 832 let D#4 = (〈0;let C#3〉 + 〈0;let C#3〉) 833 let E#5 = (〈0;let D#4〉 + 〈0;let D#4〉) 834 let F#6 = (〈0;let E#5〉 + 〈0;let E#5〉) 835 b: { 836 let G#7 = (〈1;let F#6〉 + 〈1;let F#6〉) 837 let H#8 = (〈0;let G#7〉 + 〈0;let G#7〉) 838 let I#9 = (〈0;let H#8〉 + 〈0;let H#8〉) 839 let J#A = (〈0;let I#9〉 + 〈0;let I#9〉) 840 let K#B = (〈0;let J#A〉 + 〈0;let J#A〉) 841 let L#C = (〈0;let K#B〉 + 〈0;let K#B〉) 842 let M#D = (〈0;let L#C〉 + 〈0;let L#C〉) 843 let N#E = (〈0;let M#D〉 + 〈0;let M#D〉) 844 let O#F = (〈0;let N#E〉 + 〈0;let N#E〉) 845 let P#10 = (〈0;let O#F〉 + 〈0;let O#F〉) 846 let Q#11 = (〈0;let P#10〉 + 〈0;let P#10〉) 847 let R#12 = (〈0;let Q#11〉 + 〈0;let Q#11〉) 848 let S#13 = (〈0;let R#12〉 + 〈0;let R#12〉) 849 let T#14 = (〈0;let S#13〉 + 〈0;let S#13〉) 850 a: 〈0;let T#14〉 851 b: 〈1;let F#6〉 852 } 853 issue1828: { 854 volumes: 〈0;let L3#15〉 855 let L3#15 = { 856 for _, v2 in [ 857 for _, v1 in 〈2;let L2#16〉 {}, 858 ] {} 859 } 860 let L2#16 = 〈0;let L1#17〉 861 let L1#17 = [] 862 } 863 ignoreErrorInLet: { 864 let X#18 = (1 & 2) 865 disjunction: (*〈0;let X#18〉|3) 866 } 867 } 868 --- incomprehension.cue 869 { 870 list: { 871 l: [ 872 1, 873 2, 874 3, 875 ] 876 c: [ 877 for _, v in 〈1;l〉 { 878 let X#19 = (〈1;v〉 * 4) 879 〈0;let X#19〉 880 }, 881 ] 882 } 883 referencesForDirectly: { 884 l: [ 885 1, 886 2, 887 3, 888 ] 889 for k, v in 〈0;l〉 { 890 let Y#1Amulti = (〈1;v〉 * 4) 891 "\(〈1;k〉)": 〈0;let Y#1A〉 892 } 893 } 894 referencesForViaLet: { 895 l: [ 896 1, 897 2, 898 3, 899 ] 900 for k, v in 〈0;l〉 let X = (〈0;v〉 * 4) { 901 let Y#1Bmulti = 〈1;X〉 902 "\(〈2;k〉)": 〈0;let Y#1B〉 903 } 904 } 905 letClauseReferencesInert: { 906 x: 2 907 l: [ 908 1, 909 2, 910 3, 911 ] 912 for k, v in 〈0;l〉 let X = 〈1;x〉 { 913 let Y#1C = 〈1;X〉 914 "\(〈2;k〉)": 〈0;let Y#1C〉 915 } 916 } 917 indirectReference: { 918 l: [ 919 1, 920 2, 921 3, 922 ] 923 for k, v in 〈0;l〉 { 924 y: 〈1;v〉 925 let X#1D = (〈0;y〉 * 4) 926 "\(〈1;k〉)": 〈0;let X#1D〉 927 } 928 } 929 nestedFor: { 930 for k, y in [ 931 4, 932 5, 933 ] { 934 let X#1Emulti = { 935 for _, x in [ 936 1, 937 2, 938 ] { 939 let X#1Fmulti = 〈1;x〉 940 "\(〈0;let X#1F〉)": 〈0;let X#1F〉 941 } 942 } 943 "\(〈1;k〉)": 〈0;let X#1E〉 944 } 945 } 946 } 947 --- issue2063.cue 948 { 949 keepDescending: { 950 t1: { 951 ec: {} 952 bs: { 953 let m#21 = 〈1;ec〉.b 954 if (〈0;let m#21〉 == _|_(explicit error (_|_ literal) in source)) {} 955 x: { 956 y: "" 957 } 958 } 959 } 960 } 961 keepDescending: { 962 t2: { 963 x: 〈import;"encoding/yaml"〉.Marshal(〈0;bs〉) 964 ec: {} 965 bs: { 966 let m#22 = 〈1;ec〉.b 967 if (〈0;let m#22〉.b == _|_(explicit error (_|_ literal) in source)) {} 968 X: { 969 Y: 〈import;strings〉.Join([], "") 970 } 971 } 972 } 973 } 974 } 975 --- issue2166.cue 976 { 977 letWithDynamicInComprehension: { 978 _i: { 979 a: "d" 980 b: "e" 981 } 982 for k, v in 〈0;_i〉 { 983 let T#23multi = 〈1;v〉 984 〈0;let T#23〉: "1" 985 } 986 } 987 } 988 --- issue2218.cue 989 { 990 _parent_configs: { 991 PARENT: true 992 } 993 _configs: { 994 CHILD1: { 995 property: true 996 } 997 CHILD2: { 998 property: true 999 parent: "PARENT" 1000 } 1001 } 1002 disabled_parent_test: { 1003 for k, v in 〈1;_configs〉 { 1004 let parent_config#24multi = (*〈3;_parent_configs〉[〈1;v〉.parent]|false) 1005 "\(〈1;k〉)": { 1006 parent_config: 〈1;let parent_config#24〉 1007 } 1008 } 1009 } 1010 }