MagLev/maglev — pull request #308 by niccokunzmann (2013-05-03 09:37:52+00:00)
Title: when inheriting from nonclass an error is thrown

class X < 1 # some object that is not a class
end
now creates the

TypeError: wrong argument type Fixnum. expected a class.

instead of the former

NameError: newRubySubclass:instancesPersistent:fixedIvs: not defined

The specs do not test this case in spec/rubyspec/core/class/new_spec.rb. They test Class.new which raises a TypeError.

lambda { Class.new("") }.should raise_error(TypeError)
lambda { Class.new(1) }.should raise_error(TypeError)
lambda { Class.new(:symbol) }.should raise_error(TypeError)
lambda { Class.new(mock('o')) }.should raise_error(TypeError)
lambda { Class.new(Module.new) }.should raise_error(TypeError)

I did not find other specs that test my code directly.