X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMooseX%2FEmulate%2FClass%2FAccessor%2FFast.pm;h=c37ef359287a071bc24cc1f2a4d03ecb70c5f706;hb=54a5b50a9b52ee4a7c28babe6381dc3143bb1b73;hp=0f1fbdd9db4718bb3b0f9ab9f7f234dc5e2a1402;hpb=cefb21a890aa63574e1c1a00f5c91d113ef2d6d0;p=gitmo%2FMooseX-Emulate-Class-Accessor-Fast.git diff --git a/lib/MooseX/Emulate/Class/Accessor/Fast.pm b/lib/MooseX/Emulate/Class/Accessor/Fast.pm index 0f1fbdd..c37ef35 100644 --- a/lib/MooseX/Emulate/Class/Accessor/Fast.pm +++ b/lib/MooseX/Emulate/Class/Accessor/Fast.pm @@ -103,6 +103,8 @@ sub mk_accessors{ my $self = shift; my $meta = $locate_metaclass->($self); for my $attr_name (@_){ + $meta->remove_attribute($attr_name) + if $meta->find_attribute_by_name($attr_name); my $reader = $self->accessor_name_for($attr_name); my $writer = $self->mutator_name_for( $attr_name); @@ -134,6 +136,8 @@ sub mk_ro_accessors{ my $self = shift; my $meta = $locate_metaclass->($self); for my $attr_name (@_){ + $meta->remove_attribute($attr_name) + if $meta->find_attribute_by_name($attr_name); my $reader = $self->accessor_name_for($attr_name); my @opts = ($meta->has_method($reader) ? () : (reader => $reader) ); my $attr = $meta->add_attribute($attr_name, @opts); @@ -155,6 +159,8 @@ sub mk_wo_accessors{ my $self = shift; my $meta = $locate_metaclass->($self); for my $attr_name (@_){ + $meta->remove_attribute($attr_name) + if $meta->find_attribute_by_name($attr_name); my $writer = $self->mutator_name_for($attr_name); my @opts = ($meta->has_method($writer) ? () : (writer => $writer) ); my $attr = $meta->add_attribute($attr_name, @opts);