summaryrefslogtreecommitdiff
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
commit40517ecac82e4b406227bd30fd89d05c2e90bc87 (patch)
tree0d50e885e5bc53706f2dc9051b6d45146a0dd058 /variable.c
parent2b49047143d1e10d6dd5d2359dba2d302fa07c66 (diff)
19991129
git-svn-id: svn+ssh://ci.ruby-lang.org/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 41f935dff8..b29ce55cce 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