This happens when you use Catalyst (which causes you to inherit from
Catalyst::Controller with is a MX::MethodAttributes metaclass)
and you have attributes which geenrate methods your application class,
and an (old style, M::I) Plugin in the plugin list, which is only pushed
onto @ISA when the setup method is later called..
::lives_ok { $meta->make_immutable } "can still make immutable";
}
+{
+ package Foo5::Meta::Role;
+ use Moose::Role;
+}
+{
+ package Foo5::SuperClass::WithMetaRole;
+ use Moose -traits =>'Foo5::Meta::Role';
+}
+{
+ package Foo5::SuperClass::After::Attribute;
+ use Moose;
+}
+{
+ package Foo5;
+ use Moose;
+ my @superclasses = ('Foo5::SuperClass::WithMetaRole');
+ extends @superclasses;
+
+ has an_attribute_generating_methods => ( is => 'ro' );
+
+ push(@superclasses, 'Foo5::SuperClass::After::Attribute');
+
+ ::lives_ok {
+ extends @superclasses;
+ } 'MI extends after_generated_methods with metaclass roles';
+ ::lives_ok {
+ extends reverse @superclasses;
+ }
+ 'MI extends after_generated_methods with metaclass roles (reverse)';
+}
+
done_testing;