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