X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMouse%2FMeta%2FMethod%2FDelegation.pm;h=b0c23c6a940dfa0add7d34b56a8a69225102a820;hb=fd2b172a4657cb6cc47976d2e66cdba4bdfa579d;hp=a92e03f1a551dc1813076221b12427d80766d859;hpb=6cd9dfb6937859d76137cf492b4d2b8c3797c050;p=gitmo%2FMouse.git diff --git a/lib/Mouse/Meta/Method/Delegation.pm b/lib/Mouse/Meta/Method/Delegation.pm index a92e03f..b0c23c6 100644 --- a/lib/Mouse/Meta/Method/Delegation.pm +++ b/lib/Mouse/Meta/Method/Delegation.pm @@ -10,14 +10,14 @@ sub _generate_delegation{ ($method_to_call, @curried_args) = @{$method_to_call}; } - my $reader = $attr->get_read_method_ref(); + # If it has a reader, we must use it to make method modifiers work + my $reader = $attr->get_read_method() || $attr->get_read_method_ref(); - my $can_be_optimized = $attr->{_method_delegation_can_be_optimized}; + my $can_be_optimized = $attr->{_mouse_cache_method_delegation_can_be_optimized}; if(!defined $can_be_optimized){ - my $tc = $attr->type_constraint; - - $attr->{_method_delegation_can_be_optimized} = + my $tc = $attr->type_constraint; + $attr->{_mouse_cache_method_delegation_can_be_optimized} = (defined($tc) && $tc->is_a_type_of('Object')) && ($attr->is_required || $attr->has_default || $attr->has_builder) && ($attr->is_lazy || !$attr->has_clearer); @@ -61,7 +61,7 @@ Mouse::Meta::Method::Delegation - A Mouse method generator for delegation method =head1 VERSION -This document describes Mouse version 0.53 +This document describes Mouse version 0.87 =head1 SEE ALSO