Commit c6a520f
authored
feat: add TypeScript-style array shorthand syntax
* feat: add TypeScript-style array shorthand syntax `T[]`
- Add `String[]` as alternative to `Array<String>`
- Support nested arrays: `Integer[][]` → `Array[Array[Integer]]`
- Support nullable arrays: `String[]?` → `(Array[String] | nil)`
- Support arrays of nullable elements: `String?[]` → `Array[String?]`
- Support union type arrays: `(String | Integer)[]`
- Both syntaxes produce identical IR and RBS output
- Add parse_postfix_type_operators for `[]` and `?` suffix handling
- Add comprehensive unit tests (15 cases) and E2E tests (14 cases)
- Update README examples to show new syntax
* Update Gemfile.lock
* fix: restore Gemfile.lock with listen gem for CI compatibility
Ruby 4.0 skips listen gem installation, but CI runs on Ruby 3.x which
requires it. Restore the original Gemfile.lock from main branch.
* refactor: remove unused legacy type parsing code from IR::Builder
TypeParser now handles all type parsing including:
- Simple types, generics, array shorthand, union, intersection, function types
Remove legacy fallback code that was never executed, improving code coverage.T[] (#36)1 parent 2df43ca commit c6a520f
File tree
8 files changed
+919
-82
lines changed- lib/t_ruby
- parser_combinator
- token
- spec
- e2e
- t_ruby
8 files changed
+919
-82
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
238 | 238 | | |
239 | 239 | | |
240 | 240 | | |
241 | | - | |
| 241 | + | |
242 | 242 | | |
243 | 243 | | |
244 | 244 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
238 | 238 | | |
239 | 239 | | |
240 | 240 | | |
241 | | - | |
| 241 | + | |
242 | 242 | | |
243 | 243 | | |
244 | 244 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
246 | | - | |
| 246 | + | |
247 | 247 | | |
248 | 248 | | |
249 | 249 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
646 | 646 | | |
647 | 647 | | |
648 | 648 | | |
649 | | - | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
650 | 656 | | |
651 | 657 | | |
652 | 658 | | |
| |||
829 | 835 | | |
830 | 836 | | |
831 | 837 | | |
| 838 | + | |
832 | 839 | | |
833 | | - | |
834 | | - | |
835 | | - | |
836 | | - | |
837 | | - | |
838 | | - | |
839 | | - | |
840 | | - | |
841 | | - | |
842 | | - | |
843 | | - | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
844 | 845 | | |
845 | | - | |
846 | | - | |
847 | | - | |
848 | | - | |
849 | | - | |
850 | | - | |
851 | | - | |
852 | | - | |
853 | | - | |
854 | | - | |
855 | | - | |
856 | | - | |
857 | | - | |
858 | | - | |
859 | | - | |
860 | | - | |
861 | | - | |
862 | | - | |
863 | | - | |
864 | | - | |
865 | | - | |
866 | | - | |
867 | | - | |
868 | | - | |
869 | | - | |
870 | | - | |
871 | | - | |
| 846 | + | |
872 | 847 | | |
873 | 848 | | |
874 | | - | |
875 | | - | |
876 | | - | |
877 | | - | |
878 | | - | |
879 | | - | |
880 | | - | |
881 | | - | |
882 | | - | |
883 | | - | |
884 | | - | |
885 | | - | |
886 | | - | |
887 | | - | |
888 | | - | |
889 | | - | |
890 | | - | |
891 | | - | |
892 | | - | |
893 | | - | |
894 | | - | |
895 | | - | |
896 | | - | |
897 | | - | |
898 | | - | |
899 | | - | |
900 | | - | |
901 | | - | |
902 | | - | |
903 | 849 | | |
904 | 850 | | |
905 | 851 | | |
| |||
Lines changed: 50 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
781 | 781 | | |
782 | 782 | | |
783 | 783 | | |
| 784 | + | |
784 | 785 | | |
785 | 786 | | |
786 | 787 | | |
| |||
811 | 812 | | |
812 | 813 | | |
813 | 814 | | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
814 | 820 | | |
815 | 821 | | |
816 | 822 | | |
| |||
826 | 832 | | |
827 | 833 | | |
828 | 834 | | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
829 | 842 | | |
830 | 843 | | |
831 | 844 | | |
| |||
848 | 861 | | |
849 | 862 | | |
850 | 863 | | |
851 | | - | |
852 | | - | |
853 | | - | |
854 | | - | |
855 | | - | |
856 | | - | |
857 | | - | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
858 | 868 | | |
| 869 | + | |
859 | 870 | | |
860 | | - | |
| 871 | + | |
| 872 | + | |
| 873 | + | |
| 874 | + | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
861 | 901 | | |
| 902 | + | |
| 903 | + | |
862 | 904 | | |
863 | 905 | | |
864 | 906 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
81 | 81 | | |
82 | 82 | | |
83 | 83 | | |
84 | | - | |
85 | | - | |
86 | | - | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
87 | 102 | | |
88 | 103 | | |
89 | 104 | | |
| |||
0 commit comments