|Subject:||Moose newer than 2.1005 cannot find a class in not explicitly loaded module|
|X-Mailer:||MIME-tools 5.504 (Entity 5.504)|
|Message-ID:||<rt-4.0.18-2805-1417700832-1934.0-0-0 [...] rt.cpan.org>|
Archive::RPM stopped to work with Moose newer than 2.1005. See CPAN RT#100701 for more details. In short, delegating to a class whose name differs from a module name does not work anymore because the %INC does contain an entry. This is because Moose changes a way how too look for a class in this commit: commit c16411bc122732a1fe7f96f801a5cf127b146406 Author: Jesse Luehrs <email@example.com> Date: Wed Sep 4 14:39:59 2013 -0400 stop using Class::Load The heuristics involved in is_class_loaded and such have caused all kinds of issues over the years. Instead, we should use Module::Runtime, which uses %INC as the only check to see if a package has been loaded. This should hopefully not cause too many problems now that we make sure the appropriate %INC entry is set whenever Moose creates a class. Class::Load should stay as a dep for now, because we haven't actually deprecated Class::MOP::load_class and such yet, but we should get on that too. Is there any plan to fix it?