diff options
| author | Kevin Newton <kddnewton@gmail.com> | 2025-01-08 15:39:03 -0500 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2025-01-08 20:42:35 +0000 |
| commit | 96f23306f0a9859c2e2b2f5d22cfab6eb74a0e5e (patch) | |
| tree | 2797ece7805d0654417bfc36215a68604af8410f | |
| parent | c4534c9fe88259de9509e4b75fb6afc31a1f00a7 (diff) | |
[ruby/prism] Revert "Reject pattern match with unexpected double splat inside array"
https://github.com/ruby/prism/commit/51e7c84124
| -rw-r--r-- | prism/prism.c | 3 | ||||
| -rw-r--r-- | test/prism/errors/pattern_match_with_unexpected_splat_inside_arraytxt | 14 |
2 files changed, 1 insertions, 16 deletions
diff --git a/prism/prism.c b/prism/prism.c index 6e3b41100b..e4ccfa9797 100644 --- a/prism/prism.c +++ b/prism/prism.c @@ -20513,13 +20513,12 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b return (pm_node_t *) node; } case PM_TOKEN_UMINUS_NUM: { - pm_token_t prev = parser->previous; parser_lex(parser); pm_token_t operator = parser->previous; pm_node_t *node = parse_expression(parser, pm_binding_powers[parser->previous.type].right, false, false, PM_ERR_UNARY_RECEIVER, (uint16_t) (depth + 1)); - if ((prev.type != PM_TOKEN_BRACKET_LEFT_ARRAY) && (accept1(parser, PM_TOKEN_STAR_STAR))) { + if (accept1(parser, PM_TOKEN_STAR_STAR)) { pm_token_t exponent_operator = parser->previous; pm_node_t *exponent = parse_expression(parser, pm_binding_powers[exponent_operator.type].right, false, false, PM_ERR_EXPECT_ARGUMENT, (uint16_t) (depth + 1)); node = (pm_node_t *) pm_call_node_binary_create(parser, node, &exponent_operator, exponent, 0); diff --git a/test/prism/errors/pattern_match_with_unexpected_splat_inside_arraytxt b/test/prism/errors/pattern_match_with_unexpected_splat_inside_arraytxt deleted file mode 100644 index d19491e6bf..0000000000 --- a/test/prism/errors/pattern_match_with_unexpected_splat_inside_arraytxt +++ /dev/null @@ -1,14 +0,0 @@ -a => [-2*b] - ^ expected a `]` to close the pattern expression - ^ unexpected '*', expecting end-of-input - ^ unexpected '*', ignoring it - ^ unexpected ']', expecting end-of-input - ^ unexpected ']', ignoring it - -a => [-2**b] - ^ expected a `]` to close the pattern expression - ^~ unexpected '**', expecting end-of-input - ^~ unexpected '**', ignoring it - ^ unexpected ']', expecting end-of-input - ^ unexpected ']', ignoring it - |
