summaryrefslogtreecommitdiffstats
path: root/variable.c
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-11-29 06:33:02 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>1999-11-29 06:33:02 +0000
commit122d4994c7ce43b08e66da1c7d1fdce549a3f3ba (patch)
tree0d50e885e5bc53706f2dc9051b6d45146a0dd058 /variable.c
parent806ff7412735cc554d9fd79e550466e7ba9d0f2a (diff)
downloadruby-122d4994c7ce43b08e66da1c7d1fdce549a3f3ba.tar.gz
ruby-122d4994c7ce43b08e66da1c7d1fdce549a3f3ba.tar.xz
ruby-122d4994c7ce43b08e66da1c7d1fdce549a3f3ba.zip
19991129
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/variable.c b/variable.c
index 41f935dff..b29ce55cc 100644
--- a/variable.c
+++ b/variable.c
@@ -195,10 +195,20 @@ VALUE
rb_path2class(path)
const char *path;
{
+ VALUE c;
+
if (path[0] == '#') {
rb_raise(rb_eArgError, "can't retrieve anonymous class %s", path);
}
- return rb_eval_string(path);
+ c = rb_eval_string(path);
+ switch (TYPE(c)) {
+ case T_MODULE:
+ case T_CLASS:
+ break;
+ default:
+ rb_raise(rb_eTypeError, "class path %s does not point class", path);
+ }
+ return c;
}
void