summaryrefslogtreecommitdiff
path: root/spec/ruby/language
diff options
context:
space:
mode:
authorBenoit Daloze <eregontp@gmail.com>2020-07-27 21:41:08 +0200
committerBenoit Daloze <eregontp@gmail.com>2020-07-27 21:41:08 +0200
commit126fd5f15cff0d3bf314d90d8c21a3ae25ae8e68 (patch)
tree33350f7170436c32ed4c8e79f0be2c334c7bc8a9 /spec/ruby/language
parent7429841ab6494b849106e6d3b119f147adfee3b7 (diff)
Update to ruby/spec@07164da
Diffstat (limited to 'spec/ruby/language')
-rw-r--r--spec/ruby/language/break_spec.rb18
-rw-r--r--spec/ruby/language/numbered_parameters_spec.rb4
2 files changed, 20 insertions, 2 deletions
diff --git a/spec/ruby/language/break_spec.rb b/spec/ruby/language/break_spec.rb
index 754d5d3c49..627cb4a071 100644
--- a/spec/ruby/language/break_spec.rb
+++ b/spec/ruby/language/break_spec.rb
@@ -362,4 +362,22 @@ describe "Executing break from within a block" do
bt2.three
ScratchPad.recorded.should == [:two_ensure, :three_post, :three_ensure]
end
+
+ it "works when passing through a super call" do
+ cls1 = Class.new { def foo; yield; end }
+ cls2 = Class.new(cls1) { def foo; super { break 1 }; end }
+
+ -> do
+ cls2.new.foo.should == 1
+ end.should_not raise_error
+ end
+
+ it "raises LocalJumpError when converted into a proc during a a super call" do
+ cls1 = Class.new { def foo(&b); b; end }
+ cls2 = Class.new(cls1) { def foo; super { break 1 }.call; end }
+
+ -> do
+ cls2.new.foo
+ end.should raise_error(LocalJumpError)
+ end
end
diff --git a/spec/ruby/language/numbered_parameters_spec.rb b/spec/ruby/language/numbered_parameters_spec.rb
index 5b0f74b3ab..9dd79f44b8 100644
--- a/spec/ruby/language/numbered_parameters_spec.rb
+++ b/spec/ruby/language/numbered_parameters_spec.rb
@@ -42,7 +42,7 @@ ruby_version_is "2.7" do
end
end
- it "warns when numbered parameter is overriten with local variable" do
+ it "warns when numbered parameter is overwritten with local variable" do
-> {
eval("_1 = 0")
}.should complain(/warning: `_1' is reserved for numbered parameter; consider another name/)
@@ -59,7 +59,7 @@ ruby_version_is "2.7" do
}.should raise_error(SyntaxError, /_1 is reserved for numbered parameter/)
end
- it "errors when numbered parameter is overriten with local variable" do
+ it "errors when numbered parameter is overwritten with local variable" do
-> {
eval("_1 = 0")
}.should raise_error(SyntaxError, /_1 is reserved for numbered parameter/)