@@ -10,7 +10,7 @@ module.exports = function defineGrammar(dialect) {
1010 ] ) ,
1111
1212 supertypes : ( $ , previous ) => previous . concat ( [
13- $ . _primary_type ,
13+ $ . primary_type ,
1414 ] ) ,
1515
1616 precedences : ( $ , previous ) => previous . concat ( [
@@ -48,8 +48,8 @@ module.exports = function defineGrammar(dialect) {
4848 [ $ . readonly_type , $ . primary_expression ] ,
4949 [ $ . type_query , $ . subscript_expression , $ . expression ] ,
5050 [ $ . 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 ] ,
5353 [ $ . _type_query_member_expression , $ . member_expression ] ,
5454 [ $ . member_expression , $ . _type_query_member_expression_in_type_annotation ] ,
5555 [ $ . _type_query_member_expression , $ . primary_expression ] ,
@@ -84,24 +84,20 @@ module.exports = function defineGrammar(dialect) {
8484 [ $ . _call_signature , $ . function_type ] ,
8585 [ $ . _call_signature , $ . constructor_type ] ,
8686
87- [ $ . _primary_type , $ . type_parameter ] ,
88- [ $ . jsx_opening_element , $ . type_parameter ] ,
89- [ $ . jsx_namespace_name , $ . _primary_type ] ,
90-
9187 [ $ . primary_expression , $ . _parameter_name ] ,
92- [ $ . primary_expression , $ . _parameter_name , $ . _primary_type ] ,
88+ [ $ . primary_expression , $ . _parameter_name , $ . primary_type ] ,
9389 [ $ . primary_expression , $ . literal_type ] ,
9490 [ $ . primary_expression , $ . literal_type , $ . rest_pattern ] ,
9591 [ $ . primary_expression , $ . predefined_type , $ . rest_pattern ] ,
96- [ $ . primary_expression , $ . _primary_type ] ,
92+ [ $ . primary_expression , $ . primary_type ] ,
9793 [ $ . primary_expression , $ . generic_type ] ,
9894 [ $ . 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 ] ,
10298
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 ] ,
105101
106102 [ $ . object , $ . object_type ] ,
107103 [ $ . object , $ . object_pattern , $ . object_type ] ,
@@ -114,7 +110,14 @@ module.exports = function defineGrammar(dialect) {
114110 [ $ . array_pattern , $ . tuple_type ] ,
115111
116112 [ $ . 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+ ) ,
118121
119122 inline : ( $ , previous ) => previous
120123 . filter ( ( rule ) => ! [
@@ -693,7 +696,7 @@ module.exports = function defineGrammar(dialect) {
693696 ) ,
694697
695698 _type : ( $ ) => choice (
696- $ . _primary_type ,
699+ $ . primary_type ,
697700 $ . function_type ,
698701 $ . readonly_type ,
699702 $ . constructor_type ,
@@ -731,7 +734,7 @@ module.exports = function defineGrammar(dialect) {
731734 field ( 'type' , $ . _type ) ,
732735 ) ) ,
733736
734- _primary_type : ( $ ) => choice (
737+ primary_type : ( $ ) => choice (
735738 $ . parenthesized_type ,
736739 $ . predefined_type ,
737740 $ . _type_identifier ,
@@ -754,7 +757,7 @@ module.exports = function defineGrammar(dialect) {
754757 'const' ,
755758 ) ,
756759
757- template_type : ( $ ) => seq ( '${' , choice ( $ . _primary_type , $ . infer_type ) , '}' ) ,
760+ template_type : ( $ ) => seq ( '${' , choice ( $ . primary_type , $ . infer_type ) , '}' ) ,
758761
759762 template_literal_type : ( $ ) => seq (
760763 '`' ,
@@ -866,11 +869,11 @@ module.exports = function defineGrammar(dialect) {
866869
867870 index_type_query : ( $ ) => seq (
868871 'keyof' ,
869- $ . _primary_type ,
872+ $ . primary_type ,
870873 ) ,
871874
872875 lookup_type : ( $ ) => seq (
873- $ . _primary_type ,
876+ $ . primary_type ,
874877 '[' ,
875878 $ . _type ,
876879 ']' ,
@@ -900,7 +903,7 @@ module.exports = function defineGrammar(dialect) {
900903
901904 existential_type : ( _ ) => '*' ,
902905
903- flow_maybe_type : ( $ ) => prec . right ( seq ( '?' , $ . _primary_type ) ) ,
906+ flow_maybe_type : ( $ ) => prec . right ( seq ( '?' , $ . primary_type ) ) ,
904907
905908 parenthesized_type : ( $ ) => seq ( '(' , $ . _type , ')' ) ,
906909
@@ -1026,7 +1029,7 @@ module.exports = function defineGrammar(dialect) {
10261029 ) ) ,
10271030 ) ,
10281031
1029- array_type : ( $ ) => seq ( $ . _primary_type , '[' , ']' ) ,
1032+ array_type : ( $ ) => seq ( $ . primary_type , '[' , ']' ) ,
10301033 tuple_type : ( $ ) => seq (
10311034 '[' , commaSep ( $ . _tuple_type_member ) , optional ( ',' ) , ']' ,
10321035 ) ,
0 commit comments