summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMatt Valentine-House <[email protected]>2023-11-10 14:51:14 +0000
committerMatt Valentine-House <[email protected]>2023-12-01 16:40:25 +0000
commit90d9c20a0c0df5565d5f95d5e14c58331fa5922f (patch)
treebd024e2099483e16b236c3beb3b9685e7fe41418 /test
parent8f3310dc7519682f382ed589c5c1ed5b41627451 (diff)
[PRISM] Compile RescueNode
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_compile_prism.rb64
1 files changed, 64 insertions, 0 deletions
diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb
index fcc1f849d5..d62ee7c879 100644
--- a/test/ruby/test_compile_prism.rb
+++ b/test/ruby/test_compile_prism.rb
@@ -769,6 +769,70 @@ module Prism
# )
end
+ def test_RescueNode
+ assert_prism_eval("begin; 1; rescue; 2; end")
+ assert_prism_eval(<<~CODE)
+ begin
+ 1
+ rescue SyntaxError
+ 2
+ end
+ CODE
+ assert_prism_eval(<<~CODE)
+ begin
+ 1
+ raise 'boom'
+ rescue StandardError
+ 2
+ end
+ CODE
+ assert_prism_eval(<<~CODE)
+ begin
+ a = 1
+ rescue StandardError => e
+ end
+ CODE
+ assert_prism_eval(<<~CODE)
+ begin
+ 1
+ rescue StandardError => e
+ e
+ rescue SyntaxError => f
+ f
+ else
+ 4
+ end
+ CODE
+ assert_prism_eval(<<-CODE)
+ begin
+ a = 2
+ rescue
+ a = 3
+ end
+ a
+ CODE
+ assert_prism_eval(<<-CODE)
+ a = 1
+ begin
+ a = 2
+ rescue
+ a = 3
+ end
+ a
+ CODE
+ assert_prism_eval(<<-CODE)
+ a = 1
+ begin
+ b = 2
+ raise "bang"
+ rescue
+ c = 3
+ end
+ a + b + c
+ CODE
+ assert_prism_eval("begin; rescue; end")
+ end
+
def test_ReturnNode
assert_prism_eval("def return_node; return 1; end")
end