fix the failing test, only call ->meta on a linearized isa member if ->can('meta')
[gitmo/Mouse.git] / lib / Mouse / Meta / Attribute.pm
index ff1a3ff..9176bd0 100644 (file)
@@ -12,8 +12,14 @@ sub new {
 
     $args{init_arg} = $args{name}
         unless exists $args{init_arg};
+
     $args{is} ||= '';
 
+    if ( $args{lazy_build} ) {
+        $args{lazy} = 1;
+        $args{builder} ||= "_build_$args{name}";
+    }
+
     bless \%args, $class;
 }
 
@@ -283,7 +289,7 @@ sub get_parent_args {
     my $name  = shift;
 
     for my $super ($class->meta->linearized_isa) {
-        my $super_attr = $super->meta->get_attribute($name)
+        my $super_attr = $super->can("meta") && $super->meta->get_attribute($name)
             or next;
         return %{ $super_attr->_create_args };
     }