+ - exclude union roles and same-role-as-self from metaclass inflation
- inhale Moose roles before checking for composition conflicts
- enable Moo::sification if only Moo::Role is loaded and not Moo
- preserve attribute ordering
);
}
$meta->add_role(Class::MOP::class_of($_))
- for grep $_ ne $name,
+ for grep !/\|/ && $_ ne $name, # reject Foo|Bar and same-role-as-self
do { no warnings 'once'; keys %{$Role::Tiny::APPLIED_TO{$name}} };
$DID_INJECT{$name} = 1;
$meta;
if (!$INFO{$role} and $INC{"Moose.pm"}) {
if (my $meta = Class::MOP::class_of($role)) {
$INFO{$role}{methods} = {
- map +($_ => $role->can($_)), $meta->get_method_list
+ map +($_ => $role->can($_)),
+ grep !$meta->get_method($_)->isa('Class::MOP::Method::Meta'),
+ $meta->get_method_list
};
$Role::Tiny::APPLIED_TO{$role} = {
map +($_->name => 1), $meta->calculate_all_roles