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
commit7b319538c27af2928a20c4e1f0108386f7fe2a37 (patch)
tree4c7e4127864f6139b11cf3bfd33c5dc30be7d9cd /variable.c
parenta9412adde8e679a35f4367b97f3fb9b0d4f0f4ec (diff)
19991129
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_4@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 7b273933ac..28fc2b78ba 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