Don't call an unnecessary role filter
gfx [Sun, 19 Jul 2009 09:53:46 +0000 (18:53 +0900)]
lib/Moose/Util.pm

index fe14e95..7fe5591 100644 (file)
@@ -79,7 +79,7 @@ sub ensure_all_roles {
 
 sub apply_all_roles {
     my $applicant = shift;
-    _apply_all_roles($applicant, sub { 1 }, @_);
+    _apply_all_roles($applicant, undef, @_);
 }
 
 sub _apply_all_roles {
@@ -105,7 +105,9 @@ sub _apply_all_roles {
         }
     }
 
-    @$roles = grep { local $_ = $_->[0]; $role_filter->() } @$roles;
+    if(defined $role_filter){
+        @$roles = grep { local $_ = $_->[0]; $role_filter->() } @$roles;
+    }
 
     return unless @$roles;