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