aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2019-12-20 14:54:44 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2019-12-20 14:58:51 +0900
commit7a94225e7d04f17ddd37433c3904b04fec97f281 (patch)
treee828c642ed1f7883fce738b64b89fa4c7e92e946
parenta8bddb3a189545a2bef8ee7cffdb328d8de7974c (diff)
downloadruby-7a94225e7d04f17ddd37433c3904b04fec97f281.tar.gz
Refined the warning message for numbered-parameter like variables
[Bug #16438]
-rw-r--r--NEWS2
-rw-r--r--parse.y2
-rw-r--r--test/ruby/test_syntax.rb2
3 files changed, 3 insertions, 3 deletions
diff --git a/NEWS b/NEWS
index bfd93a4df8..e0efad8100 100644
--- a/NEWS
+++ b/NEWS
@@ -127,7 +127,7 @@ sufficient information, see the ChangeLog file or Redmine
You can still define a local variable named _1 and so on, and that is honored when present, but renders warning.
- _1 = 0 #=> warning: `_1' is used as numbered parameter
+ _1 = 0 #=> warning: `_1' is reserved for numbered parameter; consider another name
[1].each { p _1 } # prints 0 instead of 1
==== proc/lambda without block is deprecated
diff --git a/parse.y b/parse.y
index 05e2c1d552..9f7e3a650d 100644
--- a/parse.y
+++ b/parse.y
@@ -11836,7 +11836,7 @@ static void
numparam_name(struct parser_params *p, ID id)
{
if (!NUMPARAM_ID_P(id)) return;
- rb_warn1("`_%d' is reserved as numbered parameter",
+ rb_warn1("`_%d' is reserved for numbered parameter; consider another name",
WARN_I(NUMPARAM_ID_TO_IDX(id)));
}
diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb
index 540ab7b84a..d50c325a8e 100644
--- a/test/ruby/test_syntax.rb
+++ b/test/ruby/test_syntax.rb
@@ -1437,7 +1437,7 @@ eom
assert_syntax_error('-> {_1; -> {_2}}', /numbered parameter is already used/)
assert_syntax_error('-> {-> {_1}; _2}', /numbered parameter is already used/)
assert_syntax_error('proc {_1; _1 = nil}', /Can't assign to numbered parameter _1/)
- mesg = proc {|n| /`_#{n}' is reserved as numbered parameter/}
+ mesg = proc {|n| /`_#{n}' is reserved for numbered parameter/}
assert_warn(mesg[1]) {eval('proc {_1 = nil}')}
assert_warn(mesg[2]) {eval('_2=1')}
assert_warn(mesg[3]) {eval('proc {|_3|}')}