diff options
| author | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-01-20 20:38:57 +0000 |
|---|---|---|
| committer | eregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-01-20 20:38:57 +0000 |
| commit | 6204e0804b24f1675b49d5880da014411bcfb831 (patch) | |
| tree | ce6c00bf078fc416936ca3cdc972b9b3c1c78dae /spec/ruby/language/variables_spec.rb | |
| parent | 58573c33e4720315ed27491e31dcc22892e1ce95 (diff) | |
| download | ruby-6204e0804b24f1675b49d5880da014411bcfb831.tar.gz | |
Update to ruby/spec@35a9fba
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/ruby/language/variables_spec.rb')
| -rw-r--r-- | spec/ruby/language/variables_spec.rb | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/spec/ruby/language/variables_spec.rb b/spec/ruby/language/variables_spec.rb index 4c4599bec4..640c9e49ac 100644 --- a/spec/ruby/language/variables_spec.rb +++ b/spec/ruby/language/variables_spec.rb @@ -758,3 +758,31 @@ describe "A local variable assigned only within a conditional block" do end end end + +describe 'Local variable shadowing' do + ruby_version_is ""..."2.6" do + it "leads to warning in verbose mode" do + -> do + eval <<-CODE + a = [1, 2, 3] + a.each { |a| a = 3 } + CODE + end.should complain(/shadowing outer local variable/, verbose: true) + end + end + + ruby_version_is "2.6" do + it "does not warn in verbose mode" do + result = nil + + -> do + eval <<-CODE + a = [1, 2, 3] + result = a.map { |a| a = 3 } + CODE + end.should_not complain(verbose: true) + + result.should == [3, 3, 3] + end + end +end |
