use List::Util qw(first);
use List::MoreUtils qw(any all);
use overload ();
+use Try::Tiny;
use Class::MOP;
my @exports = qw[
sub does_role {
my ($class_or_obj, $role) = @_;
+ if (try { $class_or_obj->isa('Moose::Object') }) {
+ return $class_or_obj->does($role);
+ }
+
my $meta = find_meta($class_or_obj);
return unless defined $meta;
return unless @role_metas;
+ 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 ) {