require MRO::Compat;
}
- my @composable = map $me->_composable_package_for($_), reverse @roles;
-
my $composite_info = $me->_composite_info_for(@roles);
my %conflicts = %{$composite_info->{conflicts}};
if (keys %conflicts) {
die $fail;
}
+ my @composable = map $me->_composable_package_for($_), reverse @roles;
+
+ # some methods may not exist in the role, but get generated by
+ # _composable_package_for (Moose accessors via Moo). filter out anything
+ # provided by the composable packages, excluding the subs we generated to
+ # make modifiers work.
my @requires = grep {
my $method = $_;
!grep $_->can($method) && !$COMPOSED{role}{$_}{modifiers_only}{$method},
return $composed_name if $COMPOSED{role}{$composed_name};
$me->_install_methods($composed_name, $role);
my $base_name = $composed_name.'::_BASE';
- # force stash to exist
+ # force stash to exist so ->can doesn't complain
_getstash($base_name);
# Not using _getglob, since setting @ISA via the typeglob breaks
# inheritance on 5.10.0 if the stash has previously been accessed an