summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2023-11-29 14:39:26 -0800
committerJemma Issroff <jemmaissroff@gmail.com>2023-11-30 09:48:14 -0500
commit630c97acc74701724b3a1beb3f92aae192c69769 (patch)
tree7c071a12ca06839cfb6d0fe6995f47d000b28086 /test/ruby
parent2c64041ed5de8cb040fbc62e126055e553bcf5db (diff)
Add a rescue for `defined?(A::B::C)`
It's possible for `defined?(A::B::C)` to raise an exception. `defined?` must swallow the exception and return nil, so this commit adds a rescue entry for `defined?` expressions on constant paths
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_compile_prism.rb3
1 files changed, 3 insertions, 0 deletions
diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb
index e0db446fa7..63b06bc9bd 100644
--- a/test/ruby/test_compile_prism.rb
+++ b/test/ruby/test_compile_prism.rb
@@ -88,6 +88,8 @@ module Prism
assert_prism_eval("Prism")
end
+ Z = 1
+
def test_DefinedNode
assert_prism_eval("defined? nil")
assert_prism_eval("defined? self")
@@ -105,6 +107,7 @@ module Prism
assert_prism_eval("defined? ::A")
assert_prism_eval("defined? A::B")
assert_prism_eval("defined? A::B::C")
+ assert_prism_eval("defined? #{self.class.name}::Z::A")
assert_prism_eval("defined? yield")
assert_prism_eval("defined? super")