More metaclass compatibility handling.
authorDave Rolsky <autarch@urth.org>
Sat, 13 Sep 2008 04:16:34 +0000 (04:16 +0000)
committerDave Rolsky <autarch@urth.org>
Sat, 13 Sep 2008 04:16:34 +0000 (04:16 +0000)
commitdd37a5beb7bb016a384aa7c2b2ec976f7daf97ee
tree67c8139cd8a757ddfd4db558a24d61941b7ec536
parent41419b9e140e4b1b2c7d2de18649151993206509
More metaclass compatibility handling.

When creating a new class, fix its metaclass compatibility as well as
when extends is called. This means that classes created via
Moose::Util::MetaRole (aka new metaclasses) have their metaclass
compatibility fixed. Sounds crazy, but it basically lets combine
modules which give the caller a new metaclass (like Fey::ORM::Table)
and modules which then apply roles to the caller's metaclass (like
MX::ClassAttribute).

And hey, there's tests.
lib/Moose/Meta/Class.pm
t/050_metaclasses/015_metarole.t