aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2023-11-20 21:38:03 -0500
committergit <svn-admin@ruby-lang.org>2023-11-21 02:38:07 +0000
commit9fa524dd41be60654e8515f9e406f6f47f0ac7fa (patch)
tree5cf2d3b62ba1f0ad68f98d85e3d76077164a6fb3
parent73d519ec461bee7c06e37abcb808443a05ec5a21 (diff)
downloadruby-9fa524dd41be60654e8515f9e406f6f47f0ac7fa.tar.gz
[ruby/prism] Split up CaseNode and CaseMatchNode
(https://github.com/ruby/prism/pull/1801) https://github.com/ruby/prism/commit/4c1391ea56
-rw-r--r--prism/config.yml20
-rw-r--r--prism/diagnostic.c1
-rw-r--r--prism/diagnostic.h1
-rw-r--r--prism/prism.c111
-rw-r--r--test/prism/errors_test.rb2
-rw-r--r--test/prism/location_test.rb7
-rw-r--r--test/prism/snapshots/case.txt4
-rw-r--r--test/prism/snapshots/patterns.txt104
-rw-r--r--test/prism/snapshots/seattlerb/case_in.txt56
-rw-r--r--test/prism/snapshots/seattlerb/case_in_31.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_37.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_42.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_42_2.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_47.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_67.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_86.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_86_2.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_array_pat_const.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_array_pat_paren_assign.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_const.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_else.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_find.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_find_array.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_paren_true.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_if_unless_post_mod.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_multiple.txt2
-rw-r--r--test/prism/snapshots/seattlerb/case_in_or.txt2
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_019.txt2
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_044.txt2
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_051.txt2
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_058.txt2
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_058_2.txt2
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_069.txt2
-rw-r--r--test/prism/snapshots/seattlerb/parse_pattern_076.txt2
-rw-r--r--test/prism/snapshots/unparser/corpus/literal/pattern.txt6
-rw-r--r--test/prism/snapshots/whitequark/newline_in_hash_argument.txt2
-rw-r--r--test/prism/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt2
-rw-r--r--test/prism/snapshots/whitequark/pattern_matching_blank_else.txt2
-rw-r--r--test/prism/snapshots/whitequark/pattern_matching_else.txt2
45 files changed, 247 insertions, 135 deletions
diff --git a/prism/config.yml b/prism/config.yml
index 052901734a..ef12f7a730 100644
--- a/prism/config.yml
+++ b/prism/config.yml
@@ -768,6 +768,26 @@ nodes:
foo => [bar => baz]
^^^^^^^^^^^^
+ - name: CaseMatchNode
+ fields:
+ - name: predicate
+ type: node?
+ - name: conditions
+ type: node[]
+ - name: consequent
+ type: node?
+ kind: ElseNode
+ - name: case_keyword_loc
+ type: location
+ - name: end_keyword_loc
+ type: location
+ comment: |
+ Represents the use of a case statement for pattern matching.
+
+ case true
+ in false
+ end
+ ^^^^^^^^^
- name: CaseNode
fields:
- name: predicate
diff --git a/prism/diagnostic.c b/prism/diagnostic.c
index c1d930a430..b6a4e291a7 100644
--- a/prism/diagnostic.c
+++ b/prism/diagnostic.c
@@ -87,6 +87,7 @@ static const char* const diagnostic_messages[PM_DIAGNOSTIC_ID_LEN] = {
[PM_ERR_CANNOT_PARSE_STRING_PART] = "Cannot parse the string part",
[PM_ERR_CASE_EXPRESSION_AFTER_CASE] = "Expected an expression after `case`",
[PM_ERR_CASE_EXPRESSION_AFTER_WHEN] = "Expected an expression after `when`",
+ [PM_ERR_CASE_MATCH_MISSING_PREDICATE] = "Expected a predicate for a case matching statement",
[PM_ERR_CASE_MISSING_CONDITIONS] = "Expected a `when` or `in` clause after `case`",
[PM_ERR_CASE_TERM] = "Expected an `end` to close the `case` statement",
[PM_ERR_CLASS_IN_METHOD] = "Unexpected class definition in a method body",
diff --git a/prism/diagnostic.h b/prism/diagnostic.h
index c963289cbf..92bc88953e 100644
--- a/prism/diagnostic.h
+++ b/prism/diagnostic.h
@@ -73,6 +73,7 @@ typedef enum {
PM_ERR_CANNOT_PARSE_STRING_PART,
PM_ERR_CASE_EXPRESSION_AFTER_CASE,
PM_ERR_CASE_EXPRESSION_AFTER_WHEN,
+ PM_ERR_CASE_MATCH_MISSING_PREDICATE,
PM_ERR_CASE_MISSING_CONDITIONS,
PM_ERR_CASE_TERM,
PM_ERR_CLASS_IN_METHOD,
diff --git a/prism/prism.c b/prism/prism.c
index 7330063bd8..48b6311d2f 100644
--- a/prism/prism.c
+++ b/prism/prism.c
@@ -2113,7 +2113,7 @@ pm_capture_pattern_node_create(pm_parser_t *parser, pm_node_t *value, pm_node_t
* Allocate and initialize a new CaseNode node.
*/
static pm_case_node_t *
-pm_case_node_create(pm_parser_t *parser, const pm_token_t *case_keyword, pm_node_t *predicate, pm_else_node_t *consequent, const pm_token_t *end_keyword) {
+pm_case_node_create(pm_parser_t *parser, const pm_token_t *case_keyword, pm_node_t *predicate, const pm_token_t *end_keyword) {
pm_case_node_t *node = PM_ALLOC_NODE(parser, pm_case_node_t);
*node = (pm_case_node_t) {
@@ -2125,7 +2125,7 @@ pm_case_node_create(pm_parser_t *parser, const pm_token_t *case_keyword, pm_node
},
},
.predicate = predicate,
- .consequent = consequent,
+ .consequent = NULL,
.case_keyword_loc = PM_LOCATION_TOKEN_VALUE(case_keyword),
.end_keyword_loc = PM_LOCATION_TOKEN_VALUE(end_keyword),
.conditions = { 0 }
@@ -2139,7 +2139,7 @@ pm_case_node_create(pm_parser_t *parser, const pm_token_t *case_keyword, pm_node
*/
static void
pm_case_node_condition_append(pm_case_node_t *node, pm_node_t *condition) {
- assert(PM_NODE_TYPE_P(condition, PM_WHEN_NODE) || PM_NODE_TYPE_P(condition, PM_IN_NODE));
+ assert(PM_NODE_TYPE_P(condition, PM_WHEN_NODE));
pm_node_list_append(&node->conditions, condition);
node->base.location.end = condition->location.end;
@@ -2164,6 +2164,60 @@ pm_case_node_end_keyword_loc_set(pm_case_node_t *node, const pm_token_t *end_key
}
/**
+ * Allocate and initialize a new CaseMatchNode node.
+ */
+static pm_case_match_node_t *
+pm_case_match_node_create(pm_parser_t *parser, const pm_token_t *case_keyword, pm_node_t *predicate, const pm_token_t *end_keyword) {
+ pm_case_match_node_t *node = PM_ALLOC_NODE(parser, pm_case_match_node_t);
+
+ *node = (pm_case_match_node_t) {
+ {
+ .type = PM_CASE_MATCH_NODE,
+ .location = {
+ .start = case_keyword->start,
+ .end = end_keyword->end
+ },
+ },
+ .predicate = predicate,
+ .consequent = NULL,
+ .case_keyword_loc = PM_LOCATION_TOKEN_VALUE(case_keyword),
+ .end_keyword_loc = PM_LOCATION_TOKEN_VALUE(end_keyword),
+ .conditions = { 0 }
+ };
+
+ return node;
+}
+
+/**
+ * Append a new condition to a CaseMatchNode node.
+ */
+static void
+pm_case_match_node_condition_append(pm_case_match_node_t *node, pm_node_t *condition) {
+ assert(PM_NODE_TYPE_P(condition, PM_IN_NODE));
+
+ pm_node_list_append(&node->conditions, condition);
+ node->base.location.end = condition->location.end;
+}
+
+/**
+ * Set the consequent of a CaseMatchNode node.
+ */
+static void
+pm_case_match_node_consequent_set(pm_case_match_node_t *node, pm_else_node_t *consequent) {
+ node->consequent = consequent;
+ node->base.location.end = consequent->base.location.end;
+}
+
+/**
+ * Set the end location for a CaseMatchNode node.
+ */
+static void
+pm_case_match_node_end_keyword_loc_set(pm_case_match_node_t *node, const pm_token_t *end_keyword) {
+ node->base.location.end = end_keyword->end;
+ node->end_keyword_loc = PM_LOCATION_TOKEN_VALUE(end_keyword);
+}
+
+/**
* Allocate a new ClassNode node.
*/
static pm_class_node_t *
@@ -14190,15 +14244,17 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power) {
if (accept1(parser, PM_TOKEN_KEYWORD_END)) {
pm_parser_err_token(parser, &case_keyword, PM_ERR_CASE_MISSING_CONDITIONS);
- return (pm_node_t *) pm_case_node_create(parser, &case_keyword, predicate, NULL, &parser->previous);
+ return (pm_node_t *) pm_case_node_create(parser, &case_keyword, predicate, &parser->previous);
}
// At this point we can create a case node, though we don't yet know if it
// is a case-in or case-when node.
pm_token_t end_keyword = not_provided(parser);
- pm_case_node_t *case_node = pm_case_node_create(parser, &case_keyword, predicate, NULL, &end_keyword);
+ pm_node_t *node;
if (match1(parser, PM_TOKEN_KEYWORD_WHEN)) {
+ pm_case_node_t *case_node = pm_case_node_create(parser, &case_keyword, predicate, &end_keyword);
+
// At this point we've seen a when keyword, so we know this is a
// case-when node. We will continue to parse the when nodes until we hit
// the end of the list.
@@ -14238,7 +14294,23 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power) {
pm_case_node_condition_append(case_node, (pm_node_t *) when_node);
}
+
+ // If we didn't parse any conditions (in or when) then we need
+ // to indicate that we have an error.
+ if (case_node->conditions.size == 0) {
+ pm_parser_err_token(parser, &case_keyword, PM_ERR_CASE_MISSING_CONDITIONS);
+ }
+
+ node = (pm_node_t *) case_node;
} else {
+ pm_case_match_node_t *case_node = pm_case_match_node_create(parser, &case_keyword, predicate, &end_keyword);
+
+ // If this is a case-match node (i.e., it is a pattern matching
+ // case statement) then we must have a predicate.
+ if (predicate == NULL) {
+ pm_parser_err_token(parser, &case_keyword, PM_ERR_CASE_MATCH_MISSING_PREDICATE);
+ }
+
// At this point we expect that we're parsing a case-in node. We will
// continue to parse the in nodes until we hit the end of the list.
while (match1(parser, PM_TOKEN_KEYWORD_IN)) {
@@ -14292,14 +14364,16 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power) {
// Now that we have the full pattern and statements, we can create the
// node and attach it to the case node.
pm_node_t *condition = (pm_node_t *) pm_in_node_create(parser, pattern, statements, &in_keyword, &then_keyword);
- pm_case_node_condition_append(case_node, condition);
+ pm_case_match_node_condition_append(case_node, condition);
}
- }
- // If we didn't parse any conditions (in or when) then we need to
- // indicate that we have an error.
- if (case_node->conditions.size == 0) {
- pm_parser_err_token(parser, &case_keyword, PM_ERR_CASE_MISSING_CONDITIONS);
+ // If we didn't parse any conditions (in or when) then we need
+ // to indicate that we have an error.
+ if (case_node->conditions.size == 0) {
+ pm_parser_err_token(parser, &case_keyword, PM_ERR_CASE_MISSING_CONDITIONS);
+ }
+
+ node = (pm_node_t *) case_node;
}
accept2(parser, PM_TOKEN_NEWLINE, PM_TOKEN_SEMICOLON);
@@ -14313,12 +14387,21 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power) {
else_node = pm_else_node_create(parser, &else_keyword, NULL, &parser->current);
}
- pm_case_node_consequent_set(case_node, else_node);
+ if (PM_NODE_TYPE_P(node, PM_CASE_NODE)) {
+ pm_case_node_consequent_set((pm_case_node_t *) node, else_node);
+ } else {
+ pm_case_match_node_consequent_set((pm_case_match_node_t *) node, else_node);
+ }
}
expect1(parser, PM_TOKEN_KEYWORD_END, PM_ERR_CASE_TERM);
- pm_case_node_end_keyword_loc_set(case_node, &parser->previous);
- return (pm_node_t *) case_node;
+ if (PM_NODE_TYPE_P(node, PM_CASE_NODE)) {
+ pm_case_node_end_keyword_loc_set((pm_case_node_t *) node, &parser->previous);
+ } else {
+ pm_case_match_node_end_keyword_loc_set((pm_case_match_node_t *) node, &parser->previous);
+ }
+
+ return node;
}
case PM_TOKEN_KEYWORD_BEGIN: {
parser_lex(parser);
diff --git a/test/prism/errors_test.rb b/test/prism/errors_test.rb
index 070b36dec2..c6ef417e55 100644
--- a/test/prism/errors_test.rb
+++ b/test/prism/errors_test.rb
@@ -937,7 +937,7 @@ module Prism
end
def test_case_without_when_clauses_errors_on_else_clause
- expected = CaseNode(
+ expected = CaseMatchNode(
SymbolNode(Location(), Location(), nil, "a"),
[],
ElseNode(Location(), nil, Location()),
diff --git a/test/prism/location_test.rb b/test/prism/location_test.rb
index 363e96fae8..02a577a73c 100644
--- a/test/prism/location_test.rb
+++ b/test/prism/location_test.rb
@@ -201,6 +201,13 @@ module Prism
assert_location(CaseNode, "case foo; when bar; when baz; else; end")
end
+ def test_CaseMatchNode
+ assert_location(CaseMatchNode, "case foo; in bar; end")
+ assert_location(CaseMatchNode, "case foo; in bar; else; end")
+ assert_location(CaseMatchNode, "case foo; in bar; in baz; end")
+ assert_location(CaseMatchNode, "case foo; in bar; in baz; else; end")
+ end
+
def test_ClassNode
assert_location(ClassNode, "class Foo end")
assert_location(ClassNode, "class Foo < Bar; end")
diff --git a/test/prism/snapshots/case.txt b/test/prism/snapshots/case.txt
index 3655ce16e1..7b264c1430 100644
--- a/test/prism/snapshots/case.txt
+++ b/test/prism/snapshots/case.txt
@@ -306,7 +306,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (38,0)-(38,4) = "case"
│ └── end_keyword_loc: (38,21)-(38,24) = "end"
- ├── @ CaseNode (location: (40,0)-(42,3))
+ ├── @ CaseMatchNode (location: (40,0)-(42,3))
│ ├── predicate:
│ │ @ MatchPredicateNode (location: (40,5)-(40,11))
│ │ ├── value:
@@ -327,7 +327,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (40,0)-(40,4) = "case"
│ └── end_keyword_loc: (42,0)-(42,3) = "end"
- └── @ CaseNode (location: (44,0)-(44,22))
+ └── @ CaseMatchNode (location: (44,0)-(44,22))
├── predicate:
│ @ MatchPredicateNode (location: (44,5)-(44,11))
│ ├── value:
diff --git a/test/prism/snapshots/patterns.txt b/test/prism/snapshots/patterns.txt
index 0e8c31c8c0..ef2e26de15 100644
--- a/test/prism/snapshots/patterns.txt
+++ b/test/prism/snapshots/patterns.txt
@@ -2778,7 +2778,7 @@
│ │ ├── name: :bar
│ │ └── depth: 1
│ └── operator_loc: (125,4)-(125,6) = "in"
- ├── @ CaseNode (location: (127,0)-(127,25))
+ ├── @ CaseMatchNode (location: (127,0)-(127,25))
│ ├── predicate:
│ │ @ CallNode (location: (127,5)-(127,8))
│ │ ├── receiver: ∅
@@ -2802,7 +2802,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (127,0)-(127,4) = "case"
│ └── end_keyword_loc: (127,22)-(127,25) = "end"
- ├── @ CaseNode (location: (128,0)-(128,23))
+ ├── @ CaseMatchNode (location: (128,0)-(128,23))
│ ├── predicate:
│ │ @ CallNode (location: (128,5)-(128,8))
│ │ ├── receiver: ∅
@@ -2825,7 +2825,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (128,0)-(128,4) = "case"
│ └── end_keyword_loc: (128,20)-(128,23) = "end"
- ├── @ CaseNode (location: (129,0)-(129,25))
+ ├── @ CaseMatchNode (location: (129,0)-(129,25))
│ ├── predicate:
│ │ @ CallNode (location: (129,5)-(129,8))
│ │ ├── receiver: ∅
@@ -2847,7 +2847,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (129,0)-(129,4) = "case"
│ └── end_keyword_loc: (129,22)-(129,25) = "end"
- ├── @ CaseNode (location: (130,0)-(130,24))
+ ├── @ CaseMatchNode (location: (130,0)-(130,24))
│ ├── predicate:
│ │ @ CallNode (location: (130,5)-(130,8))
│ │ ├── receiver: ∅
@@ -2872,7 +2872,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (130,0)-(130,4) = "case"
│ └── end_keyword_loc: (130,21)-(130,24) = "end"
- ├── @ CaseNode (location: (131,0)-(131,24))
+ ├── @ CaseMatchNode (location: (131,0)-(131,24))
│ ├── predicate:
│ │ @ CallNode (location: (131,5)-(131,8))
│ │ ├── receiver: ∅
@@ -2897,7 +2897,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (131,0)-(131,4) = "case"
│ └── end_keyword_loc: (131,21)-(131,24) = "end"
- ├── @ CaseNode (location: (132,0)-(132,26))
+ ├── @ CaseMatchNode (location: (132,0)-(132,26))
│ ├── predicate:
│ │ @ CallNode (location: (132,5)-(132,8))
│ │ ├── receiver: ∅
@@ -2923,7 +2923,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (132,0)-(132,4) = "case"
│ └── end_keyword_loc: (132,23)-(132,26) = "end"
- ├── @ CaseNode (location: (133,0)-(133,29))
+ ├── @ CaseMatchNode (location: (133,0)-(133,29))
│ ├── predicate:
│ │ @ CallNode (location: (133,5)-(133,8))
│ │ ├── receiver: ∅
@@ -2949,7 +2949,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (133,0)-(133,4) = "case"
│ └── end_keyword_loc: (133,26)-(133,29) = "end"
- ├── @ CaseNode (location: (134,0)-(134,28))
+ ├── @ CaseMatchNode (location: (134,0)-(134,28))
│ ├── predicate:
│ │ @ CallNode (location: (134,5)-(134,8))
│ │ ├── receiver: ∅
@@ -2975,7 +2975,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (134,0)-(134,4) = "case"
│ └── end_keyword_loc: (134,25)-(134,28) = "end"
- ├── @ CaseNode (location: (135,0)-(135,27))
+ ├── @ CaseMatchNode (location: (135,0)-(135,27))
│ ├── predicate:
│ │ @ CallNode (location: (135,5)-(135,8))
│ │ ├── receiver: ∅
@@ -3002,7 +3002,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (135,0)-(135,4) = "case"
│ └── end_keyword_loc: (135,24)-(135,27) = "end"
- ├── @ CaseNode (location: (136,0)-(136,27))
+ ├── @ CaseMatchNode (location: (136,0)-(136,27))
│ ├── predicate:
│ │ @ CallNode (location: (136,5)-(136,8))
│ │ ├── receiver: ∅
@@ -3028,7 +3028,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (136,0)-(136,4) = "case"
│ └── end_keyword_loc: (136,24)-(136,27) = "end"
- ├── @ CaseNode (location: (137,0)-(137,29))
+ ├── @ CaseMatchNode (location: (137,0)-(137,29))
│ ├── predicate:
│ │ @ CallNode (location: (137,5)-(137,8))
│ │ ├── receiver: ∅
@@ -3054,7 +3054,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (137,0)-(137,4) = "case"
│ └── end_keyword_loc: (137,26)-(137,29) = "end"
- ├── @ CaseNode (location: (138,0)-(138,29))
+ ├── @ CaseMatchNode (location: (138,0)-(138,29))
│ ├── predicate:
│ │ @ CallNode (location: (138,5)-(138,8))
│ │ ├── receiver: ∅
@@ -3084,7 +3084,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (138,0)-(138,4) = "case"
│ └── end_keyword_loc: (138,26)-(138,29) = "end"
- ├── @ CaseNode (location: (139,0)-(139,29))
+ ├── @ CaseMatchNode (location: (139,0)-(139,29))
│ ├── predicate:
│ │ @ CallNode (location: (139,5)-(139,8))
│ │ ├── receiver: ∅
@@ -3114,7 +3114,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (139,0)-(139,4) = "case"
│ └── end_keyword_loc: (139,26)-(139,29) = "end"
- ├── @ CaseNode (location: (140,0)-(140,29))
+ ├── @ CaseMatchNode (location: (140,0)-(140,29))
│ ├── predicate:
│ │ @ CallNode (location: (140,5)-(140,8))
│ │ ├── receiver: ∅
@@ -3145,7 +3145,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (140,0)-(140,4) = "case"
│ └── end_keyword_loc: (140,26)-(140,29) = "end"
- ├── @ CaseNode (location: (141,0)-(141,29))
+ ├── @ CaseMatchNode (location: (141,0)-(141,29))
│ ├── predicate:
│ │ @ CallNode (location: (141,5)-(141,8))
│ │ ├── receiver: ∅
@@ -3176,7 +3176,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (141,0)-(141,4) = "case"
│ └── end_keyword_loc: (141,26)-(141,29) = "end"
- ├── @ CaseNode (location: (142,0)-(142,29))
+ ├── @ CaseMatchNode (location: (142,0)-(142,29))
│ ├── predicate:
│ │ @ CallNode (location: (142,5)-(142,8))
│ │ ├── receiver: ∅
@@ -3203,7 +3203,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (142,0)-(142,4) = "case"
│ └── end_keyword_loc: (142,26)-(142,29) = "end"
- ├── @ CaseNode (location: (143,0)-(143,29))
+ ├── @ CaseMatchNode (location: (143,0)-(143,29))
│ ├── predicate:
│ │ @ CallNode (location: (143,5)-(143,8))
│ │ ├── receiver: ∅
@@ -3230,7 +3230,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (143,0)-(143,4) = "case"
│ └── end_keyword_loc: (143,26)-(143,29) = "end"
- ├── @ CaseNode (location: (144,0)-(144,27))
+ ├── @ CaseMatchNode (location: (144,0)-(144,27))
│ ├── predicate:
│ │ @ CallNode (location: (144,5)-(144,8))
│ │ ├── receiver: ∅
@@ -3257,7 +3257,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (144,0)-(144,4) = "case"
│ └── end_keyword_loc: (144,24)-(144,27) = "end"
- ├── @ CaseNode (location: (145,0)-(145,25))
+ ├── @ CaseMatchNode (location: (145,0)-(145,25))
│ ├── predicate:
│ │ @ CallNode (location: (145,5)-(145,8))
│ │ ├── receiver: ∅
@@ -3279,7 +3279,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (145,0)-(145,4) = "case"
│ └── end_keyword_loc: (145,22)-(145,25) = "end"
- ├── @ CaseNode (location: (146,0)-(146,26))
+ ├── @ CaseMatchNode (location: (146,0)-(146,26))
│ ├── predicate:
│ │ @ CallNode (location: (146,5)-(146,8))
│ │ ├── receiver: ∅
@@ -3301,7 +3301,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (146,0)-(146,4) = "case"
│ └── end_keyword_loc: (146,23)-(146,26) = "end"
- ├── @ CaseNode (location: (147,0)-(147,26))
+ ├── @ CaseMatchNode (location: (147,0)-(147,26))
│ ├── predicate:
│ │ @ CallNode (location: (147,5)-(147,8))
│ │ ├── receiver: ∅
@@ -3323,7 +3323,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (147,0)-(147,4) = "case"
│ └── end_keyword_loc: (147,23)-(147,26) = "end"
- ├── @ CaseNode (location: (148,0)-(148,27))
+ ├── @ CaseMatchNode (location: (148,0)-(148,27))
│ ├── predicate:
│ │ @ CallNode (location: (148,5)-(148,8))
│ │ ├── receiver: ∅
@@ -3345,7 +3345,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (148,0)-(148,4) = "case"
│ └── end_keyword_loc: (148,24)-(148,27) = "end"
- ├── @ CaseNode (location: (149,0)-(149,30))
+ ├── @ CaseMatchNode (location: (149,0)-(149,30))
│ ├── predicate:
│ │ @ CallNode (location: (149,5)-(149,8))
│ │ ├── receiver: ∅
@@ -3368,7 +3368,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (149,0)-(149,4) = "case"
│ └── end_keyword_loc: (149,27)-(149,30) = "end"
- ├── @ CaseNode (location: (150,0)-(150,30))
+ ├── @ CaseMatchNode (location: (150,0)-(150,30))
│ ├── predicate:
│ │ @ CallNode (location: (150,5)-(150,8))
│ │ ├── receiver: ∅
@@ -3390,7 +3390,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (150,0)-(150,4) = "case"
│ └── end_keyword_loc: (150,27)-(150,30) = "end"
- ├── @ CaseNode (location: (151,0)-(151,34))
+ ├── @ CaseMatchNode (location: (151,0)-(151,34))
│ ├── predicate:
│ │ @ CallNode (location: (151,5)-(151,8))
│ │ ├── receiver: ∅
@@ -3412,7 +3412,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (151,0)-(151,4) = "case"
│ └── end_keyword_loc: (151,31)-(151,34) = "end"
- ├── @ CaseNode (location: (152,0)-(152,32))
+ ├── @ CaseMatchNode (location: (152,0)-(152,32))
│ ├── predicate:
│ │ @ CallNode (location: (152,5)-(152,8))
│ │ ├── receiver: ∅
@@ -3445,7 +3445,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (152,0)-(152,4) = "case"
│ └── end_keyword_loc: (152,29)-(152,32) = "end"
- ├── @ CaseNode (location: (154,0)-(154,32))
+ ├── @ CaseMatchNode (location: (154,0)-(154,32))
│ ├── predicate:
│ │ @ CallNode (location: (154,5)-(154,8))
│ │ ├── receiver: ∅
@@ -3481,7 +3481,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (154,0)-(154,4) = "case"
│ └── end_keyword_loc: (154,29)-(154,32) = "end"
- ├── @ CaseNode (location: (155,0)-(155,30))
+ ├── @ CaseMatchNode (location: (155,0)-(155,30))
│ ├── predicate:
│ │ @ CallNode (location: (155,5)-(155,8))
│ │ ├── receiver: ∅
@@ -3516,7 +3516,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (155,0)-(155,4) = "case"
│ └── end_keyword_loc: (155,27)-(155,30) = "end"
- ├── @ CaseNode (location: (156,0)-(156,32))
+ ├── @ CaseMatchNode (location: (156,0)-(156,32))
│ ├── predicate:
│ │ @ CallNode (location: (156,5)-(156,8))
│ │ ├── receiver: ∅
@@ -3550,7 +3550,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (156,0)-(156,4) = "case"
│ └── end_keyword_loc: (156,29)-(156,32) = "end"
- ├── @ CaseNode (location: (157,0)-(157,31))
+ ├── @ CaseMatchNode (location: (157,0)-(157,31))
│ ├── predicate:
│ │ @ CallNode (location: (157,5)-(157,8))
│ │ ├── receiver: ∅
@@ -3587,7 +3587,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (157,0)-(157,4) = "case"
│ └── end_keyword_loc: (157,28)-(157,31) = "end"
- ├── @ CaseNode (location: (158,0)-(158,31))
+ ├── @ CaseMatchNode (location: (158,0)-(158,31))
│ ├── predicate:
│ │ @ CallNode (location: (158,5)-(158,8))
│ │ ├── receiver: ∅
@@ -3624,7 +3624,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (158,0)-(158,4) = "case"
│ └── end_keyword_loc: (158,28)-(158,31) = "end"
- ├── @ CaseNode (location: (159,0)-(159,33))
+ ├── @ CaseMatchNode (location: (159,0)-(159,33))
│ ├── predicate:
│ │ @ CallNode (location: (159,5)-(159,8))
│ │ ├── receiver: ∅
@@ -3662,7 +3662,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (159,0)-(159,4) = "case"
│ └── end_keyword_loc: (159,30)-(159,33) = "end"
- ├── @ CaseNode (location: (160,0)-(160,36))
+ ├── @ CaseMatchNode (location: (160,0)-(160,36))
│ ├── predicate:
│ │ @ CallNode (location: (160,5)-(160,8))
│ │ ├── receiver: ∅
@@ -3700,7 +3700,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (160,0)-(160,4) = "case"
│ └── end_keyword_loc: (160,33)-(160,36) = "end"
- ├── @ CaseNode (location: (161,0)-(161,35))
+ ├── @ CaseMatchNode (location: (161,0)-(161,35))
│ ├── predicate:
│ │ @ CallNode (location: (161,5)-(161,8))
│ │ ├── receiver: ∅
@@ -3738,7 +3738,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (161,0)-(161,4) = "case"
│ └── end_keyword_loc: (161,32)-(161,35) = "end"
- ├── @ CaseNode (location: (162,0)-(162,34))
+ ├── @ CaseMatchNode (location: (162,0)-(162,34))
│ ├── predicate:
│ │ @ CallNode (location: (162,5)-(162,8))
│ │ ├── receiver: ∅
@@ -3777,7 +3777,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (162,0)-(162,4) = "case"
│ └── end_keyword_loc: (162,31)-(162,34) = "end"
- ├── @ CaseNode (location: (163,0)-(163,34))
+ ├── @ CaseMatchNode (location: (163,0)-(163,34))
│ ├── predicate:
│ │ @ CallNode (location: (163,5)-(163,8))
│ │ ├── receiver: ∅
@@ -3815,7 +3815,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (163,0)-(163,4) = "case"
│ └── end_keyword_loc: (163,31)-(163,34) = "end"
- ├── @ CaseNode (location: (164,0)-(164,36))
+ ├── @ CaseMatchNode (location: (164,0)-(164,36))
│ ├── predicate:
│ │ @ CallNode (location: (164,5)-(164,8))
│ │ ├── receiver: ∅
@@ -3853,7 +3853,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (164,0)-(164,4) = "case"
│ └── end_keyword_loc: (164,33)-(164,36) = "end"
- ├── @ CaseNode (location: (165,0)-(165,36))
+ ├── @ CaseMatchNode (location: (165,0)-(165,36))
│ ├── predicate:
│ │ @ CallNode (location: (165,5)-(165,8))
│ │ ├── receiver: ∅
@@ -3895,7 +3895,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (165,0)-(165,4) = "case"
│ └── end_keyword_loc: (165,33)-(165,36) = "end"
- ├── @ CaseNode (location: (166,0)-(166,36))
+ ├── @ CaseMatchNode (location: (166,0)-(166,36))
│ ├── predicate:
│ │ @ CallNode (location: (166,5)-(166,8))
│ │ ├── receiver: ∅
@@ -3937,7 +3937,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (166,0)-(166,4) = "case"
│ └── end_keyword_loc: (166,33)-(166,36) = "end"
- ├── @ CaseNode (location: (167,0)-(167,36))
+ ├── @ CaseMatchNode (location: (167,0)-(167,36))
│ ├── predicate:
│ │ @ CallNode (location: (167,5)-(167,8))
│ │ ├── receiver: ∅
@@ -3980,7 +3980,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (167,0)-(167,4) = "case"
│ └── end_keyword_loc: (167,33)-(167,36) = "end"
- ├── @ CaseNode (location: (168,0)-(168,36))
+ ├── @ CaseMatchNode (location: (168,0)-(168,36))
│ ├── predicate:
│ │ @ CallNode (location: (168,5)-(168,8))
│ │ ├── receiver: ∅
@@ -4023,7 +4023,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (168,0)-(168,4) = "case"
│ └── end_keyword_loc: (168,33)-(168,36) = "end"
- ├── @ CaseNode (location: (169,0)-(169,36))
+ ├── @ CaseMatchNode (location: (169,0)-(169,36))
│ ├── predicate:
│ │ @ CallNode (location: (169,5)-(169,8))
│ │ ├── receiver: ∅
@@ -4062,7 +4062,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (169,0)-(169,4) = "case"
│ └── end_keyword_loc: (169,33)-(169,36) = "end"
- ├── @ CaseNode (location: (170,0)-(170,36))
+ ├── @ CaseMatchNode (location: (170,0)-(170,36))
│ ├── predicate:
│ │ @ CallNode (location: (170,5)-(170,8))
│ │ ├── receiver: ∅
@@ -4101,7 +4101,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (170,0)-(170,4) = "case"
│ └── end_keyword_loc: (170,33)-(170,36) = "end"
- ├── @ CaseNode (location: (171,0)-(171,34))
+ ├── @ CaseMatchNode (location: (171,0)-(171,34))
│ ├── predicate:
│ │ @ CallNode (location: (171,5)-(171,8))
│ │ ├── receiver: ∅
@@ -4140,7 +4140,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (171,0)-(171,4) = "case"
│ └── end_keyword_loc: (171,31)-(171,34) = "end"
- ├── @ CaseNode (location: (172,0)-(172,32))
+ ├── @ CaseMatchNode (location: (172,0)-(172,32))
│ ├── predicate:
│ │ @ CallNode (location: (172,5)-(172,8))
│ │ ├── receiver: ∅
@@ -4174,7 +4174,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (172,0)-(172,4) = "case"
│ └── end_keyword_loc: (172,29)-(172,32) = "end"
- ├── @ CaseNode (location: (173,0)-(173,33))
+ ├── @ CaseMatchNode (location: (173,0)-(173,33))
│ ├── predicate:
│ │ @ CallNode (location: (173,5)-(173,8))
│ │ ├── receiver: ∅
@@ -4208,7 +4208,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (173,0)-(173,4) = "case"
│ └── end_keyword_loc: (173,30)-(173,33) = "end"
- ├── @ CaseNode (location: (174,0)-(174,33))
+ ├── @ CaseMatchNode (location: (174,0)-(174,33))
│ ├── predicate:
│ │ @ CallNode (location: (174,5)-(174,8))
│ │ ├── receiver: ∅
@@ -4242,7 +4242,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (174,0)-(174,4) = "case"
│ └── end_keyword_loc: (174,30)-(174,33) = "end"
- ├── @ CaseNode (location: (175,0)-(175,34))
+ ├── @ CaseMatchNode (location: (175,0)-(175,34))
│ ├── predicate:
│ │ @ CallNode (location: (175,5)-(175,8))
│ │ ├── receiver: ∅
@@ -4276,7 +4276,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (175,0)-(175,4) = "case"
│ └── end_keyword_loc: (175,31)-(175,34) = "end"
- ├── @ CaseNode (location: (176,0)-(176,37))
+ ├── @ CaseMatchNode (location: (176,0)-(176,37))
│ ├── predicate:
│ │ @ CallNode (location: (176,5)-(176,8))
│ │ ├── receiver: ∅
@@ -4311,7 +4311,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (176,0)-(176,4) = "case"
│ └── end_keyword_loc: (176,34)-(176,37) = "end"
- ├── @ CaseNode (location: (177,0)-(177,37))
+ ├── @ CaseMatchNode (location: (177,0)-(177,37))
│ ├── predicate:
│ │ @ CallNode (location: (177,5)-(177,8))
│ │ ├── receiver: ∅
@@ -4345,7 +4345,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (177,0)-(177,4) = "case"
│ └── end_keyword_loc: (177,34)-(177,37) = "end"
- ├── @ CaseNode (location: (178,0)-(178,41))
+ ├── @ CaseMatchNode (location: (178,0)-(178,41))
│ ├── predicate:
│ │ @ CallNode (location: (178,5)-(178,8))
│ │ ├── receiver: ∅
@@ -4379,7 +4379,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (178,0)-(178,4) = "case"
│ └── end_keyword_loc: (178,38)-(178,41) = "end"
- ├── @ CaseNode (location: (179,0)-(179,39))
+ ├── @ CaseMatchNode (location: (179,0)-(179,39))
│ ├── predicate:
│ │ @ CallNode (location: (179,5)-(179,8))
│ │ ├── receiver: ∅
diff --git a/test/prism/snapshots/seattlerb/case_in.txt b/test/prism/snapshots/seattlerb/case_in.txt
index c6150c4105..9db7851e16 100644
--- a/test/prism/snapshots/seattlerb/case_in.txt
+++ b/test/prism/snapshots/seattlerb/case_in.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(111,3))
└── body: (length: 28)
- ├── @ CaseNode (location: (1,0)-(3,3))
+ ├── @ CaseMatchNode (location: (1,0)-(3,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (1,5)-(1,7))
│ │ ├── opening_loc: (1,5)-(1,6) = ":"
@@ -34,7 +34,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (1,0)-(1,4) = "case"
│ └── end_keyword_loc: (3,0)-(3,3) = "end"
- ├── @ CaseNode (location: (5,0)-(7,3))
+ ├── @ CaseMatchNode (location: (5,0)-(7,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (5,5)-(5,7))
│ │ ├── opening_loc: (5,5)-(5,6) = ":"
@@ -64,7 +64,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (5,0)-(5,4) = "case"
│ └── end_keyword_loc: (7,0)-(7,3) = "end"
- ├── @ CaseNode (location: (9,0)-(11,3))
+ ├── @ CaseMatchNode (location: (9,0)-(11,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (9,5)-(9,7))
│ │ ├── opening_loc: (9,5)-(9,6) = ":"
@@ -96,7 +96,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (9,0)-(9,4) = "case"
│ └── end_keyword_loc: (11,0)-(11,3) = "end"
- ├── @ CaseNode (location: (13,0)-(15,3))
+ ├── @ CaseMatchNode (location: (13,0)-(15,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (13,5)-(13,7))
│ │ ├── opening_loc: (13,5)-(13,6) = ":"
@@ -126,7 +126,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (13,0)-(13,4) = "case"
│ └── end_keyword_loc: (15,0)-(15,3) = "end"
- ├── @ CaseNode (location: (17,0)-(19,3))
+ ├── @ CaseMatchNode (location: (17,0)-(19,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (17,5)-(17,7))
│ │ ├── opening_loc: (17,5)-(17,6) = ":"
@@ -158,7 +158,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (17,0)-(17,4) = "case"
│ └── end_keyword_loc: (19,0)-(19,3) = "end"
- ├── @ CaseNode (location: (21,0)-(23,3))
+ ├── @ CaseMatchNode (location: (21,0)-(23,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (21,5)-(21,7))
│ │ ├── opening_loc: (21,5)-(21,6) = ":"
@@ -181,7 +181,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (21,0)-(21,4) = "case"
│ └── end_keyword_loc: (23,0)-(23,3) = "end"
- ├── @ CaseNode (location: (25,0)-(27,3))
+ ├── @ CaseMatchNode (location: (25,0)-(27,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (25,5)-(25,7))
│ │ ├── opening_loc: (25,5)-(25,6) = ":"
@@ -204,7 +204,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (25,0)-(25,4) = "case"
│ └── end_keyword_loc: (27,0)-(27,3) = "end"
- ├── @ CaseNode (location: (29,0)-(31,3))
+ ├── @ CaseMatchNode (location: (29,0)-(31,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (29,5)-(29,7))
│ │ ├── opening_loc: (29,5)-(29,6) = ":"
@@ -227,7 +227,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (29,0)-(29,4) = "case"
│ └── end_keyword_loc: (31,0)-(31,3) = "end"
- ├── @ CaseNode (location: (33,0)-(35,3))
+ ├── @ CaseMatchNode (location: (33,0)-(35,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (33,5)-(33,7))
│ │ ├── opening_loc: (33,5)-(33,6) = ":"
@@ -252,7 +252,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (33,0)-(33,4) = "case"
│ └── end_keyword_loc: (35,0)-(35,3) = "end"
- ├── @ CaseNode (location: (37,0)-(39,3))
+ ├── @ CaseMatchNode (location: (37,0)-(39,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (37,5)-(37,7))
│ │ ├── opening_loc: (37,5)-(37,6) = ":"
@@ -270,7 +270,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (37,0)-(37,4) = "case"
│ └── end_keyword_loc: (39,0)-(39,3) = "end"
- ├── @ CaseNode (location: (41,0)-(43,3))
+ ├── @ CaseMatchNode (location: (41,0)-(43,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (41,5)-(41,7))
│ │ ├── opening_loc: (41,5)-(41,6) = ":"
@@ -295,7 +295,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (41,0)-(41,4) = "case"
│ └── end_keyword_loc: (43,0)-(43,3) = "end"
- ├── @ CaseNode (location: (45,0)-(47,3))
+ ├── @ CaseMatchNode (location: (45,0)-(47,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (45,5)-(45,7))
│ │ ├── opening_loc: (45,5)-(45,6) = ":"
@@ -317,7 +317,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (45,0)-(45,4) = "case"
│ └── end_keyword_loc: (47,0)-(47,3) = "end"
- ├── @ CaseNode (location: (49,0)-(51,3))
+ ├── @ CaseMatchNode (location: (49,0)-(51,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (49,5)-(49,7))
│ │ ├── opening_loc: (49,5)-(49,6) = ":"
@@ -356,7 +356,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (49,0)-(49,4) = "case"
│ └── end_keyword_loc: (51,0)-(51,3) = "end"
- ├── @ CaseNode (location: (53,0)-(55,3))
+ ├── @ CaseMatchNode (location: (53,0)-(55,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (53,5)-(53,7))
│ │ ├── opening_loc: (53,5)-(53,6) = ":"
@@ -396,7 +396,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (53,0)-(53,4) = "case"
│ └── end_keyword_loc: (55,0)-(55,3) = "end"
- ├── @ CaseNode (location: (57,0)-(59,3))
+ ├── @ CaseMatchNode (location: (57,0)-(59,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (57,5)-(57,7))
│ │ ├── opening_loc: (57,5)-(57,6) = ":"
@@ -421,7 +421,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (57,0)-(57,4) = "case"
│ └── end_keyword_loc: (59,0)-(59,3) = "end"
- ├── @ CaseNode (location: (61,0)-(63,3))
+ ├── @ CaseMatchNode (location: (61,0)-(63,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (61,5)-(61,7))
│ │ ├── opening_loc: (61,5)-(61,6) = ":"
@@ -461,7 +461,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (61,0)-(61,4) = "case"
│ └── end_keyword_loc: (63,0)-(63,3) = "end"
- ├── @ CaseNode (location: (65,0)-(67,3))
+ ├── @ CaseMatchNode (location: (65,0)-(67,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (65,5)-(65,7))
│ │ ├── opening_loc: (65,5)-(65,6) = ":"
@@ -501,7 +501,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (65,0)-(65,4) = "case"
│ └── end_keyword_loc: (67,0)-(67,3) = "end"
- ├── @ CaseNode (location: (69,0)-(71,3))
+ ├── @ CaseMatchNode (location: (69,0)-(71,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (69,5)-(69,7))
│ │ ├── opening_loc: (69,5)-(69,6) = ":"
@@ -552,7 +552,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (69,0)-(69,4) = "case"
│ └── end_keyword_loc: (71,0)-(71,3) = "end"
- ├── @ CaseNode (location: (73,0)-(75,3))
+ ├── @ CaseMatchNode (location: (73,0)-(75,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (73,5)-(73,7))
│ │ ├── opening_loc: (73,5)-(73,6) = ":"
@@ -605,7 +605,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (73,0)-(73,4) = "case"
│ └── end_keyword_loc: (75,0)-(75,3) = "end"
- ├── @ CaseNode (location: (77,0)-(79,3))
+ ├── @ CaseMatchNode (location: (77,0)-(79,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (77,5)-(77,7))
│ │ ├── opening_loc: (77,5)-(77,6) = ":"
@@ -635,7 +635,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (77,0)-(77,4) = "case"
│ └── end_keyword_loc: (79,0)-(79,3) = "end"
- ├── @ CaseNode (location: (81,0)-(83,3))
+ ├── @ CaseMatchNode (location: (81,0)-(83,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (81,5)-(81,7))
│ │ ├── opening_loc: (81,5)-(81,6) = ":"
@@ -691,7 +691,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (81,0)-(81,4) = "case"
│ └── end_keyword_loc: (83,0)-(83,3) = "end"
- ├── @ CaseNode (location: (85,0)-(87,3))
+ ├── @ CaseMatchNode (location: (85,0)-(87,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (85,5)-(85,7))
│ │ ├── opening_loc: (85,5)-(85,6) = ":"
@@ -714,7 +714,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (85,0)-(85,4) = "case"
│ └── end_keyword_loc: (87,0)-(87,3) = "end"
- ├── @ CaseNode (location: (89,0)-(91,3))
+ ├── @ CaseMatchNode (location: (89,0)-(91,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (89,5)-(89,7))
│ │ ├── opening_loc: (89,5)-(89,6) = ":"
@@ -752,7 +752,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (89,0)-(89,4) = "case"
│ └── end_keyword_loc: (91,0)-(91,3) = "end"
- ├── @ CaseNode (location: (93,0)-(95,3))
+ ├── @ CaseMatchNode (location: (93,0)-(95,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (93,5)-(93,7))
│ │ ├── opening_loc: (93,5)-(93,6) = ":"
@@ -790,7 +790,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (93,0)-(93,4) = "case"
│ └── end_keyword_loc: (95,0)-(95,3) = "end"
- ├── @ CaseNode (location: (97,0)-(99,3))
+ ├── @ CaseMatchNode (location: (97,0)-(99,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (97,5)-(97,7))
│ │ ├── opening_loc: (97,5)-(97,6) = ":"
@@ -811,7 +811,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (97,0)-(97,4) = "case"
│ └── end_keyword_loc: (99,0)-(99,3) = "end"
- ├── @ CaseNode (location: (101,0)-(103,3))
+ ├── @ CaseMatchNode (location: (101,0)-(103,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (101,5)-(101,7))
│ │ ├── opening_loc: (101,5)-(101,6) = ":"
@@ -837,7 +837,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (101,0)-(101,4) = "case"
│ └── end_keyword_loc: (103,0)-(103,3) = "end"
- ├── @ CaseNode (location: (105,0)-(107,3))
+ ├── @ CaseMatchNode (location: (105,0)-(107,3))
│ ├── predicate:
│ │ @ SymbolNode (location: (105,5)-(105,7))
│ │ ├── opening_loc: (105,5)-(105,6) = ":"
@@ -868,7 +868,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (105,0)-(105,4) = "case"
│ └── end_keyword_loc: (107,0)-(107,3) = "end"
- └── @ CaseNode (location: (109,0)-(111,3))
+ └── @ CaseMatchNode (location: (109,0)-(111,3))
├── predicate:
│ @ SymbolNode (location: (109,5)-(109,7))
│ ├── opening_loc: (109,5)-(109,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_31.txt b/test/prism/snapshots/seattlerb/case_in_31.txt
index e753c3ccff..7c1a73f542 100644
--- a/test/prism/snapshots/seattlerb/case_in_31.txt
+++ b/test/prism/snapshots/seattlerb/case_in_31.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_37.txt b/test/prism/snapshots/seattlerb/case_in_37.txt
index b272291f7e..a4c9aa9d42 100644
--- a/test/prism/snapshots/seattlerb/case_in_37.txt
+++ b/test/prism/snapshots/seattlerb/case_in_37.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_42.txt b/test/prism/snapshots/seattlerb/case_in_42.txt
index fe69a9e3d3..bd77e493a0 100644
--- a/test/prism/snapshots/seattlerb/case_in_42.txt
+++ b/test/prism/snapshots/seattlerb/case_in_42.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(3,3))
+ └── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_42_2.txt b/test/prism/snapshots/seattlerb/case_in_42_2.txt
index f4e6806d35..86375abc07 100644
--- a/test/prism/snapshots/seattlerb/case_in_42_2.txt
+++ b/test/prism/snapshots/seattlerb/case_in_42_2.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(3,3))
+ └── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_47.txt b/test/prism/snapshots/seattlerb/case_in_47.txt
index 32b24fc98d..4c38e1de65 100644
--- a/test/prism/snapshots/seattlerb/case_in_47.txt
+++ b/test/prism/snapshots/seattlerb/case_in_47.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_67.txt b/test/prism/snapshots/seattlerb/case_in_67.txt
index 73649059f0..55b188a652 100644
--- a/test/prism/snapshots/seattlerb/case_in_67.txt
+++ b/test/prism/snapshots/seattlerb/case_in_67.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(3,3))
+ └── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_86.txt b/test/prism/snapshots/seattlerb/case_in_86.txt
index 7197e77bc0..ab01082198 100644
--- a/test/prism/snapshots/seattlerb/case_in_86.txt
+++ b/test/prism/snapshots/seattlerb/case_in_86.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(3,3))
+ └── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ ArrayNode (location: (1,5)-(1,13))
│ ├── elements: (length: 2)
diff --git a/test/prism/snapshots/seattlerb/case_in_86_2.txt b/test/prism/snapshots/seattlerb/case_in_86_2.txt
index 9d3abbb31d..c2b320dfad 100644
--- a/test/prism/snapshots/seattlerb/case_in_86_2.txt
+++ b/test/prism/snapshots/seattlerb/case_in_86_2.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(3,3))
+ └── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ ArrayNode (location: (1,5)-(1,13))
│ ├── elements: (length: 2)
diff --git a/test/prism/snapshots/seattlerb/case_in_array_pat_const.txt b/test/prism/snapshots/seattlerb/case_in_array_pat_const.txt
index 8316c51f2e..8775270671 100644
--- a/test/prism/snapshots/seattlerb/case_in_array_pat_const.txt
+++ b/test/prism/snapshots/seattlerb/case_in_array_pat_const.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt b/test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt
index 9f54b921ac..1b9c57039e 100644
--- a/test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt
+++ b/test/prism/snapshots/seattlerb/case_in_array_pat_const2.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_array_pat_paren_assign.txt b/test/prism/snapshots/seattlerb/case_in_array_pat_paren_assign.txt
index 0b903e8d91..b16682a272 100644
--- a/test/prism/snapshots/seattlerb/case_in_array_pat_paren_assign.txt
+++ b/test/prism/snapshots/seattlerb/case_in_array_pat_paren_assign.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_const.txt b/test/prism/snapshots/seattlerb/case_in_const.txt
index 59880bc2a7..dac930a191 100644
--- a/test/prism/snapshots/seattlerb/case_in_const.txt
+++ b/test/prism/snapshots/seattlerb/case_in_const.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ ConstantReadNode (location: (1,5)-(1,10))
│ └── name: :Array
diff --git a/test/prism/snapshots/seattlerb/case_in_else.txt b/test/prism/snapshots/seattlerb/case_in_else.txt
index c132443cc8..ba6655f7bf 100644
--- a/test/prism/snapshots/seattlerb/case_in_else.txt
+++ b/test/prism/snapshots/seattlerb/case_in_else.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(6,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(6,3))
+ └── @ CaseMatchNode (location: (1,0)-(6,3))
├── predicate:
│ @ ConstantReadNode (location: (1,5)-(1,10))
│ └── name: :Array
diff --git a/test/prism/snapshots/seattlerb/case_in_find.txt b/test/prism/snapshots/seattlerb/case_in_find.txt
index 191dee3a04..0a34234abd 100644
--- a/test/prism/snapshots/seattlerb/case_in_find.txt
+++ b/test/prism/snapshots/seattlerb/case_in_find.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(3,3))
+ └── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_find_array.txt b/test/prism/snapshots/seattlerb/case_in_find_array.txt
index df764a4b07..3fce60c9c1 100644
--- a/test/prism/snapshots/seattlerb/case_in_find_array.txt
+++ b/test/prism/snapshots/seattlerb/case_in_find_array.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(3,3))
+ └── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat.txt
index a8e27b4716..174b61c0f8 100644
--- a/test/prism/snapshots/seattlerb/case_in_hash_pat.txt
+++ b/test/prism/snapshots/seattlerb/case_in_hash_pat.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt
index 4df1e565a7..d0673d1de4 100644
--- a/test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt
+++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_assign.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt
index a444e523f7..802f4d7efd 100644
--- a/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt
+++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_assign.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_true.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_true.txt
index 05a111f0e0..c445b01030 100644
--- a/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_true.txt
+++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_paren_true.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt
index 90e325213e..83e247cb91 100644
--- a/test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt
+++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_rest.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(3,3))
+ └── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt b/test/prism/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt
index 685033005f..6b6147e28f 100644
--- a/test/prism/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt
+++ b/test/prism/snapshots/seattlerb/case_in_hash_pat_rest_solo.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(3,3))
+ └── @ CaseMatchNode (location: (1,0)-(3,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_if_unless_post_mod.txt b/test/prism/snapshots/seattlerb/case_in_if_unless_post_mod.txt
index 03f29769c1..dfc51b5ea5 100644
--- a/test/prism/snapshots/seattlerb/case_in_if_unless_post_mod.txt
+++ b/test/prism/snapshots/seattlerb/case_in_if_unless_post_mod.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(6,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(6,3))
+ └── @ CaseMatchNode (location: (1,0)-(6,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_multiple.txt b/test/prism/snapshots/seattlerb/case_in_multiple.txt
index 046cb61838..fe6eb13fd1 100644
--- a/test/prism/snapshots/seattlerb/case_in_multiple.txt
+++ b/test/prism/snapshots/seattlerb/case_in_multiple.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(6,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(6,3))
+ └── @ CaseMatchNode (location: (1,0)-(6,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/case_in_or.txt b/test/prism/snapshots/seattlerb/case_in_or.txt
index 059ddcd32c..11a706b283 100644
--- a/test/prism/snapshots/seattlerb/case_in_or.txt
+++ b/test/prism/snapshots/seattlerb/case_in_or.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_019.txt b/test/prism/snapshots/seattlerb/parse_pattern_019.txt
index e3bf981ded..196cb186b9 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_019.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_019.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ IntegerNode (location: (1,5)-(1,6))
│ └── flags: decimal
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_044.txt b/test/prism/snapshots/seattlerb/parse_pattern_044.txt
index c354112ebf..f83bd5b02a 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_044.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_044.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ CallNode (location: (1,5)-(1,8))
│ ├── receiver: ∅
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_051.txt b/test/prism/snapshots/seattlerb/parse_pattern_051.txt
index 5d95d71701..fb32cd0359 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_051.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_051.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ ArrayNode (location: (1,5)-(1,14))
│ ├── elements: (length: 3)
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_058.txt b/test/prism/snapshots/seattlerb/parse_pattern_058.txt
index 4812556b5e..6ec42013bb 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_058.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_058.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ HashNode (location: (1,5)-(1,11))
│ ├── opening_loc: (1,5)-(1,6) = "{"
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt b/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt
index 4e5bf2f294..0f578ee687 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_058_2.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ HashNode (location: (1,5)-(1,11))
│ ├── opening_loc: (1,5)-(1,6) = "{"
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_069.txt b/test/prism/snapshots/seattlerb/parse_pattern_069.txt
index ae40e65ddd..98661ae2fb 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_069.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_069.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ SymbolNode (location: (1,5)-(1,7))
│ ├── opening_loc: (1,5)-(1,6) = ":"
diff --git a/test/prism/snapshots/seattlerb/parse_pattern_076.txt b/test/prism/snapshots/seattlerb/parse_pattern_076.txt
index b6643f8609..7f3131ccfb 100644
--- a/test/prism/snapshots/seattlerb/parse_pattern_076.txt
+++ b/test/prism/snapshots/seattlerb/parse_pattern_076.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(4,3))
+ └── @ CaseMatchNode (location: (1,0)-(4,3))
├── predicate:
│ @ HashNode (location: (1,5)-(1,11))
│ ├── opening_loc: (1,5)-(1,6) = "{"
diff --git a/test/prism/snapshots/unparser/corpus/literal/pattern.txt b/test/prism/snapshots/unparser/corpus/literal/pattern.txt
index 61e947a3f9..492528b599 100644
--- a/test/prism/snapshots/unparser/corpus/literal/pattern.txt
+++ b/test/prism/snapshots/unparser/corpus/literal/pattern.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(41,8))
└── body: (length: 4)
- ├── @ CaseNode (location: (1,0)-(33,3))
+ ├── @ CaseMatchNode (location: (1,0)-(33,3))
│ ├── predicate:
│ │ @ CallNode (location: (1,5)-(1,8))
│ │ ├── receiver: ∅
@@ -332,7 +332,7 @@
│ │ └── end_keyword_loc: (33,0)-(33,3) = "end"
│ ├── case_keyword_loc: (1,0)-(1,4) = "case"
│ └── end_keyword_loc: (33,0)-(33,3) = "end"
- ├── @ CaseNode (location: (34,0)-(36,3))
+ ├── @ CaseMatchNode (location: (34,0)-(36,3))
│ ├── predicate:
│ │ @ CallNode (location: (34,5)-(34,8))
│ │ ├── receiver: ∅
@@ -374,7 +374,7 @@
│ ├── consequent: ∅
│ ├── case_keyword_loc: (34,0)-(34,4) = "case"
│ └── end_keyword_loc: (36,0)-(36,3) = "end"
- ├── @ CaseNode (location: (37,0)-(40,3))
+ ├── @ CaseMatchNode (location: (37,0)-(40,3))
│ ├── predicate:
│ │ @ CallNode (location: (37,5)-(37,8))
│ │ ├── receiver: ∅
diff --git a/test/prism/snapshots/whitequark/newline_in_hash_argument.txt b/test/prism/snapshots/whitequark/newline_in_hash_argument.txt
index 9d29c284e4..43791501f3 100644
--- a/test/prism/snapshots/whitequark/newline_in_hash_argument.txt
+++ b/test/prism/snapshots/whitequark/newline_in_hash_argument.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(14,1))
└── body: (length: 3)
- ├── @ CaseNode (location: (1,0)-(8,3))
+ ├── @ CaseMatchNode (location: (1,0)-(8,3))
│ ├── predicate:
│ │ @ CallNode (location: (1,5)-(1,8))
│ │ ├── receiver: ∅
diff --git a/test/prism/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt b/test/prism/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt
index 27e151152b..c12a9a169e 100644
--- a/test/prism/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt
+++ b/test/prism/snapshots/whitequark/pattern_matching__FILE__LINE_literals.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,8)-(3,11))
└── body: (length: 1)
- └── @ CaseNode (location: (1,8)-(3,11))
+ └── @ CaseMatchNode (location: (1,8)-(3,11))
├── predicate:
│ @ ArrayNode (location: (1,13)-(1,51))
│ ├── elements: (length: 3)
diff --git a/test/prism/snapshots/whitequark/pattern_matching_blank_else.txt b/test/prism/snapshots/whitequark/pattern_matching_blank_else.txt
index f6b212c8b2..308abd2f02 100644
--- a/test/prism/snapshots/whitequark/pattern_matching_blank_else.txt
+++ b/test/prism/snapshots/whitequark/pattern_matching_blank_else.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(1,26))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(1,26))
+ └── @ CaseMatchNode (location: (1,0)-(1,26))
├── predicate:
│ @ IntegerNode (location: (1,5)-(1,6))
│ └── flags: decimal
diff --git a/test/prism/snapshots/whitequark/pattern_matching_else.txt b/test/prism/snapshots/whitequark/pattern_matching_else.txt
index 358a556947..944cc7b429 100644
--- a/test/prism/snapshots/whitequark/pattern_matching_else.txt
+++ b/test/prism/snapshots/whitequark/pattern_matching_else.txt
@@ -3,7 +3,7 @@
└── statements:
@ StatementsNode (location: (1,0)-(1,29))
└── body: (length: 1)
- └── @ CaseNode (location: (1,0)-(1,29))
+ └── @ CaseMatchNode (location: (1,0)-(1,29))
├── predicate:
│ @ IntegerNode (location: (1,5)-(1,6))
│ └── flags: decimal