diff options
| author | Kevin Newton <kddnewton@gmail.com> | 2024-04-01 15:44:08 -0400 |
|---|---|---|
| committer | Kevin Newton <kddnewton@gmail.com> | 2024-04-03 17:34:12 -0400 |
| commit | 3147404d64d076b1ee361323f1e3c457d0fbfe62 (patch) | |
| tree | 778b25e2c7dc5136221604ca5dbde5813422a0f8 | |
| parent | 571bfc7402bb05becb00a7ea1b8971ac6ad92d8a (diff) | |
[ruby/prism] Match circular parameter error message
https://github.com/ruby/prism/commit/c0381b10e4
| -rw-r--r-- | prism/prism.c | 2 | ||||
| -rw-r--r-- | prism/templates/src/diagnostic.c.erb | 2 | ||||
| -rw-r--r-- | test/prism/errors_test.rb | 9 |
3 files changed, 6 insertions, 7 deletions
diff --git a/prism/prism.c b/prism/prism.c index d03a11583f..4c550678c0 100644 --- a/prism/prism.c +++ b/prism/prism.c @@ -4841,7 +4841,7 @@ pm_local_variable_or_write_node_create(pm_parser_t *parser, pm_node_t *target, c static pm_local_variable_read_node_t * pm_local_variable_read_node_create_constant_id(pm_parser_t *parser, const pm_token_t *name, pm_constant_id_t name_id, uint32_t depth) { if (parser->current_param_name == name_id) { - pm_parser_err_token(parser, name, PM_ERR_PARAMETER_CIRCULAR); + PM_PARSER_ERR_TOKEN_FORMAT_CONTENT(parser, *name, PM_ERR_PARAMETER_CIRCULAR); } pm_local_variable_read_node_t *node = PM_ALLOC_NODE(parser, pm_local_variable_read_node_t); diff --git a/prism/templates/src/diagnostic.c.erb b/prism/templates/src/diagnostic.c.erb index 3d5073147a..316e07bdee 100644 --- a/prism/templates/src/diagnostic.c.erb +++ b/prism/templates/src/diagnostic.c.erb @@ -251,7 +251,7 @@ static const pm_diagnostic_data_t diagnostic_messages[PM_DIAGNOSTIC_ID_MAX] = { [PM_ERR_OPERATOR_WRITE_BLOCK] = { "unexpected operator after a call with a block", PM_ERROR_LEVEL_SYNTAX }, [PM_ERR_PARAMETER_ASSOC_SPLAT_MULTI] = { "unexpected multiple `**` splat parameters", PM_ERROR_LEVEL_SYNTAX }, [PM_ERR_PARAMETER_BLOCK_MULTI] = { "multiple block parameters; only one block is allowed", PM_ERROR_LEVEL_SYNTAX }, - [PM_ERR_PARAMETER_CIRCULAR] = { "parameter default value references itself", PM_ERROR_LEVEL_SYNTAX }, + [PM_ERR_PARAMETER_CIRCULAR] = { "circular argument reference - %.*s", PM_ERROR_LEVEL_SYNTAX }, [PM_ERR_PARAMETER_METHOD_NAME] = { "unexpected name for a parameter", PM_ERROR_LEVEL_SYNTAX }, [PM_ERR_PARAMETER_NAME_DUPLICATED] = { "duplicated argument name", PM_ERROR_LEVEL_SYNTAX }, [PM_ERR_PARAMETER_NO_DEFAULT] = { "expected a default value for the parameter", PM_ERROR_LEVEL_SYNTAX }, diff --git a/test/prism/errors_test.rb b/test/prism/errors_test.rb index dbc4a8924d..65e8e4748c 100644 --- a/test/prism/errors_test.rb +++ b/test/prism/errors_test.rb @@ -1943,12 +1943,11 @@ module Prism proc { |foo: foo| } RUBY - message = 'parameter default value references itself' assert_errors expression(source), source, [ - [message, 14..17], - [message, 37..40], - [message, 61..64], - [message, 81..84], + ["circular argument reference - bar", 14..17], + ["circular argument reference - bar", 37..40], + ["circular argument reference - foo", 61..64], + ["circular argument reference - foo", 81..84], ] end |
