($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};
if(!defined $can_be_optimized){
- my $tc = $attr->type_constraint;
+ my $tc = $attr->type_constraint;
$attr->{_method_delegation_can_be_optimized} =
(defined($tc) && $tc->is_a_type_of('Object'))
use Test::More;
use Test::Exception;
+my $before = 0;
do {
package Person;
use Mouse;
handles => [qw/name age/],
);
+ before me => sub { $before++ };
};
can_ok(Class => qw(person has_person person_name person_age name age quid));
ok($object->quid, "we have a Shawn");
is($object->name, "Shawn", "name handle");
is($object->age, 21, "age handle");
+is $before, 2, 'delegations with method modifiers';
is($object->me->name, "Shawn", "me->name");
is($object->me->age, 21, "me->age");