summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--object.c2
-rw-r--r--test/-ext-/symbol/test_inadvertent_creation.rb8
3 files changed, 14 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 1d6a129806..9d032f9912 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat Feb 20 01:53:33 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * object.c (rb_mod_const_get): make error message at uninterned
+ string consistent with symbols. [ruby-dev:49498] [Bug #12089]
+
Fri Feb 19 23:37:52 2016 Masahiro Tomita <tommy@tmtm.org>
* lib/find.rb (Find#find): raise with the given path name if it
diff --git a/object.c b/object.c
index 2497043b46..afb9dd6715 100644
--- a/object.c
+++ b/object.c
@@ -2139,7 +2139,7 @@ rb_mod_const_get(int argc, VALUE *argv, VALUE mod)
continue;
}
else {
- rb_name_err_raise("uninitialized constant %2$s::%1$s", mod, part);
+ rb_mod_const_missing(mod, part);
}
}
if (!rb_is_const_id(id)) {
diff --git a/test/-ext-/symbol/test_inadvertent_creation.rb b/test/-ext-/symbol/test_inadvertent_creation.rb
index 073952fae3..5d3906a40b 100644
--- a/test/-ext-/symbol/test_inadvertent_creation.rb
+++ b/test/-ext-/symbol/test_inadvertent_creation.rb
@@ -54,6 +54,14 @@ module Test_Symbol
assert_not_interned_error(cl, :const_get, name.to_sym)
end
+ def test_module_const_get_toplevel
+ bug12089 = '[ruby-dev:49498] [Bug #12089]'
+ name = noninterned_name("A")
+ e = assert_not_interned_error(Object, :const_get, name)
+ assert_equal(name, e.name)
+ assert_not_match(/Object::/, e.message, bug12089)
+ end
+
def test_module_const_defined?
cl = Class.new
name = noninterned_name("A")