Skip to content

Commit

Permalink
[ruby/prism] More closely match CRuby error messages
Browse files Browse the repository at this point in the history
  • Loading branch information
kddnewton authored and matzbot committed Dec 8, 2023
1 parent 0204523 commit 892b5f1
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 16 deletions.
4 changes: 2 additions & 2 deletions prism/diagnostic.c
Expand Up @@ -192,7 +192,7 @@ static const char* const diagnostic_messages[PM_DIAGNOSTIC_ID_LEN] = {
[PM_ERR_MULTI_ASSIGN_MULTI_SPLATS] = "multiple splats in multiple assignment",
[PM_ERR_NOT_EXPRESSION] = "expected an expression after `not`",
[PM_ERR_NUMBER_LITERAL_UNDERSCORE] = "number literal ending with a `_`",
[PM_ERR_NUMBERED_PARAMETER_NOT_ALLOWED] = "numbered parameters are not allowed alongside explicit parameters",
[PM_ERR_NUMBERED_PARAMETER_NOT_ALLOWED] = "numbered parameters are not allowed when an ordinary parameter is defined",
[PM_ERR_NUMBERED_PARAMETER_OUTER_SCOPE] = "numbered parameter is already used in outer scope",
[PM_ERR_OPERATOR_MULTI_ASSIGN] = "unexpected operator for a multiple assignment",
[PM_ERR_OPERATOR_WRITE_ARGUMENTS] = "unexpected operator after a call with arguments",
Expand All @@ -204,7 +204,7 @@ static const char* const diagnostic_messages[PM_DIAGNOSTIC_ID_LEN] = {
[PM_ERR_PARAMETER_NAME_REPEAT] = "repeated parameter name",
[PM_ERR_PARAMETER_NO_DEFAULT] = "expected a default value for the parameter",
[PM_ERR_PARAMETER_NO_DEFAULT_KW] = "expected a default value for the keyword parameter",
[PM_ERR_PARAMETER_NUMBERED_RESERVED] = "%.2s is reserved for a numbered parameter",
[PM_ERR_PARAMETER_NUMBERED_RESERVED] = "%.2s is reserved for numbered parameters",
[PM_ERR_PARAMETER_ORDER] = "unexpected parameter order",
[PM_ERR_PARAMETER_SPLAT_MULTI] = "unexpected multiple `*` splat parameters",
[PM_ERR_PARAMETER_STAR] = "unexpected parameter `*`",
Expand Down
28 changes: 14 additions & 14 deletions test/prism/errors_test.rb
Expand Up @@ -608,15 +608,15 @@ def test_cannot_assign_to_a_reserved_numbered_parameter
end
RUBY
assert_errors expected, source, [
["_1 is reserved for a numbered parameter", 8..10],
["_2 is reserved for a numbered parameter", 14..16],
["_3 is reserved for a numbered parameter", 20..22],
["_4 is reserved for a numbered parameter", 26..28],
["_5 is reserved for a numbered parameter", 32..34],
["_6 is reserved for a numbered parameter", 40..42],
["_7 is reserved for a numbered parameter", 46..48],
["_8 is reserved for a numbered parameter", 52..54],
["_9 is reserved for a numbered parameter", 58..60],
["_1 is reserved for numbered parameters", 8..10],
["_2 is reserved for numbered parameters", 14..16],
["_3 is reserved for numbered parameters", 20..22],
["_4 is reserved for numbered parameters", 26..28],
["_5 is reserved for numbered parameters", 32..34],
["_6 is reserved for numbered parameters", 40..42],
["_7 is reserved for numbered parameters", 46..48],
["_8 is reserved for numbered parameters", 52..54],
["_9 is reserved for numbered parameters", 58..60],
]
end

Expand Down Expand Up @@ -1350,18 +1350,18 @@ def test_index_call_with_block_operator_write

def test_writing_numbered_parameter
assert_errors expression("-> { _1 = 0 }"), "-> { _1 = 0 }", [
["_1 is reserved for a numbered parameter", 5..7]
["_1 is reserved for numbered parameters", 5..7]
]
end

def test_targeting_numbered_parameter
assert_errors expression("-> { _1, = 0 }"), "-> { _1, = 0 }", [
["_1 is reserved for a numbered parameter", 5..7]
["_1 is reserved for numbered parameters", 5..7]
]
end

def test_defining_numbered_parameter
error_messages = ["_1 is reserved for a numbered parameter"]
error_messages = ["_1 is reserved for numbered parameters"]

assert_error_messages "def _1; end", error_messages
assert_error_messages "def self._1; end", error_messages
Expand Down Expand Up @@ -1416,7 +1416,7 @@ def test_begin_at_toplevel
def test_numbered_parameters_in_block_arguments
source = "foo { |_1| }"
assert_errors expression(source), source, [
["_1 is reserved for a numbered parameter", 7..9],
["_1 is reserved for numbered parameters", 7..9],
]
end

Expand Down Expand Up @@ -1502,7 +1502,7 @@ def test_assign_to_numbered_parameter
/(?<_1>)/ =~ a
RUBY

message = "_1 is reserved for a numbered parameter"
message = "_1 is reserved for numbered parameters"
assert_errors expression(source), source, [
[message, 5..7],
[message, 13..15],
Expand Down

0 comments on commit 892b5f1

Please sign in to comment.