diff options
| author | Kevin Newton <kddnewton@gmail.com> | 2024-01-08 09:21:12 -0500 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2024-01-08 14:34:59 +0000 |
| commit | d1d50a050583da978fcf87b41ddc807bf93ede9e (patch) | |
| tree | 6c86edfdd85c2ad83e0ef553aee3976cb54df323 | |
| parent | b3d612804946e841e47d14e09b6839224a79c1a4 (diff) | |
[ruby/prism] Handle parsing a line break in a receiver of a method
https://github.com/ruby/prism/commit/4d5f43ecbc
| -rw-r--r-- | prism/prism.c | 1 | ||||
| -rw-r--r-- | test/prism/errors_test.rb | 8 |
2 files changed, 5 insertions, 4 deletions
diff --git a/prism/prism.c b/prism/prism.c index 5cefb1a86a..398288e641 100644 --- a/prism/prism.c +++ b/prism/prism.c @@ -15003,6 +15003,7 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, b pm_token_t lparen = parser->previous; pm_node_t *expression = parse_value_expression(parser, PM_BINDING_POWER_STATEMENT, true, PM_ERR_DEF_RECEIVER); + accept1(parser, PM_TOKEN_NEWLINE); expect1(parser, PM_TOKEN_PARENTHESIS_RIGHT, PM_ERR_EXPECT_RPAREN); pm_token_t rparen = parser->previous; diff --git a/test/prism/errors_test.rb b/test/prism/errors_test.rb index 7ce6d17be5..2c981fbd42 100644 --- a/test/prism/errors_test.rb +++ b/test/prism/errors_test.rb @@ -335,10 +335,10 @@ module Prism def test_def_with_multiple_statements_receiver assert_errors expression("def (\na\nb\n).c; end"), "def (\na\nb\n).c; end", [ - ["expected a matching `)`", 7..7], - ["expected a `.` or `::` after the receiver in a method definition", 7..7], - ["expected a method name", 7..7], - ["cannot parse the expression", 10..10], + ["expected a matching `)`", 8..8], + ["expected a `.` or `::` after the receiver in a method definition", 8..8], + ["expected a delimiter to close the parameters", 9..9], + ["cannot parse the expression", 9..9], ["cannot parse the expression", 11..11] ] end |
