1{ 2 "type": "Program", 3 "statements": [ 4 { 5 "type": "TSTypeAliasDeclaration", 6 "id": { 7 "type": "Identifier", 8 "name": "TNumberStringPair", 9 "decorators": [], 10 "loc": { 11 "start": { 12 "line": 16, 13 "column": 6, 14 "program": "nullableTuple.ets" 15 }, 16 "end": { 17 "line": 16, 18 "column": 23, 19 "program": "nullableTuple.ets" 20 } 21 } 22 }, 23 "typeAnnotation": { 24 "type": "ETSTuple", 25 "types": [ 26 { 27 "type": "ETSTypeReference", 28 "part": { 29 "type": "ETSTypeReferencePart", 30 "name": { 31 "type": "Identifier", 32 "name": "number", 33 "decorators": [], 34 "loc": { 35 "start": { 36 "line": 16, 37 "column": 27, 38 "program": "nullableTuple.ets" 39 }, 40 "end": { 41 "line": 16, 42 "column": 33, 43 "program": "nullableTuple.ets" 44 } 45 } 46 }, 47 "loc": { 48 "start": { 49 "line": 16, 50 "column": 27, 51 "program": "nullableTuple.ets" 52 }, 53 "end": { 54 "line": 16, 55 "column": 34, 56 "program": "nullableTuple.ets" 57 } 58 } 59 }, 60 "loc": { 61 "start": { 62 "line": 16, 63 "column": 27, 64 "program": "nullableTuple.ets" 65 }, 66 "end": { 67 "line": 16, 68 "column": 34, 69 "program": "nullableTuple.ets" 70 } 71 } 72 }, 73 { 74 "type": "ETSTypeReference", 75 "part": { 76 "type": "ETSTypeReferencePart", 77 "name": { 78 "type": "Identifier", 79 "name": "string", 80 "decorators": [], 81 "loc": { 82 "start": { 83 "line": 16, 84 "column": 35, 85 "program": "nullableTuple.ets" 86 }, 87 "end": { 88 "line": 16, 89 "column": 41, 90 "program": "nullableTuple.ets" 91 } 92 } 93 }, 94 "loc": { 95 "start": { 96 "line": 16, 97 "column": 35, 98 "program": "nullableTuple.ets" 99 }, 100 "end": { 101 "line": 16, 102 "column": 42, 103 "program": "nullableTuple.ets" 104 } 105 } 106 }, 107 "loc": { 108 "start": { 109 "line": 16, 110 "column": 35, 111 "program": "nullableTuple.ets" 112 }, 113 "end": { 114 "line": 16, 115 "column": 42, 116 "program": "nullableTuple.ets" 117 } 118 } 119 } 120 ], 121 "loc": { 122 "start": { 123 "line": 16, 124 "column": 26, 125 "program": "nullableTuple.ets" 126 }, 127 "end": { 128 "line": 16, 129 "column": 42, 130 "program": "nullableTuple.ets" 131 } 132 } 133 }, 134 "loc": { 135 "start": { 136 "line": 16, 137 "column": 1, 138 "program": "nullableTuple.ets" 139 }, 140 "end": { 141 "line": 16, 142 "column": 43, 143 "program": "nullableTuple.ets" 144 } 145 } 146 }, 147 { 148 "type": "TSTypeAliasDeclaration", 149 "id": { 150 "type": "Identifier", 151 "name": "TTupleUnion", 152 "decorators": [], 153 "loc": { 154 "start": { 155 "line": 17, 156 "column": 6, 157 "program": "nullableTuple.ets" 158 }, 159 "end": { 160 "line": 17, 161 "column": 17, 162 "program": "nullableTuple.ets" 163 } 164 } 165 }, 166 "typeAnnotation": { 167 "type": "ETSUnionType", 168 "types": [ 169 { 170 "type": "ETSTypeReference", 171 "part": { 172 "type": "ETSTypeReferencePart", 173 "name": { 174 "type": "Identifier", 175 "name": "TNumberStringPair", 176 "decorators": [], 177 "loc": { 178 "start": { 179 "line": 17, 180 "column": 20, 181 "program": "nullableTuple.ets" 182 }, 183 "end": { 184 "line": 17, 185 "column": 37, 186 "program": "nullableTuple.ets" 187 } 188 } 189 }, 190 "loc": { 191 "start": { 192 "line": 17, 193 "column": 20, 194 "program": "nullableTuple.ets" 195 }, 196 "end": { 197 "line": 17, 198 "column": 38, 199 "program": "nullableTuple.ets" 200 } 201 } 202 }, 203 "loc": { 204 "start": { 205 "line": 17, 206 "column": 20, 207 "program": "nullableTuple.ets" 208 }, 209 "end": { 210 "line": 17, 211 "column": 38, 212 "program": "nullableTuple.ets" 213 } 214 } 215 }, 216 { 217 "type": "ETSUndefinedType", 218 "loc": { 219 "start": { 220 "line": 17, 221 "column": 38, 222 "program": "nullableTuple.ets" 223 }, 224 "end": { 225 "line": 17, 226 "column": 47, 227 "program": "nullableTuple.ets" 228 } 229 } 230 } 231 ], 232 "loc": { 233 "start": { 234 "line": 17, 235 "column": 20, 236 "program": "nullableTuple.ets" 237 }, 238 "end": { 239 "line": 17, 240 "column": 47, 241 "program": "nullableTuple.ets" 242 } 243 } 244 }, 245 "loc": { 246 "start": { 247 "line": 17, 248 "column": 1, 249 "program": "nullableTuple.ets" 250 }, 251 "end": { 252 "line": 17, 253 "column": 48, 254 "program": "nullableTuple.ets" 255 } 256 } 257 }, 258 { 259 "type": "ClassDeclaration", 260 "definition": { 261 "id": { 262 "type": "Identifier", 263 "name": "ETSGLOBAL", 264 "decorators": [], 265 "loc": { 266 "start": { 267 "line": 1, 268 "column": 1, 269 "program": "nullableTuple.ets" 270 }, 271 "end": { 272 "line": 1, 273 "column": 1, 274 "program": "nullableTuple.ets" 275 } 276 } 277 }, 278 "superClass": null, 279 "implements": [], 280 "body": [ 281 { 282 "type": "MethodDefinition", 283 "key": { 284 "type": "Identifier", 285 "name": "_$init$_", 286 "decorators": [], 287 "loc": { 288 "start": { 289 "line": 1, 290 "column": 1, 291 "program": null 292 }, 293 "end": { 294 "line": 1, 295 "column": 1, 296 "program": null 297 } 298 } 299 }, 300 "kind": "method", 301 "accessibility": "public", 302 "static": true, 303 "optional": false, 304 "computed": false, 305 "value": { 306 "type": "FunctionExpression", 307 "function": { 308 "type": "ScriptFunction", 309 "id": { 310 "type": "Identifier", 311 "name": "_$init$_", 312 "decorators": [], 313 "loc": { 314 "start": { 315 "line": 1, 316 "column": 1, 317 "program": null 318 }, 319 "end": { 320 "line": 1, 321 "column": 1, 322 "program": null 323 } 324 } 325 }, 326 "generator": false, 327 "async": false, 328 "expression": false, 329 "params": [], 330 "body": { 331 "type": "BlockStatement", 332 "statements": [], 333 "loc": { 334 "start": { 335 "line": 1, 336 "column": 1, 337 "program": null 338 }, 339 "end": { 340 "line": 1, 341 "column": 1, 342 "program": null 343 } 344 } 345 }, 346 "loc": { 347 "start": { 348 "line": 1, 349 "column": 1, 350 "program": null 351 }, 352 "end": { 353 "line": 1, 354 "column": 1, 355 "program": null 356 } 357 } 358 }, 359 "loc": { 360 "start": { 361 "line": 1, 362 "column": 1, 363 "program": null 364 }, 365 "end": { 366 "line": 1, 367 "column": 1, 368 "program": null 369 } 370 } 371 }, 372 "overloads": [], 373 "decorators": [], 374 "loc": { 375 "start": { 376 "line": 1, 377 "column": 1, 378 "program": "nullableTuple.ets" 379 }, 380 "end": { 381 "line": 1, 382 "column": 1, 383 "program": "nullableTuple.ets" 384 } 385 } 386 }, 387 { 388 "type": "MethodDefinition", 389 "key": { 390 "type": "Identifier", 391 "name": "main", 392 "decorators": [], 393 "loc": { 394 "start": { 395 "line": 19, 396 "column": 10, 397 "program": "nullableTuple.ets" 398 }, 399 "end": { 400 "line": 19, 401 "column": 14, 402 "program": "nullableTuple.ets" 403 } 404 } 405 }, 406 "kind": "method", 407 "accessibility": "public", 408 "static": true, 409 "optional": false, 410 "computed": false, 411 "value": { 412 "type": "FunctionExpression", 413 "function": { 414 "type": "ScriptFunction", 415 "id": { 416 "type": "Identifier", 417 "name": "main", 418 "decorators": [], 419 "loc": { 420 "start": { 421 "line": 19, 422 "column": 10, 423 "program": "nullableTuple.ets" 424 }, 425 "end": { 426 "line": 19, 427 "column": 14, 428 "program": "nullableTuple.ets" 429 } 430 } 431 }, 432 "generator": false, 433 "async": false, 434 "expression": false, 435 "params": [], 436 "returnType": { 437 "type": "ETSPrimitiveType", 438 "loc": { 439 "start": { 440 "line": 19, 441 "column": 18, 442 "program": "nullableTuple.ets" 443 }, 444 "end": { 445 "line": 19, 446 "column": 22, 447 "program": "nullableTuple.ets" 448 } 449 } 450 }, 451 "body": { 452 "type": "BlockStatement", 453 "statements": [ 454 { 455 "type": "VariableDeclaration", 456 "declarations": [ 457 { 458 "type": "VariableDeclarator", 459 "id": { 460 "type": "Identifier", 461 "name": "x", 462 "typeAnnotation": { 463 "type": "ETSTypeReference", 464 "part": { 465 "type": "ETSTypeReferencePart", 466 "name": { 467 "type": "Identifier", 468 "name": "TNumberStringPair", 469 "decorators": [], 470 "loc": { 471 "start": { 472 "line": 20, 473 "column": 11, 474 "program": "nullableTuple.ets" 475 }, 476 "end": { 477 "line": 20, 478 "column": 28, 479 "program": "nullableTuple.ets" 480 } 481 } 482 }, 483 "loc": { 484 "start": { 485 "line": 20, 486 "column": 11, 487 "program": "nullableTuple.ets" 488 }, 489 "end": { 490 "line": 20, 491 "column": 30, 492 "program": "nullableTuple.ets" 493 } 494 } 495 }, 496 "loc": { 497 "start": { 498 "line": 20, 499 "column": 11, 500 "program": "nullableTuple.ets" 501 }, 502 "end": { 503 "line": 20, 504 "column": 30, 505 "program": "nullableTuple.ets" 506 } 507 } 508 }, 509 "decorators": [], 510 "loc": { 511 "start": { 512 "line": 20, 513 "column": 8, 514 "program": "nullableTuple.ets" 515 }, 516 "end": { 517 "line": 20, 518 "column": 9, 519 "program": "nullableTuple.ets" 520 } 521 } 522 }, 523 "init": { 524 "type": "ArrayExpression", 525 "elements": [ 526 { 527 "type": "NumberLiteral", 528 "value": 12, 529 "loc": { 530 "start": { 531 "line": 20, 532 "column": 32, 533 "program": "nullableTuple.ets" 534 }, 535 "end": { 536 "line": 20, 537 "column": 36, 538 "program": "nullableTuple.ets" 539 } 540 } 541 }, 542 { 543 "type": "StringLiteral", 544 "value": "Hello World", 545 "loc": { 546 "start": { 547 "line": 20, 548 "column": 38, 549 "program": "nullableTuple.ets" 550 }, 551 "end": { 552 "line": 20, 553 "column": 51, 554 "program": "nullableTuple.ets" 555 } 556 } 557 } 558 ], 559 "loc": { 560 "start": { 561 "line": 20, 562 "column": 31, 563 "program": "nullableTuple.ets" 564 }, 565 "end": { 566 "line": 20, 567 "column": 52, 568 "program": "nullableTuple.ets" 569 } 570 } 571 }, 572 "loc": { 573 "start": { 574 "line": 20, 575 "column": 8, 576 "program": "nullableTuple.ets" 577 }, 578 "end": { 579 "line": 20, 580 "column": 52, 581 "program": "nullableTuple.ets" 582 } 583 } 584 } 585 ], 586 "kind": "let", 587 "loc": { 588 "start": { 589 "line": 20, 590 "column": 4, 591 "program": "nullableTuple.ets" 592 }, 593 "end": { 594 "line": 20, 595 "column": 53, 596 "program": "nullableTuple.ets" 597 } 598 } 599 }, 600 { 601 "type": "VariableDeclaration", 602 "declarations": [ 603 { 604 "type": "VariableDeclarator", 605 "id": { 606 "type": "Identifier", 607 "name": "y", 608 "typeAnnotation": { 609 "type": "ETSTypeReference", 610 "part": { 611 "type": "ETSTypeReferencePart", 612 "name": { 613 "type": "Identifier", 614 "name": "TTupleUnion", 615 "decorators": [], 616 "loc": { 617 "start": { 618 "line": 21, 619 "column": 11, 620 "program": "nullableTuple.ets" 621 }, 622 "end": { 623 "line": 21, 624 "column": 22, 625 "program": "nullableTuple.ets" 626 } 627 } 628 }, 629 "loc": { 630 "start": { 631 "line": 21, 632 "column": 11, 633 "program": "nullableTuple.ets" 634 }, 635 "end": { 636 "line": 21, 637 "column": 24, 638 "program": "nullableTuple.ets" 639 } 640 } 641 }, 642 "loc": { 643 "start": { 644 "line": 21, 645 "column": 11, 646 "program": "nullableTuple.ets" 647 }, 648 "end": { 649 "line": 21, 650 "column": 24, 651 "program": "nullableTuple.ets" 652 } 653 } 654 }, 655 "decorators": [], 656 "loc": { 657 "start": { 658 "line": 21, 659 "column": 8, 660 "program": "nullableTuple.ets" 661 }, 662 "end": { 663 "line": 21, 664 "column": 9, 665 "program": "nullableTuple.ets" 666 } 667 } 668 }, 669 "init": { 670 "type": "UndefinedLiteral", 671 "value": "undefined", 672 "loc": { 673 "start": { 674 "line": 21, 675 "column": 25, 676 "program": "nullableTuple.ets" 677 }, 678 "end": { 679 "line": 21, 680 "column": 34, 681 "program": "nullableTuple.ets" 682 } 683 } 684 }, 685 "loc": { 686 "start": { 687 "line": 21, 688 "column": 8, 689 "program": "nullableTuple.ets" 690 }, 691 "end": { 692 "line": 21, 693 "column": 34, 694 "program": "nullableTuple.ets" 695 } 696 } 697 } 698 ], 699 "kind": "let", 700 "loc": { 701 "start": { 702 "line": 21, 703 "column": 4, 704 "program": "nullableTuple.ets" 705 }, 706 "end": { 707 "line": 21, 708 "column": 35, 709 "program": "nullableTuple.ets" 710 } 711 } 712 }, 713 { 714 "type": "ExpressionStatement", 715 "expression": { 716 "type": "CallExpression", 717 "callee": { 718 "type": "Identifier", 719 "name": "assertEQ", 720 "decorators": [], 721 "loc": { 722 "start": { 723 "line": 23, 724 "column": 4, 725 "program": "nullableTuple.ets" 726 }, 727 "end": { 728 "line": 23, 729 "column": 12, 730 "program": "nullableTuple.ets" 731 } 732 } 733 }, 734 "arguments": [ 735 { 736 "type": "MemberExpression", 737 "object": { 738 "type": "Identifier", 739 "name": "x", 740 "decorators": [], 741 "loc": { 742 "start": { 743 "line": 23, 744 "column": 13, 745 "program": "nullableTuple.ets" 746 }, 747 "end": { 748 "line": 23, 749 "column": 14, 750 "program": "nullableTuple.ets" 751 } 752 } 753 }, 754 "property": { 755 "type": "NumberLiteral", 756 "value": 0, 757 "loc": { 758 "start": { 759 "line": 23, 760 "column": 15, 761 "program": "nullableTuple.ets" 762 }, 763 "end": { 764 "line": 23, 765 "column": 16, 766 "program": "nullableTuple.ets" 767 } 768 } 769 }, 770 "computed": true, 771 "optional": false, 772 "loc": { 773 "start": { 774 "line": 23, 775 "column": 13, 776 "program": "nullableTuple.ets" 777 }, 778 "end": { 779 "line": 23, 780 "column": 17, 781 "program": "nullableTuple.ets" 782 } 783 } 784 }, 785 { 786 "type": "NumberLiteral", 787 "value": 12, 788 "loc": { 789 "start": { 790 "line": 23, 791 "column": 19, 792 "program": "nullableTuple.ets" 793 }, 794 "end": { 795 "line": 23, 796 "column": 23, 797 "program": "nullableTuple.ets" 798 } 799 } 800 } 801 ], 802 "optional": false, 803 "loc": { 804 "start": { 805 "line": 23, 806 "column": 4, 807 "program": "nullableTuple.ets" 808 }, 809 "end": { 810 "line": 23, 811 "column": 24, 812 "program": "nullableTuple.ets" 813 } 814 } 815 }, 816 "loc": { 817 "start": { 818 "line": 23, 819 "column": 4, 820 "program": "nullableTuple.ets" 821 }, 822 "end": { 823 "line": 23, 824 "column": 25, 825 "program": "nullableTuple.ets" 826 } 827 } 828 } 829 ], 830 "loc": { 831 "start": { 832 "line": 19, 833 "column": 23, 834 "program": "nullableTuple.ets" 835 }, 836 "end": { 837 "line": 24, 838 "column": 2, 839 "program": "nullableTuple.ets" 840 } 841 } 842 }, 843 "loc": { 844 "start": { 845 "line": 19, 846 "column": 10, 847 "program": "nullableTuple.ets" 848 }, 849 "end": { 850 "line": 24, 851 "column": 2, 852 "program": "nullableTuple.ets" 853 } 854 } 855 }, 856 "loc": { 857 "start": { 858 "line": 19, 859 "column": 10, 860 "program": "nullableTuple.ets" 861 }, 862 "end": { 863 "line": 24, 864 "column": 2, 865 "program": "nullableTuple.ets" 866 } 867 } 868 }, 869 "overloads": [], 870 "decorators": [], 871 "loc": { 872 "start": { 873 "line": 19, 874 "column": 1, 875 "program": "nullableTuple.ets" 876 }, 877 "end": { 878 "line": 24, 879 "column": 2, 880 "program": "nullableTuple.ets" 881 } 882 } 883 } 884 ], 885 "loc": { 886 "start": { 887 "line": 1, 888 "column": 1, 889 "program": "nullableTuple.ets" 890 }, 891 "end": { 892 "line": 1, 893 "column": 1, 894 "program": "nullableTuple.ets" 895 } 896 } 897 }, 898 "loc": { 899 "start": { 900 "line": 1, 901 "column": 1, 902 "program": "nullableTuple.ets" 903 }, 904 "end": { 905 "line": 1, 906 "column": 1, 907 "program": "nullableTuple.ets" 908 } 909 } 910 } 911 ], 912 "loc": { 913 "start": { 914 "line": 1, 915 "column": 1, 916 "program": "nullableTuple.ets" 917 }, 918 "end": { 919 "line": 25, 920 "column": 1, 921 "program": "nullableTuple.ets" 922 } 923 } 924} 925