X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoo%2FRole.pm;h=a8c2083cba0a5e70d90ebbd9ced3348607edcb7b;hb=c45702917a553f4c038f0fc77869380b57da4742;hp=a38677a638e3992adf562d1a015ca1de8a896233;hpb=d62762034118990bd9c9f42b66f9f9081f46291c;p=gitmo%2FRole-Tiny.git diff --git a/lib/Moo/Role.pm b/lib/Moo/Role.pm index a38677a..a8c2083 100644 --- a/lib/Moo/Role.pm +++ b/lib/Moo/Role.pm @@ -46,7 +46,7 @@ sub create_class_with_roles { } $me->_handle_constructor( - $new_name, { map %{$INFO{$_}{attributes}||{}}, @roles } + $new_name, { map %{$INFO{$_}{attributes}||{}}, @roles }, $superclass ); return $new_name; @@ -58,14 +58,14 @@ sub _install_single_modifier { } sub _handle_constructor { - my ($me, $to, $attr_info) = @_; + my ($me, $to, $attr_info, $superclass) = @_; return unless $attr_info && keys %$attr_info; if ($INFO{$to}) { @{$INFO{$to}{attributes}||={}}{keys %$attr_info} = values %$attr_info; } else { # only fiddle with the constructor if the target is a Moo class if ($INC{"Moo.pm"} - and my $con = Moo->_constructor_maker_for($to)) { + and my $con = Moo->_constructor_maker_for($to, $superclass)) { $con->register_attribute_specs(%$attr_info); } }