diff options
| author | Stan Lo <stan.lo@shopify.com> | 2025-07-01 17:10:22 +0100 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2025-07-16 17:08:28 +0000 |
| commit | 2591b935930aaeee652df3ffbbe1cb138e7f5346 (patch) | |
| tree | a05aa124dffd1c3eee7378d6089558a2b2f779d8 /test/prism/errors | |
| parent | acc317253043efc65e87b460de48dc4e50c87c59 (diff) | |
[ruby/prism] Fix crash when using arithmetic expressions in pattern matching
When arithmetic expressions like `-1**2` are used in pattern matching contexts,
Ruby crashes with "Unexpected node type in pattern matching expression: PM_CALL_NODE".
This happens because the Prism parser creates `PM_CALL_NODE` for arithmetic operations,
but Ruby's pattern matching compiler doesn't handle call nodes.
This fix adds validation to reject `PM_CALL_NODE` in pattern contexts with a proper
syntax error.
https://github.com/ruby/prism/commit/365049a767
Diffstat (limited to 'test/prism/errors')
| -rw-r--r-- | test/prism/errors/pattern_arithmetic_expressions.txt | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/test/prism/errors/pattern_arithmetic_expressions.txt b/test/prism/errors/pattern_arithmetic_expressions.txt new file mode 100644 index 0000000000..cfb3650531 --- /dev/null +++ b/test/prism/errors/pattern_arithmetic_expressions.txt @@ -0,0 +1,3 @@ +case 1; in -1**2; end + ^~~~~ expected a pattern expression after the `in` keyword + |
