Version 0.40_01
[gitmo/Mouse.git] / lib / Mouse / Meta / Class.pm
index ad97178..3827636 100644 (file)
@@ -38,11 +38,16 @@ sub create_anon_class{
     return $self->create(undef, @_);
 }
 
-sub is_anon_class{
-    return exists $_[0]->{anon_serial_id};
-}
+sub is_anon_class;
+
+sub roles;
 
-sub roles { $_[0]->{roles} }
+sub calculate_all_roles {
+    my $self = shift;
+    my %seen;
+    return grep { !$seen{ $_->name }++ }
+           map  { $_->calculate_all_roles } @{ $self->roles };
+}
 
 sub superclasses {
     my $self = shift;
@@ -166,7 +171,7 @@ sub get_all_attributes {
     return @attr;
 }
 
-sub linearized_isa { @{ get_linear_isa($_[0]->name) } }
+sub linearized_isa;
 
 sub new_object {
     my $self = shift;
@@ -474,7 +479,7 @@ Mouse::Meta::Class - The Mouse class metaclass
 
 =head1 VERSION
 
-This document describes Mouse version 0.37_06
+This document describes Mouse version 0.40_01
 
 =head1 METHODS