diff options
Diffstat (limited to 'lib/MooseX/NonMoose.pm')
-rw-r--r-- | lib/MooseX/NonMoose.pm | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lib/MooseX/NonMoose.pm b/lib/MooseX/NonMoose.pm index 778adf8..488e5e5 100644 --- a/lib/MooseX/NonMoose.pm +++ b/lib/MooseX/NonMoose.pm @@ -8,17 +8,16 @@ Moose::Exporter->setup_import_methods( sub extends { my $caller = shift; - my @superclasses = @_; + Moose->throw_error("Must derive at least one class") unless @_; + + my @superclasses = @_; push @superclasses, 'Moose::Object' unless grep { $_->isa('Moose::Object') } @superclasses; - # XXX: should move the validation out of Moose::extends and into - # MMC::superclasses, and then just call that directly. will still need to - # check that @_ isn't empty in that case. - Moose::extends($caller, @superclasses); + my $caller_meta = Moose::Meta::Class->initialize($caller); + $caller_meta->superclasses(@superclasses); - my $caller_meta = Class::MOP::Class->initialize($caller); # we need to get the non-moose constructor from the superclass # of the class where this method actually exists, regardless of what class # we're calling it on |