1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

parse.y: "nil" for defined? with empty expression

* parse.y (new_defined): remove all extra parentheses, and return
  "nil" for defined? with empty expression.
  [ruby-core:54024] [Bug #8224]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2013-04-05 17:30:42 +00:00
parent 7a7bb64464
commit 40370296c7
3 changed files with 30 additions and 2 deletions

View file

@ -89,6 +89,13 @@ class TestDefined < Test::Unit::TestCase
assert_equal("true", defined?(true))
assert_equal("false", defined?(false))
assert_equal("expression", defined?(1))
bug8224 = '[ruby-core:54024] [Bug #8224]'
(1..3).each do |level|
expr = "("*level+")"*level
assert_equal("nil", eval("defined? #{expr}"), "#{bug8224} defined? #{expr}")
assert_equal("nil", eval("defined?(#{expr})"), "#{bug8224} defined?(#{expr})")
end
end
def test_defined_impl_specific