@@ -10,7 +10,7 @@ module.exports = function defineGrammar(dialect) {
10
10
] ) ,
11
11
12
12
supertypes : ( $ , previous ) => previous . concat ( [
13
- $ . _primary_type ,
13
+ $ . primary_type ,
14
14
] ) ,
15
15
16
16
precedences : ( $ , previous ) => previous . concat ( [
@@ -48,8 +48,8 @@ module.exports = function defineGrammar(dialect) {
48
48
[ $ . readonly_type , $ . primary_expression ] ,
49
49
[ $ . type_query , $ . subscript_expression , $ . expression ] ,
50
50
[ $ . type_query , $ . _type_query_subscript_expression ] ,
51
- [ $ . nested_type_identifier , $ . generic_type , $ . _primary_type , $ . lookup_type , $ . index_type_query , $ . _type ] ,
52
- [ $ . as_expression , $ . satisfies_expression , $ . _primary_type ] ,
51
+ [ $ . nested_type_identifier , $ . generic_type , $ . primary_type , $ . lookup_type , $ . index_type_query , $ . _type ] ,
52
+ [ $ . as_expression , $ . satisfies_expression , $ . primary_type ] ,
53
53
[ $ . _type_query_member_expression , $ . member_expression ] ,
54
54
[ $ . member_expression , $ . _type_query_member_expression_in_type_annotation ] ,
55
55
[ $ . _type_query_member_expression , $ . primary_expression ] ,
@@ -84,24 +84,20 @@ module.exports = function defineGrammar(dialect) {
84
84
[ $ . _call_signature , $ . function_type ] ,
85
85
[ $ . _call_signature , $ . constructor_type ] ,
86
86
87
- [ $ . _primary_type , $ . type_parameter ] ,
88
- [ $ . jsx_opening_element , $ . type_parameter ] ,
89
- [ $ . jsx_namespace_name , $ . _primary_type ] ,
90
-
91
87
[ $ . primary_expression , $ . _parameter_name ] ,
92
- [ $ . primary_expression , $ . _parameter_name , $ . _primary_type ] ,
88
+ [ $ . primary_expression , $ . _parameter_name , $ . primary_type ] ,
93
89
[ $ . primary_expression , $ . literal_type ] ,
94
90
[ $ . primary_expression , $ . literal_type , $ . rest_pattern ] ,
95
91
[ $ . primary_expression , $ . predefined_type , $ . rest_pattern ] ,
96
- [ $ . primary_expression , $ . _primary_type ] ,
92
+ [ $ . primary_expression , $ . primary_type ] ,
97
93
[ $ . primary_expression , $ . generic_type ] ,
98
94
[ $ . primary_expression , $ . predefined_type ] ,
99
- [ $ . primary_expression , $ . pattern , $ . _primary_type ] ,
100
- [ $ . _parameter_name , $ . _primary_type ] ,
101
- [ $ . pattern , $ . _primary_type ] ,
95
+ [ $ . primary_expression , $ . pattern , $ . primary_type ] ,
96
+ [ $ . _parameter_name , $ . primary_type ] ,
97
+ [ $ . pattern , $ . primary_type ] ,
102
98
103
- [ $ . optional_tuple_parameter , $ . _primary_type ] ,
104
- [ $ . rest_pattern , $ . _primary_type , $ . primary_expression ] ,
99
+ [ $ . optional_tuple_parameter , $ . primary_type ] ,
100
+ [ $ . rest_pattern , $ . primary_type , $ . primary_expression ] ,
105
101
106
102
[ $ . object , $ . object_type ] ,
107
103
[ $ . object , $ . object_pattern , $ . object_type ] ,
@@ -114,7 +110,14 @@ module.exports = function defineGrammar(dialect) {
114
110
[ $ . array_pattern , $ . tuple_type ] ,
115
111
116
112
[ $ . template_literal_type , $ . template_string ] ,
117
- ] ) ,
113
+ ] ) . concat (
114
+ dialect === 'typescript' ? [
115
+ [ $ . primary_type , $ . type_parameter ] ,
116
+ ] : [
117
+ [ $ . jsx_opening_element , $ . type_parameter ] ,
118
+ [ $ . jsx_namespace_name , $ . primary_type ] ,
119
+ ] ,
120
+ ) ,
118
121
119
122
inline : ( $ , previous ) => previous
120
123
. filter ( ( rule ) => ! [
@@ -693,7 +696,7 @@ module.exports = function defineGrammar(dialect) {
693
696
) ,
694
697
695
698
_type : ( $ ) => choice (
696
- $ . _primary_type ,
699
+ $ . primary_type ,
697
700
$ . function_type ,
698
701
$ . readonly_type ,
699
702
$ . constructor_type ,
@@ -731,7 +734,7 @@ module.exports = function defineGrammar(dialect) {
731
734
field ( 'type' , $ . _type ) ,
732
735
) ) ,
733
736
734
- _primary_type : ( $ ) => choice (
737
+ primary_type : ( $ ) => choice (
735
738
$ . parenthesized_type ,
736
739
$ . predefined_type ,
737
740
$ . _type_identifier ,
@@ -754,7 +757,7 @@ module.exports = function defineGrammar(dialect) {
754
757
'const' ,
755
758
) ,
756
759
757
- template_type : ( $ ) => seq ( '${' , choice ( $ . _primary_type , $ . infer_type ) , '}' ) ,
760
+ template_type : ( $ ) => seq ( '${' , choice ( $ . primary_type , $ . infer_type ) , '}' ) ,
758
761
759
762
template_literal_type : ( $ ) => seq (
760
763
'`' ,
@@ -866,11 +869,11 @@ module.exports = function defineGrammar(dialect) {
866
869
867
870
index_type_query : ( $ ) => seq (
868
871
'keyof' ,
869
- $ . _primary_type ,
872
+ $ . primary_type ,
870
873
) ,
871
874
872
875
lookup_type : ( $ ) => seq (
873
- $ . _primary_type ,
876
+ $ . primary_type ,
874
877
'[' ,
875
878
$ . _type ,
876
879
']' ,
@@ -900,7 +903,7 @@ module.exports = function defineGrammar(dialect) {
900
903
901
904
existential_type : ( _ ) => '*' ,
902
905
903
- flow_maybe_type : ( $ ) => prec . right ( seq ( '?' , $ . _primary_type ) ) ,
906
+ flow_maybe_type : ( $ ) => prec . right ( seq ( '?' , $ . primary_type ) ) ,
904
907
905
908
parenthesized_type : ( $ ) => seq ( '(' , $ . _type , ')' ) ,
906
909
@@ -1026,7 +1029,7 @@ module.exports = function defineGrammar(dialect) {
1026
1029
) ) ,
1027
1030
) ,
1028
1031
1029
- array_type : ( $ ) => seq ( $ . _primary_type , '[' , ']' ) ,
1032
+ array_type : ( $ ) => seq ( $ . primary_type , '[' , ']' ) ,
1030
1033
tuple_type : ( $ ) => seq (
1031
1034
'[' , commaSep ( $ . _tuple_type_member ) , optional ( ',' ) , ']' ,
1032
1035
) ,
0 commit comments