diff options
author | Jeremy Evans <code@jeremyevans.net> | 2020-05-29 15:54:30 -0700 |
---|---|---|
committer | Jeremy Evans <code@jeremyevans.net> | 2020-07-22 08:34:51 -0700 |
commit | d47e124857ecdccfeb0766c04cf1ef2cdfdd08bc (patch) | |
tree | 1c22bef53c967a04a90cefcf6b5d56e52848ec6a /spec/ruby | |
parent | 50aac2ffd59c7b0d871a82c23048846ad2f3f38b (diff) | |
download | ruby-d47e124857ecdccfeb0766c04cf1ef2cdfdd08bc.tar.gz |
Switch reserved for numbered parameter warning to SyntaxError
Diffstat (limited to 'spec/ruby')
-rw-r--r-- | spec/ruby/language/numbered_parameters_spec.rb | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/spec/ruby/language/numbered_parameters_spec.rb b/spec/ruby/language/numbered_parameters_spec.rb index e7b2204d4a..5b0f74b3ab 100644 --- a/spec/ruby/language/numbered_parameters_spec.rb +++ b/spec/ruby/language/numbered_parameters_spec.rb @@ -32,19 +32,38 @@ ruby_version_is "2.7" do }.should raise_error(SyntaxError, /numbered parameter is already used in.+ outer block here/m) end - it "can be overwritten with local variable" do - suppress_warning do - eval <<~CODE - _1 = 0 - proc { _1 }.call("a").should == 0 - CODE + ruby_version_is '2.7'...'2.8' do + it "can be overwritten with local variable" do + suppress_warning do + eval <<~CODE + _1 = 0 + proc { _1 }.call("a").should == 0 + CODE + end + end + + it "warns when numbered parameter is overriten with local variable" do + -> { + eval("_1 = 0") + }.should complain(/warning: `_1' is reserved for numbered parameter; consider another name/) end end - it "warns when numbered parameter is overriten with local variable" do - -> { - eval("_1 = 0") - }.should complain(/warning: `_1' is reserved for numbered parameter; consider another name/) + ruby_version_is '2.8' do + it "cannot be overwritten with local variable" do + -> { + eval <<~CODE + _1 = 0 + proc { _1 }.call("a").should == 0 + CODE + }.should raise_error(SyntaxError, /_1 is reserved for numbered parameter/) + end + + it "errors when numbered parameter is overriten with local variable" do + -> { + eval("_1 = 0") + }.should raise_error(SyntaxError, /_1 is reserved for numbered parameter/) + end end it "raises SyntaxError when block parameters are specified explicitly" do |