cuelang.org/go@v0.13.0/cue/testdata/definitions/issue3834.txtar (about) 1 -- in.cue -- 2 // expose at top level 3 X: { 4 _a: foo: true 5 _a: _ | close({y!: z?: _}) 6 _b: _a & {y: {}} 7 concrete: _b.y 8 isTrue: concrete != _|_ 9 } 10 {X} 11 12 sub: t1: { 13 X: { 14 _a: foo: true 15 _a: _ | close({y!: z?: _}) 16 _b: _a & {y: {}} 17 concrete: _b.y 18 } 19 {X} 20 } 21 sub: t2: { 22 X: { 23 _a: foo: true 24 _a: _ | close({y!: z?: _}) 25 _b: _a & {y: {}} 26 concrete: _b.y 27 } 28 X 29 } 30 sub: t3: { 31 #X: { 32 _a: foo: true 33 _a: _ | close({y!: z?: _}) 34 _b: _a & {y: {}} 35 concrete: _b.y 36 } 37 {#X} 38 } 39 sub: t4: { 40 #X: { 41 _a: foo: true 42 _a: _ | close({y!: z?: _}) 43 _b: _a & {y: {}} 44 concrete: _b.y 45 } 46 #X 47 } 48 49 full: { 50 #Foo: { 51 _data: Foo: true 52 _data: _ | close({Extra!: optional?: _}) 53 54 _dataWithExtra: _data & {Extra: {}} 55 56 out: _dataWithExtra.Extra != _|_ 57 } 58 59 {#Foo} 60 } 61 -- out/evalalpha/stats -- 62 Leaks: 339 63 Freed: 0 64 Reused: 0 65 Allocs: 339 66 Retain: 0 67 68 Unifications: 171 69 Conjuncts: 322 70 Disjuncts: 48 71 72 CloseIDElems: 1109 73 NumCloseIDs: 88 74 -- diff/-out/evalalpha/stats<==>+out/eval/stats -- 75 diff old new 76 --- old 77 +++ new 78 @@ -1,9 +1,12 @@ 79 -Leaks: 24 80 -Freed: 207 81 -Reused: 200 82 -Allocs: 31 83 -Retain: 30 84 - 85 -Unifications: 183 86 -Conjuncts: 344 87 -Disjuncts: 237 88 +Leaks: 339 89 +Freed: 0 90 +Reused: 0 91 +Allocs: 339 92 +Retain: 0 93 + 94 +Unifications: 171 95 +Conjuncts: 322 96 +Disjuncts: 48 97 + 98 +CloseIDElems: 1109 99 +NumCloseIDs: 88 100 -- out/eval/stats -- 101 Leaks: 24 102 Freed: 207 103 Reused: 200 104 Allocs: 31 105 Retain: 30 106 107 Unifications: 183 108 Conjuncts: 344 109 Disjuncts: 237 110 -- out/evalalpha -- 111 (struct){ 112 X: (struct){ 113 _a: (struct){ 114 foo: (bool){ true } 115 } 116 _b: (struct){ 117 y: (struct){ 118 } 119 foo: (bool){ true } 120 } 121 concrete: (struct){ 122 } 123 isTrue: (bool){ true } 124 } 125 sub: (struct){ 126 t1: (struct){ 127 X: (struct){ 128 _a: (struct){ 129 foo: (bool){ true } 130 } 131 _b: (struct){ 132 y: (struct){ 133 } 134 foo: (bool){ true } 135 } 136 concrete: (struct){ 137 } 138 } 139 _a: (struct){ 140 foo: (bool){ true } 141 } 142 _b: (struct){ 143 y: (struct){ 144 } 145 foo: (bool){ true } 146 } 147 concrete: (struct){ 148 } 149 } 150 t2: (struct){ 151 X: (struct){ 152 _a: (struct){ 153 foo: (bool){ true } 154 } 155 _b: (struct){ 156 y: (struct){ 157 } 158 foo: (bool){ true } 159 } 160 concrete: (struct){ 161 } 162 } 163 _a: (struct){ 164 foo: (bool){ true } 165 } 166 _b: (struct){ 167 y: (struct){ 168 } 169 foo: (bool){ true } 170 } 171 concrete: (struct){ 172 } 173 } 174 t3: (#struct){ 175 #X: (#struct){ 176 _a: (#struct){ 177 foo: (bool){ true } 178 } 179 _b: (#struct){ 180 y: (#struct){ 181 } 182 foo: (bool){ true } 183 } 184 concrete: (#struct){ 185 } 186 } 187 _a: (#struct){ 188 foo: (bool){ true } 189 } 190 _b: (#struct){ 191 y: (#struct){ 192 } 193 foo: (bool){ true } 194 } 195 concrete: (#struct){ 196 } 197 } 198 t4: (#struct){ 199 #X: (#struct){ 200 _a: (#struct){ 201 foo: (bool){ true } 202 } 203 _b: (#struct){ 204 y: (#struct){ 205 } 206 foo: (bool){ true } 207 } 208 concrete: (#struct){ 209 } 210 } 211 _a: (#struct){ 212 foo: (bool){ true } 213 } 214 _b: (#struct){ 215 y: (#struct){ 216 } 217 foo: (bool){ true } 218 } 219 concrete: (#struct){ 220 } 221 } 222 } 223 full: (#struct){ 224 #Foo: (#struct){ 225 _data: (#struct){ 226 Foo: (bool){ true } 227 } 228 _dataWithExtra: (#struct){ 229 Extra: (#struct){ 230 } 231 Foo: (bool){ true } 232 } 233 out: (bool){ true } 234 } 235 _data: (#struct){ 236 Foo: (bool){ true } 237 } 238 _dataWithExtra: (#struct){ 239 Extra: (#struct){ 240 } 241 Foo: (bool){ true } 242 } 243 out: (bool){ true } 244 } 245 _a: (struct){ 246 foo: (bool){ true } 247 } 248 _b: (struct){ 249 y: (struct){ 250 } 251 foo: (bool){ true } 252 } 253 concrete: (struct){ 254 } 255 isTrue: (bool){ true } 256 } 257 -- diff/-out/evalalpha<==>+out/eval -- 258 diff old new 259 --- old 260 +++ new 261 @@ -4,25 +4,14 @@ 262 foo: (bool){ true } 263 } 264 _b: (struct){ 265 - foo: (bool){ true } 266 y: (struct){ 267 } 268 + foo: (bool){ true } 269 } 270 concrete: (struct){ 271 } 272 isTrue: (bool){ true } 273 } 274 - _a: (struct){ 275 - foo: (bool){ true } 276 - } 277 - _b: (struct){ 278 - foo: (bool){ true } 279 - y: (struct){ 280 - } 281 - } 282 - concrete: (struct){ 283 - } 284 - isTrue: (bool){ true } 285 sub: (struct){ 286 t1: (struct){ 287 X: (struct){ 288 @@ -30,20 +19,20 @@ 289 foo: (bool){ true } 290 } 291 _b: (struct){ 292 - foo: (bool){ true } 293 - y: (struct){ 294 - } 295 - } 296 - concrete: (struct){ 297 - } 298 - } 299 - _a: (struct){ 300 - foo: (bool){ true } 301 - } 302 - _b: (struct){ 303 - foo: (bool){ true } 304 - y: (struct){ 305 - } 306 + y: (struct){ 307 + } 308 + foo: (bool){ true } 309 + } 310 + concrete: (struct){ 311 + } 312 + } 313 + _a: (struct){ 314 + foo: (bool){ true } 315 + } 316 + _b: (struct){ 317 + y: (struct){ 318 + } 319 + foo: (bool){ true } 320 } 321 concrete: (struct){ 322 } 323 @@ -54,20 +43,20 @@ 324 foo: (bool){ true } 325 } 326 _b: (struct){ 327 - foo: (bool){ true } 328 - y: (struct){ 329 - } 330 - } 331 - concrete: (struct){ 332 - } 333 - } 334 - _a: (struct){ 335 - foo: (bool){ true } 336 - } 337 - _b: (struct){ 338 - foo: (bool){ true } 339 - y: (struct){ 340 - } 341 + y: (struct){ 342 + } 343 + foo: (bool){ true } 344 + } 345 + concrete: (struct){ 346 + } 347 + } 348 + _a: (struct){ 349 + foo: (bool){ true } 350 + } 351 + _b: (struct){ 352 + y: (struct){ 353 + } 354 + foo: (bool){ true } 355 } 356 concrete: (struct){ 357 } 358 @@ -78,20 +67,20 @@ 359 foo: (bool){ true } 360 } 361 _b: (#struct){ 362 - foo: (bool){ true } 363 - y: (#struct){ 364 - } 365 - } 366 - concrete: (#struct){ 367 - } 368 - } 369 - _a: (#struct){ 370 - foo: (bool){ true } 371 - } 372 - _b: (#struct){ 373 - foo: (bool){ true } 374 - y: (#struct){ 375 - } 376 + y: (#struct){ 377 + } 378 + foo: (bool){ true } 379 + } 380 + concrete: (#struct){ 381 + } 382 + } 383 + _a: (#struct){ 384 + foo: (bool){ true } 385 + } 386 + _b: (#struct){ 387 + y: (#struct){ 388 + } 389 + foo: (bool){ true } 390 } 391 concrete: (#struct){ 392 } 393 @@ -102,20 +91,20 @@ 394 foo: (bool){ true } 395 } 396 _b: (#struct){ 397 - foo: (bool){ true } 398 - y: (#struct){ 399 - } 400 - } 401 - concrete: (#struct){ 402 - } 403 - } 404 - _a: (#struct){ 405 - foo: (bool){ true } 406 - } 407 - _b: (#struct){ 408 - foo: (bool){ true } 409 - y: (#struct){ 410 - } 411 + y: (#struct){ 412 + } 413 + foo: (bool){ true } 414 + } 415 + concrete: (#struct){ 416 + } 417 + } 418 + _a: (#struct){ 419 + foo: (bool){ true } 420 + } 421 + _b: (#struct){ 422 + y: (#struct){ 423 + } 424 + foo: (bool){ true } 425 } 426 concrete: (#struct){ 427 } 428 @@ -127,9 +116,9 @@ 429 Foo: (bool){ true } 430 } 431 _dataWithExtra: (#struct){ 432 - Foo: (bool){ true } 433 Extra: (#struct){ 434 } 435 + Foo: (bool){ true } 436 } 437 out: (bool){ true } 438 } 439 @@ -137,10 +126,21 @@ 440 Foo: (bool){ true } 441 } 442 _dataWithExtra: (#struct){ 443 - Foo: (bool){ true } 444 Extra: (#struct){ 445 } 446 + Foo: (bool){ true } 447 } 448 out: (bool){ true } 449 } 450 + _a: (struct){ 451 + foo: (bool){ true } 452 + } 453 + _b: (struct){ 454 + y: (struct){ 455 + } 456 + foo: (bool){ true } 457 + } 458 + concrete: (struct){ 459 + } 460 + isTrue: (bool){ true } 461 } 462 -- out/eval -- 463 (struct){ 464 X: (struct){ 465 _a: (struct){ 466 foo: (bool){ true } 467 } 468 _b: (struct){ 469 foo: (bool){ true } 470 y: (struct){ 471 } 472 } 473 concrete: (struct){ 474 } 475 isTrue: (bool){ true } 476 } 477 _a: (struct){ 478 foo: (bool){ true } 479 } 480 _b: (struct){ 481 foo: (bool){ true } 482 y: (struct){ 483 } 484 } 485 concrete: (struct){ 486 } 487 isTrue: (bool){ true } 488 sub: (struct){ 489 t1: (struct){ 490 X: (struct){ 491 _a: (struct){ 492 foo: (bool){ true } 493 } 494 _b: (struct){ 495 foo: (bool){ true } 496 y: (struct){ 497 } 498 } 499 concrete: (struct){ 500 } 501 } 502 _a: (struct){ 503 foo: (bool){ true } 504 } 505 _b: (struct){ 506 foo: (bool){ true } 507 y: (struct){ 508 } 509 } 510 concrete: (struct){ 511 } 512 } 513 t2: (struct){ 514 X: (struct){ 515 _a: (struct){ 516 foo: (bool){ true } 517 } 518 _b: (struct){ 519 foo: (bool){ true } 520 y: (struct){ 521 } 522 } 523 concrete: (struct){ 524 } 525 } 526 _a: (struct){ 527 foo: (bool){ true } 528 } 529 _b: (struct){ 530 foo: (bool){ true } 531 y: (struct){ 532 } 533 } 534 concrete: (struct){ 535 } 536 } 537 t3: (#struct){ 538 #X: (#struct){ 539 _a: (#struct){ 540 foo: (bool){ true } 541 } 542 _b: (#struct){ 543 foo: (bool){ true } 544 y: (#struct){ 545 } 546 } 547 concrete: (#struct){ 548 } 549 } 550 _a: (#struct){ 551 foo: (bool){ true } 552 } 553 _b: (#struct){ 554 foo: (bool){ true } 555 y: (#struct){ 556 } 557 } 558 concrete: (#struct){ 559 } 560 } 561 t4: (#struct){ 562 #X: (#struct){ 563 _a: (#struct){ 564 foo: (bool){ true } 565 } 566 _b: (#struct){ 567 foo: (bool){ true } 568 y: (#struct){ 569 } 570 } 571 concrete: (#struct){ 572 } 573 } 574 _a: (#struct){ 575 foo: (bool){ true } 576 } 577 _b: (#struct){ 578 foo: (bool){ true } 579 y: (#struct){ 580 } 581 } 582 concrete: (#struct){ 583 } 584 } 585 } 586 full: (#struct){ 587 #Foo: (#struct){ 588 _data: (#struct){ 589 Foo: (bool){ true } 590 } 591 _dataWithExtra: (#struct){ 592 Foo: (bool){ true } 593 Extra: (#struct){ 594 } 595 } 596 out: (bool){ true } 597 } 598 _data: (#struct){ 599 Foo: (bool){ true } 600 } 601 _dataWithExtra: (#struct){ 602 Foo: (bool){ true } 603 Extra: (#struct){ 604 } 605 } 606 out: (bool){ true } 607 } 608 } 609 -- out/compile -- 610 --- in.cue 611 { 612 X: { 613 _a: { 614 foo: true 615 } 616 _a: (_|close({ 617 y!: { 618 z?: _ 619 } 620 })) 621 _b: (〈0;_a〉 & { 622 y: {} 623 }) 624 concrete: 〈0;_b〉.y 625 isTrue: (〈0;concrete〉 != _|_(explicit error (_|_ literal) in source)) 626 } 627 { 628 〈1;X〉 629 } 630 sub: { 631 t1: { 632 X: { 633 _a: { 634 foo: true 635 } 636 _a: (_|close({ 637 y!: { 638 z?: _ 639 } 640 })) 641 _b: (〈0;_a〉 & { 642 y: {} 643 }) 644 concrete: 〈0;_b〉.y 645 } 646 { 647 〈1;X〉 648 } 649 } 650 } 651 sub: { 652 t2: { 653 X: { 654 _a: { 655 foo: true 656 } 657 _a: (_|close({ 658 y!: { 659 z?: _ 660 } 661 })) 662 _b: (〈0;_a〉 & { 663 y: {} 664 }) 665 concrete: 〈0;_b〉.y 666 } 667 〈0;X〉 668 } 669 } 670 sub: { 671 t3: { 672 #X: { 673 _a: { 674 foo: true 675 } 676 _a: (_|close({ 677 y!: { 678 z?: _ 679 } 680 })) 681 _b: (〈0;_a〉 & { 682 y: {} 683 }) 684 concrete: 〈0;_b〉.y 685 } 686 { 687 〈1;#X〉 688 } 689 } 690 } 691 sub: { 692 t4: { 693 #X: { 694 _a: { 695 foo: true 696 } 697 _a: (_|close({ 698 y!: { 699 z?: _ 700 } 701 })) 702 _b: (〈0;_a〉 & { 703 y: {} 704 }) 705 concrete: 〈0;_b〉.y 706 } 707 〈0;#X〉 708 } 709 } 710 full: { 711 #Foo: { 712 _data: { 713 Foo: true 714 } 715 _data: (_|close({ 716 Extra!: { 717 optional?: _ 718 } 719 })) 720 _dataWithExtra: (〈0;_data〉 & { 721 Extra: {} 722 }) 723 out: (〈0;_dataWithExtra〉.Extra != _|_(explicit error (_|_ literal) in source)) 724 } 725 { 726 〈1;#Foo〉 727 } 728 } 729 }