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) ...@@ -822,10 +822,16 @@ mrb_class_new_class(mrb_state *mrb, mrb_value cv)
mrb_value mrb_value
mrb_class_superclass(mrb_state *mrb, mrb_value klass) mrb_class_superclass(mrb_state *mrb, mrb_value klass)
{ {
struct RClass *c, *s; struct RClass *c;
mrb_value superclass;
c = mrb_class_ptr(klass); c = mrb_class_ptr(klass);
s = mrb_class_real(c->super); if (c->super)
return mrb_obj_value(s); superclass = mrb_obj_value(mrb_class_real(c->super));
else
superclass = mrb_nil_value();
return superclass;
} }
static mrb_value static mrb_value
......
...@@ -5,9 +5,8 @@ assert('Class', '15.2.3') do ...@@ -5,9 +5,8 @@ assert('Class', '15.2.3') do
Class.class == Class Class.class == Class
end end
assert('Class#superclass', '15.2.3.3.4') do assert('Class superclass', '15.2.3.2') do
class SubClass < String; end Class.superclass == Module
SubClass.superclass == String
end end
assert('Class#new', '15.2.3.3.3') do assert('Class#new', '15.2.3.3.3') do
...@@ -40,6 +39,11 @@ 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 # with block doesn't work yet
end end
assert('Class#superclass', '15.2.3.3.4') do
class SubClass < String; end
SubClass.superclass == String
end
# Not ISO specified # Not ISO specified
assert('Class 1') do 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