Add the attribute to the metaclass before installing the accessors
Shawn M Moore [Wed, 4 Jun 2008 04:02:35 +0000 (04:02 +0000)]
lib/Mouse/Attribute.pm

index 41a56df..2c8cc5b 100644 (file)
@@ -127,6 +127,8 @@ sub create {
     my $attribute = $self->new(%args, name => $name, class => $class);
     my $meta = $class->meta;
 
+    $meta->add_attribute($attribute);
+
     # install an accessor
     if ($attribute->{is} eq 'rw' || $attribute->{is} eq 'ro') {
         my $accessor = $attribute->generate_accessor;
@@ -134,8 +136,6 @@ sub create {
         *{ $class . '::' . $name } = $accessor;
     }
 
-    $meta->add_attribute($attribute);
-
     for my $method (qw/predicate clearer/) {
         if (exists $attribute->{$method}) {
             my $generator = "generate_$method";