@@ -82,6 +82,10 @@ export default grammar({
8282
8383 [ $ . parenthesized_pattern , $ . _parenthesized_pattern_with_designation ] ,
8484
85+ [ $ . expression_element , $ . argument ] ,
86+ [ $ . spread_element , $ . range_expression ] ,
87+ [ $ . collection_expression , $ . list_pattern ] ,
88+
8589 [ $ . _reserved_identifier , $ . modifier ] ,
8690 [ $ . _reserved_identifier , $ . scoped_type ] ,
8791 [ $ . _reserved_identifier , $ . implicit_type ] ,
@@ -1344,6 +1348,7 @@ export default grammar({
13441348 $ . as_expression ,
13451349 $ . cast_expression ,
13461350 $ . checked_expression ,
1351+ $ . collection_expression ,
13471352 $ . switch_expression ,
13481353 $ . throw_expression ,
13491354 $ . default_expression ,
@@ -1766,6 +1771,24 @@ export default grammar({
17661771 $ . initializer_expression ,
17671772 ) ,
17681773
1774+ collection_expression : $ => seq (
1775+ '[' ,
1776+ optional ( seq (
1777+ commaSep1 ( $ . collection_element ) ,
1778+ optional ( ',' ) ,
1779+ ) ) ,
1780+ ']' ,
1781+ ) ,
1782+
1783+ collection_element : $ => choice (
1784+ $ . expression_element ,
1785+ $ . spread_element ,
1786+ ) ,
1787+
1788+ expression_element : $ => prec ( 1 , $ . expression ) ,
1789+
1790+ spread_element : $ => prec . dynamic ( 1 , prec ( PREC . RANGE , seq ( '..' , $ . expression ) ) ) ,
1791+
17691792 initializer_expression : $ => seq (
17701793 '{' ,
17711794 commaSep ( $ . expression ) ,
0 commit comments