Commit 5612d195 authored by Daniel Bovensiepen's avatar Daniel Bovensiepen

Improve Class#superclass to ISO

parent 7009a1d8
......@@ -822,10 +822,16 @@ mrb_class_new_class(mrb_state *mrb, mrb_value cv)
mrb_value
mrb_class_superclass(mrb_state *mrb, mrb_value klass)
{
struct RClass *c, *s;
struct RClass *c;
mrb_value superclass;
c = mrb_class_ptr(klass);
s = mrb_class_real(c->super);
return mrb_obj_value(s);
if (c->super)
superclass = mrb_obj_value(mrb_class_real(c->super));
else
superclass = mrb_nil_value();
return superclass;
}
static mrb_value
......
......@@ -5,9 +5,8 @@ assert('Class', '15.2.3') do
Class.class == Class
end
assert('Class#superclass', '15.2.3.3.4') do
class SubClass < String; end
SubClass.superclass == String
assert('Class superclass', '15.2.3.2') do
Class.superclass == Module
end
assert('Class#new', '15.2.3.3.3') do
......@@ -40,6 +39,11 @@ assert('Class#new', '15.2.3.3.3') do
# with block doesn't work yet
end
assert('Class#superclass', '15.2.3.3.4') do
class SubClass < String; end
SubClass.superclass == String
end
# Not ISO specified
assert('Class 1') do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment