File tree Expand file tree Collapse file tree 5 files changed +68181
-67369
lines changed Expand file tree Collapse file tree 5 files changed +68181
-67369
lines changed Original file line number Diff line number Diff line change @@ -30,6 +30,7 @@ val x = y match {
30
30
case 1 : Int => 2
31
31
case a : B with C => d
32
32
case _: B | _: C => 3
33
+ case Object.Constant => 3
33
34
}
34
35
35
36
---
@@ -47,6 +48,9 @@ val x = y match {
47
48
(alternative_pattern
48
49
(typed_pattern (wildcard) (type_identifier))
49
50
(typed_pattern (wildcard) (type_identifier)))
51
+ (integer_literal))
52
+ (case_clause
53
+ (stable_identifier (identifier) (identifier))
50
54
(integer_literal))))))
51
55
52
56
============================
@@ -136,6 +140,7 @@ Capture patterns
136
140
val x = y match {
137
141
case a @ B(1) => a
138
142
case b @ C(d @ (e @ X, _: Y)) => e
143
+ case req @ (POST | GET) -> Root / "test" => 5
139
144
}
140
145
141
146
---
@@ -156,4 +161,11 @@ val x = y match {
156
161
(tuple_pattern
157
162
(capture_pattern (identifier) (identifier))
158
163
(typed_pattern (wildcard) (type_identifier))))))
159
- (identifier))))))
164
+ (identifier))
165
+ (case_clause
166
+ (infix_pattern
167
+ (infix_pattern
168
+ (capture_pattern (identifier)
169
+ (tuple_pattern (alternative_pattern (identifier) (identifier))))
170
+ (operator_identifier) (identifier)) (operator_identifier) (string))
171
+ (integer_literal))))))
Original file line number Diff line number Diff line change @@ -474,6 +474,7 @@ module.exports = grammar({
474
474
475
475
_pattern : $ => choice (
476
476
$ . identifier ,
477
+ $ . stable_identifier ,
477
478
$ . capture_pattern ,
478
479
$ . tuple_pattern ,
479
480
$ . case_class_pattern ,
@@ -497,20 +498,20 @@ module.exports = grammar({
497
498
field ( 'right' , $ . _pattern ) ,
498
499
) ) ,
499
500
500
- capture_pattern : $ => prec ( PREC . assign , seq (
501
+ capture_pattern : $ => prec ( PREC . field , seq (
501
502
field ( 'name' , $ . identifier ) ,
502
503
'@' ,
503
504
field ( 'pattern' , $ . _pattern )
504
505
) ) ,
505
506
506
- typed_pattern : $ => prec ( - 1 , seq (
507
+ typed_pattern : $ => prec . right ( seq (
507
508
field ( 'pattern' , $ . _pattern ) ,
508
509
':' ,
509
510
field ( 'type' , $ . _type )
510
511
) ) ,
511
512
512
513
// TODO: Flatten this.
513
- alternative_pattern : $ => prec . left ( - 2 , seq (
514
+ alternative_pattern : $ => prec . left ( - 1 , seq (
514
515
$ . _pattern ,
515
516
'|' ,
516
517
$ . _pattern
Original file line number Diff line number Diff line change 2495
2495
"type" : " SYMBOL" ,
2496
2496
"name" : " identifier"
2497
2497
},
2498
+ {
2499
+ "type" : " SYMBOL" ,
2500
+ "name" : " stable_identifier"
2501
+ },
2498
2502
{
2499
2503
"type" : " SYMBOL" ,
2500
2504
"name" : " capture_pattern"
2640
2644
},
2641
2645
"capture_pattern" : {
2642
2646
"type" : " PREC" ,
2643
- "value" : 2 ,
2647
+ "value" : 6 ,
2644
2648
"content" : {
2645
2649
"type" : " SEQ" ,
2646
2650
"members" : [
2668
2672
}
2669
2673
},
2670
2674
"typed_pattern" : {
2671
- "type" : " PREC " ,
2672
- "value" : -1 ,
2675
+ "type" : " PREC_RIGHT " ,
2676
+ "value" : 0 ,
2673
2677
"content" : {
2674
2678
"type" : " SEQ" ,
2675
2679
"members" : [
2698
2702
},
2699
2703
"alternative_pattern" : {
2700
2704
"type" : " PREC_LEFT" ,
2701
- "value" : -2 ,
2705
+ "value" : -1 ,
2702
2706
"content" : {
2703
2707
"type" : " SEQ" ,
2704
2708
"members" : [
Original file line number Diff line number Diff line change 101
101
"type" : " null_literal" ,
102
102
"named" : true
103
103
},
104
+ {
105
+ "type" : " stable_identifier" ,
106
+ "named" : true
107
+ },
104
108
{
105
109
"type" : " string" ,
106
110
"named" : true
You can’t perform that action at this time.
0 commit comments