mirror of
https://github.com/ruby/ruby.git
synced 2025-09-23 20:44:00 +02:00
* object.c (rb_mod_const_get): Fix constant missing exception class
and message to maintain backwards compatibility. Constant search should start at Object when constant starts with '::' * test/ruby/test_module.rb: test for fixes git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e5e5d0c55e
commit
ac7f5157ac
3 changed files with 43 additions and 1 deletions
|
@ -240,6 +240,24 @@ class TestModule < Test::Unit::TestCase
|
|||
assert(!Math.const_defined?("IP"))
|
||||
end
|
||||
|
||||
def test_bad_constants
|
||||
[
|
||||
"#<Class:0x7b8b718b>",
|
||||
":Object",
|
||||
"",
|
||||
":",
|
||||
].each do |name|
|
||||
e = assert_raises(NameError) {
|
||||
Object.const_get name
|
||||
}
|
||||
assert_equal("wrong constant name %s" % name, e.message)
|
||||
end
|
||||
end
|
||||
|
||||
def test_leading_colons
|
||||
assert_equal Object, AClass.const_get('::Object')
|
||||
end
|
||||
|
||||
def test_const_get
|
||||
assert_equal(Math::PI, Math.const_get("PI"))
|
||||
assert_equal(Math::PI, Math.const_get(:PI))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue