mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Improve Class#superclass to ISO
This commit is contained in:
+9
-3
@@ -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
|
||||
|
||||
+7
-3
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user