piss off. -- mst
[gitmo/Moo.git] / lib / Moo.pm
index 6aa9cd2..51f0dc6 100644 (file)
@@ -26,6 +26,7 @@ sub import {
       Moo->_constructor_maker_for($target)
          ->register_attribute_specs(%{$old->all_attribute_specs});
     }
+    no warnings 'once'; # piss off. -- mst
     $Moo::HandleMoose::MOUSE{$target} = [
       grep defined, map Mouse::Util::find_meta($_), @_
     ] if $INC{"Mouse.pm"};
@@ -137,6 +138,8 @@ sub _constructor_maker_for {
           '      if ($Moo::MAKERS{$class}) {'."\n"
           .'        '.$class.'->_constructor_maker_for($class,'.perlstring($target).');'."\n"
           .'        return $class->new(@_)'.";\n"
+          .'      } elsif ($INC{"Moose.pm"} and my $meta = Class::MOP::get_metaclass_by_name($class)) {'."\n"
+          .'        return $meta->new_object(@_);'."\n"
           .'      }'."\n"
         ),
       )