diff options
| author | Aaron Patterson <tenderlove@ruby-lang.org> | 2023-11-29 14:39:26 -0800 |
|---|---|---|
| committer | Jemma Issroff <jemmaissroff@gmail.com> | 2023-11-30 09:48:14 -0500 |
| commit | 630c97acc74701724b3a1beb3f92aae192c69769 (patch) | |
| tree | 7c071a12ca06839cfb6d0fe6995f47d000b28086 /test/ruby | |
| parent | 2c64041ed5de8cb040fbc62e126055e553bcf5db (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.rb | 3 |
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") |
