summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPeter Zhu <[email protected]>2024-01-17 11:19:54 -0500
committerPeter Zhu <[email protected]>2024-01-17 13:17:44 -0500
commitf43a919be494cf5b0f98f104da1024efda1abba5 (patch)
treefbe9c77aeff9d38490e4d38cce8d5e164113f3c7 /test
parentde9411c0b91010e3a30b86904c7470b724564341 (diff)
[PRISM] Fix fallthrough for PM_ENSURE_NODE
This caused it to fall into PM_ELSE_NODE which caused ensure nodes to be compiled twice. Fixes ruby/prism#2176.
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_compile_prism.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb
index c0f85af8b4..d547f82fe3 100644
--- a/test/ruby/test_compile_prism.rb
+++ b/test/ruby/test_compile_prism.rb
@@ -931,6 +931,21 @@ module Prism
end
a
CODE
+
+ # Test that ensure block only evaluated once
+ assert_prism_eval(<<~RUBY)
+ res = []
+ begin
+ begin
+ raise
+ ensure
+ res << $!.to_s
+ end
+ rescue
+ res
+ end
+ RUBY
+
assert_prism_eval(<<-CODE)
a = 1
begin