diff options
author | doy <doy@tozt.net> | 2009-04-14 23:42:38 -0500 |
---|---|---|
committer | doy <doy@tozt.net> | 2009-04-14 23:42:38 -0500 |
commit | 60b7bf50b57a4b772c3cf7e4d595256c9c266a25 (patch) | |
tree | f9e31d35451e296e05c02d122d340022bd33fc65 /lib | |
parent | 3d42fbce70693ebf8b285bae0bd1dd37c158ec9d (diff) | |
download | moosex-nonmoose-60b7bf50b57a4b772c3cf7e4d595256c9c266a25.tar.gz moosex-nonmoose-60b7bf50b57a4b772c3cf7e4d595256c9c266a25.zip |
better test for can_be_inlined
Diffstat (limited to 'lib')
-rw-r--r-- | lib/MooseX/NonMoose/Meta/Role/Constructor.pm | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/MooseX/NonMoose/Meta/Role/Constructor.pm b/lib/MooseX/NonMoose/Meta/Role/Constructor.pm index 7f7fd48..2db5730 100644 --- a/lib/MooseX/NonMoose/Meta/Role/Constructor.pm +++ b/lib/MooseX/NonMoose/Meta/Role/Constructor.pm @@ -7,8 +7,9 @@ around can_be_inlined => sub { my $meta = $self->associated_metaclass; my $super_new = $meta->find_method_by_name($self->name); - # XXX is this even the right test? - if (!$super_new->associated_metaclass->isa($self->_expected_constructor_class)) { + my $super_meta = $super_new->associated_metaclass; + if ($super_meta->can('does_role') + && $super_meta->does_role('MooseX::NonMoose::Meta::Role::Class')) { return 1; } |