summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-09-05 04:15:50 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-09-05 04:15:50 +0000
commitee6907f568f9c7b06815ffe367f0250c5ab77caa (patch)
tree723d91e6b793403002afcb8386d0d3dc3477eebb
parent118d003c92268deb9fdeddb8d5f1056bf21adb0d (diff)
downloadruby-ee6907f568f9c7b06815ffe367f0250c5ab77caa.tar.gz
ruby-ee6907f568f9c7b06815ffe367f0250c5ab77caa.tar.xz
ruby-ee6907f568f9c7b06815ffe367f0250c5ab77caa.zip
* eval.c (rb_eval): overriding false constant with class/module
definition should be error. (PR#327) git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@2796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--eval.c6
2 files changed, 5 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index ee72e0c89..8b77b9fcf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Sep 5 13:09:22 2002 Nobuyoshi Nakada <nobu.nokada@softhome.net>
+
+ * eval.c (rb_eval): overriding false constant with class/module
+ definition should be error. (PR#327)
+
Thu Sep 5 01:24:26 2002 WATANABE Hirofumi <eban@ruby-lang.org>
* extmk.rb (create_makefile): add macro MAKEDIRS, INSTALL_PROG,
diff --git a/eval.c b/eval.c
index 25ce38905..9d45c547a 100644
--- a/eval.c
+++ b/eval.c
@@ -3299,14 +3299,11 @@ rb_eval(self, n)
super = 0;
}
- klass = 0;
if ((ruby_class == rb_cObject) && rb_autoload_defined(node->nd_cname)) {
rb_autoload_load(node->nd_cname);
}
if (rb_const_defined_at(ruby_class, node->nd_cname)) {
klass = rb_const_get(ruby_class, node->nd_cname);
- }
- if (klass) {
if (TYPE(klass) != T_CLASS) {
rb_raise(rb_eTypeError, "%s is not a class",
rb_id2name(node->nd_cname));
@@ -3345,14 +3342,11 @@ rb_eval(self, n)
if (NIL_P(ruby_class)) {
rb_raise(rb_eTypeError, "no outer class/module");
}
- module = 0;
if ((ruby_class == rb_cObject) && rb_autoload_defined(node->nd_cname)) {
rb_autoload_load(node->nd_cname);
}
if (rb_const_defined_at(ruby_class, node->nd_cname)) {
module = rb_const_get(ruby_class, node->nd_cname);
- }
- if (module) {
if (TYPE(module) != T_MODULE) {
rb_raise(rb_eTypeError, "%s is not a module",
rb_id2name(node->nd_cname));