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