summaryrefslogtreecommitdiff
path: root/spec/ruby/language
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-23 00:40:08 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-03-23 00:40:08 +0000
commit140512d2225e6fd046ba1bdbcd1a27450f55c233 (patch)
treeea3c902891394c57d14dc04c3bdcf3ced924423b /spec/ruby/language
parent631272ff1587a7a76f75593ec5964493222ca50c (diff)
parse.y: else without rescue
* parse.y (bodystmt): [EXPERIMENTAL] make `else` without `rescue` a syntax error. [DevelopersMeeting20180315Japan] https://bugs.ruby-lang.org/projects/ruby/wiki/DevelopersMeeting20180315Japan https://docs.google.com/document/d/1RT0ijSo8uJ4Awn3CEvuYkjH0TVeXSYgeAFNmVGYC3ak/edit# > * do-else-end > https://twitter.com/joker1007/status/974173396006129664 > https://twitter.com/joker1007/status/974173641347756032 > https://twitter.com/joker1007/status/974176512554369027 > Will be SyntaxError in 2.6-preview2 > All of begin/do/def (experimental) git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/ruby/language')
-rw-r--r--spec/ruby/language/rescue_spec.rb18
1 files changed, 13 insertions, 5 deletions
diff --git a/spec/ruby/language/rescue_spec.rb b/spec/ruby/language/rescue_spec.rb
index b3de84468b..66a493cd34 100644
--- a/spec/ruby/language/rescue_spec.rb
+++ b/spec/ruby/language/rescue_spec.rb
@@ -195,18 +195,26 @@ describe "The rescue keyword" do
ScratchPad.recorded.should == [:one, :else_ran, :ensure_ran, :outside_begin]
end
- it "will execute an else block even without rescue and ensure" do
- lambda {
- eval <<-ruby
+ else_without_rescue = lambda {
+ eval <<-ruby
begin
ScratchPad << :begin
else
ScratchPad << :else
end
ruby
- }.should complain(/else without rescue is useless/)
+ }
+
+ ruby_version_is ""..."2.6" do
+ it "will execute an else block even without rescue and ensure" do
+ else_without_rescue.should complain(/else without rescue is useless/)
+
+ ScratchPad.recorded.should == [:begin, :else]
+ end
+ end
- ScratchPad.recorded.should == [:begin, :else]
+ ruby_version_is "2.6" do
+ else_without_rescue.should raise_error(SyntaxError)
end
it "will not execute an else block if an exception was raised" do