remember to register roles with newly created metaclass
[gitmo/Moo.git] / lib / Moo / Role.pm
index 0484277..71ee793 100644 (file)
@@ -17,11 +17,14 @@ sub import {
   *{_getglob "${target}::has"} = sub {
     my ($name, %spec) = @_;
     ($INFO{$target}{accessor_maker} ||= do {
-      { local $@; require Method::Generate::Accessor; }
+      require Method::Generate::Accessor;
       Method::Generate::Accessor->new
     })->generate_method($target, $name, \%spec);
     $INFO{$target}{attributes}{$name} = \%spec;
   };
+  if ($INC{'Moo/HandleMoose.pm'}) {
+    Moo::HandleMoose::inject_fake_metaclass_for($target);
+  }
   goto &Role::Tiny::import;
 }
 
@@ -40,7 +43,7 @@ sub create_class_with_roles {
 
   return $new_name if $Role::Tiny::COMPOSED{class}{$new_name};
 
-  { local $@; require Sub::Quote; }
+  require Sub::Quote;
 
   $me->SUPER::create_class_with_roles($superclass, @roles);