make weak_ref permitted as part of attribute inheritance
Matt S Trout [Fri, 24 Jul 2009 16:10:23 +0000 (17:10 +0100)]
Changes
lib/Moose/Meta/Attribute.pm
t/020_attributes/009_attribute_inherited_slot_specs.t

diff --git a/Changes b/Changes
index 78b6653..458e00b 100644 (file)
--- a/Changes
+++ b/Changes
@@ -23,6 +23,8 @@ for, noteworthy changes.
         (rafl)
     * Moose::Util::MetaRole
       - Allow applying roles to a meta role's role application classes. (rafl)
+    * Moose::Meta::Attribute
+      - add weak_ref to allowed options for "has '+foo'" (mst)
 
 0.87 Tue Jul 7, 2009
     * Moose::Meta::Method::Delegation
index e6d9990..5cb22a7 100644 (file)
@@ -163,7 +163,7 @@ my @legal_options_for_inheritance = qw(
     documentation lazy handles
     builder type_constraint
     definition_context
-    lazy_build
+    lazy_build weak_ref
 );
 
 sub legal_options_for_inheritance { @legal_options_for_inheritance }
index 7903f9d..62c1958 100644 (file)
@@ -33,6 +33,7 @@ use Test::Exception;
 
     has 'gorch' => (is => 'ro');
     has 'gloum' => (is => 'ro', default => sub {[]});
+    has 'fleem' => (is => 'ro');
 
     has 'bling' => (is => 'ro', isa => 'Thing');
     has 'blang' => (is => 'ro', isa => 'Thing', handles => ['goodbye']);
@@ -88,6 +89,10 @@ use Test::Exception;
     } '... now can extend an attribute with a non-subtype';
 
     ::lives_ok {
+        has '+fleem' => (weak_ref => 1);
+    } '... now allowed to add the weak_ref option via inheritance';
+
+    ::lives_ok {
         has '+bling' => (handles => ['hello']);
     } '... we can add the handles attribute option';
 
@@ -101,9 +106,6 @@ use Test::Exception;
     ::dies_ok {
         has '+other_fail' => (trigger => sub {});
     } '... cannot create an attribute with an illegal option';
-    ::dies_ok {
-        has '+other_fail' => (weak_ref => 1);
-    } '... cannot create an attribute with an illegal option';
     ::throws_ok {
         has '+does_not_exist' => (isa => 'Str');
     } qr/in Bar/, '... cannot extend a non-existing attribute';