From adaaa7878ebee62888bf3547d14c1db4938da88a Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 18 Mar 2025 13:40:49 -0400 Subject: Handle void expressions in defined? [Bug #21029] --- test/ruby/test_defined.rb | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'test/ruby') diff --git a/test/ruby/test_defined.rb b/test/ruby/test_defined.rb index 3a8065d959..db1fdc8e25 100644 --- a/test/ruby/test_defined.rb +++ b/test/ruby/test_defined.rb @@ -243,6 +243,26 @@ class TestDefined < Test::Unit::TestCase assert_nil(defined?(p () + 1)) end + def test_defined_paren_void_stmts + assert_equal("expression", defined? (;x)) + assert_equal("expression", defined? (x;)) + assert_nil(defined? ( + + x + + )) + + x = 1 + + assert_equal("expression", defined? (;x)) + assert_equal("expression", defined? (x;)) + assert_equal("local-variable", defined? ( + + x + + )) + end + def test_defined_impl_specific feature7035 = '[ruby-core:47558]' # not spec assert_predicate(defined?(Foo), :frozen?, feature7035) -- cgit v1.2.3