From: NAKAGAWA Masaki Date: Mon, 16 Mar 2009 09:41:06 +0000 (+0900) Subject: Meta::Class->does_role searches isa for Moose compatibility X-Git-Tag: 0.20~27 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=f7fec86c35df4b35035580134d634cfc3095d164;p=gitmo%2FMouse.git Meta::Class->does_role searches isa for Moose compatibility --- diff --git a/lib/Mouse/Meta/Class.pm b/lib/Mouse/Meta/Class.pm index 0e410a3..9e6ef57 100644 --- a/lib/Mouse/Meta/Class.pm +++ b/lib/Mouse/Meta/Class.pm @@ -295,8 +295,11 @@ sub does_role { (defined $role_name) || confess "You must supply a role name to look for"; - for my $role (@{ $self->{roles} }) { - return 1 if $role->name eq $role_name; + for my $class ($self->linearized_isa) { + next unless $class->can('meta') and $class->meta->can('roles'); + for my $role (@{ $self->roles }) { + return 1 if $role->name eq $role_name; + } } return 0;