The last checkin was broken in the case where class B inherited from
authorDave Rolsky <autarch@urth.org>
Thu, 4 Dec 2008 22:39:05 +0000 (22:39 +0000)
committerDave Rolsky <autarch@urth.org>
Thu, 4 Dec 2008 22:39:05 +0000 (22:39 +0000)
commit12875d6ef6cb1dd09c49b0d22660906486aa23d7
treef0f6c865412b05faca84994dcd7d36427f6fcec1
parente94a703f591f40cd63157848698fccb0554b4f99
The last checkin was broken in the case where class B inherited from
class A, and class A had made itself immutable.

In that case, MMMC thought that the inlined constructor for A meant it
couldn't inline for B. This checkin fixes it to be much smarter. If
any parent is inlined, it checks to see if the inlined constructor's
class in the parent matches the constructor class that's trying to do
inlining. If they match, it goes ahead and inlines, otherwise it
doesn't.
lib/Moose/Meta/Method/Constructor.pm
t/300_immutable/010_constructor_is_not_moose.t