summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authordoy <doy@tozt.net>2009-04-14 23:42:38 -0500
committerdoy <doy@tozt.net>2009-04-14 23:42:38 -0500
commit60b7bf50b57a4b772c3cf7e4d595256c9c266a25 (patch)
treef9e31d35451e296e05c02d122d340022bd33fc65 /lib
parent3d42fbce70693ebf8b285bae0bd1dd37c158ec9d (diff)
downloadmoosex-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.pm5
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;
}