otherwise this breaks things like:
package Foo;
use MooseX::Thing;
...
when MooseX::Thing both applies roles and re-exports Moose::Role stuff,
because at the time that MooseX::Thing::init_meta is called, the package
is empty (it won't get anything in it until Moose::Role::init_meta is
called).
return unless @role_metas;
- Class::MOP::load_class($applicant) unless blessed($applicant);
+ Class::MOP::load_class($applicant)
+ unless blessed($applicant)
+ || Class::MOP::class_of($applicant);
+
my $meta = ( blessed $applicant ? $applicant : Moose::Meta::Class->initialize($applicant) );
if ( scalar @role_metas == 1 ) {