Commit 5d5b4b3
committed
fix!: allow JSDoc-style type expressions only if support is enabled
A Peggy grammar can specify an _action_ to run when a rule matches the input string. Catharsis's grammar uses these actions to build an AST for each type expression.
In some cases, we need a rule to match some construct, then void the match if JSDoc-style types are not enabled. Apparently I thought that you can undo the match by returning `null` from the action. In reality, `null` doesn't work that way. As a result, we've been allowing at least some JSDoc-specific constructs even when JSDoc-style types aren't enabled.
Instead of returning `null`, we now use Peggy's `error()` function to complain about these constructs when JSDoc-style types aren't enabled. We also now have tests to confirm that JSDoc-style types can be parsed only when they're enabled.
I'm calling this a breaking change because, if JSDoc-style types aren't enabled, then some type expressions that we used to allow are now prohibited. To fix this breakage, enable JSDoc-style types, or update the prohibited type expressions.1 parent 25339f1 commit 5d5b4b3
6 files changed
Lines changed: 293 additions & 260 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
30 | 39 | | |
31 | 40 | | |
32 | 41 | | |
| |||
428 | 437 | | |
429 | 438 | | |
430 | 439 | | |
431 | | - | |
432 | 440 | | |
433 | | - | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
434 | 445 | | |
435 | 446 | | |
436 | 447 | | |
| |||
511 | 522 | | |
512 | 523 | | |
513 | 524 | | |
514 | | - | |
| 525 | + | |
515 | 526 | | |
516 | 527 | | |
517 | 528 | | |
| |||
576 | 587 | | |
577 | 588 | | |
578 | 589 | | |
579 | | - | |
580 | 590 | | |
581 | | - | |
| 591 | + | |
582 | 592 | | |
583 | 593 | | |
584 | 594 | | |
| |||
598 | 608 | | |
599 | 609 | | |
600 | 610 | | |
601 | | - | |
602 | 611 | | |
603 | | - | |
| 612 | + | |
604 | 613 | | |
605 | 614 | | |
606 | 615 | | |
| |||
801 | 810 | | |
802 | 811 | | |
803 | 812 | | |
804 | | - | |
| 813 | + | |
805 | 814 | | |
806 | 815 | | |
807 | 816 | | |
808 | 817 | | |
809 | 818 | | |
810 | 819 | | |
811 | | - | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
812 | 823 | | |
813 | 824 | | |
814 | 825 | | |
| |||
817 | 828 | | |
818 | 829 | | |
819 | 830 | | |
820 | | - | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
821 | 834 | | |
822 | 835 | | |
823 | 836 | | |
| |||
845 | 858 | | |
846 | 859 | | |
847 | 860 | | |
848 | | - | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
849 | 865 | | |
850 | 866 | | |
851 | 867 | | |
852 | 868 | | |
853 | 869 | | |
854 | 870 | | |
855 | 871 | | |
856 | | - | |
| 872 | + | |
857 | 873 | | |
858 | 874 | | |
859 | 875 | | |
| |||
862 | 878 | | |
863 | 879 | | |
864 | 880 | | |
865 | | - | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
866 | 884 | | |
867 | 885 | | |
868 | 886 | | |
| |||
5029 | 5047 | | |
5030 | 5048 | | |
5031 | 5049 | | |
| 5050 | + | |
| 5051 | + | |
| 5052 | + | |
| 5053 | + | |
| 5054 | + | |
5032 | 5055 | | |
5033 | 5056 | | |
5034 | 5057 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| 12 | + | |
12 | 13 | | |
13 | 14 | | |
14 | 15 | | |
| |||
31 | 32 | | |
32 | 33 | | |
33 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
34 | 44 | | |
35 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
36 | 53 | | |
37 | 54 | | |
38 | 55 | | |
| |||
56 | 73 | | |
57 | 74 | | |
58 | 75 | | |
59 | | - | |
60 | 76 | | |
61 | | - | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
62 | 81 | | |
63 | 82 | | |
64 | 83 | | |
| |||
188 | 207 | | |
189 | 208 | | |
190 | 209 | | |
191 | | - | |
| 210 | + | |
192 | 211 | | |
193 | 212 | | |
194 | 213 | | |
| |||
277 | 296 | | |
278 | 297 | | |
279 | 298 | | |
280 | | - | |
281 | 299 | | |
282 | | - | |
| 300 | + | |
283 | 301 | | |
284 | 302 | | |
285 | 303 | | |
| |||
299 | 317 | | |
300 | 318 | | |
301 | 319 | | |
302 | | - | |
303 | 320 | | |
304 | | - | |
| 321 | + | |
305 | 322 | | |
306 | 323 | | |
307 | 324 | | |
| |||
560 | 577 | | |
561 | 578 | | |
562 | 579 | | |
563 | | - | |
| 580 | + | |
564 | 581 | | |
565 | 582 | | |
566 | 583 | | |
| |||
569 | 586 | | |
570 | 587 | | |
571 | 588 | | |
572 | | - | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
573 | 592 | | |
574 | 593 | | |
575 | 594 | | |
| |||
578 | 597 | | |
579 | 598 | | |
580 | 599 | | |
581 | | - | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
582 | 603 | | |
583 | 604 | | |
584 | 605 | | |
| |||
620 | 641 | | |
621 | 642 | | |
622 | 643 | | |
623 | | - | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
624 | 648 | | |
625 | 649 | | |
626 | 650 | | |
| |||
657 | 681 | | |
658 | 682 | | |
659 | 683 | | |
660 | | - | |
| 684 | + | |
661 | 685 | | |
662 | 686 | | |
663 | 687 | | |
| |||
666 | 690 | | |
667 | 691 | | |
668 | 692 | | |
669 | | - | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
670 | 696 | | |
671 | 697 | | |
672 | 698 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
60 | 78 | | |
61 | 79 | | |
62 | 80 | | |
| |||
74 | 92 | | |
75 | 93 | | |
76 | 94 | | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
77 | 101 | | |
78 | 102 | | |
| 103 | + | |
79 | 104 | | |
80 | 105 | | |
0 commit comments