my @metas = map { find_meta($_) } ($class, map { blessed($_) } values %{ $class->components });
foreach my $meta (@metas) {
+ # Paranoia unneeded, all component metaclasses should have immutable
$meta->make_mutable if $meta->is_immutable;
}
}
$id = B::Hooks::OP::Check::StashChange::register(sub {
my ($new, $old) = @_;
my $meta = find_meta($new);
- if ($meta) {
- $meta->make_mutable if $meta->is_immutable;
+ if ($meta) { # A little paranoia here - Moose::Meta::Role has neither of these methods.
+ my $is_immutable = $meta->can('is_immutable');
+ my $make_mutable = $meta->can('make_mutable');
+ $meta->$make_mutable() if $is_immutable && $make_mutable && $meta->$is_immutable();
}
});
}
+package TestApp::Controller::Immutable::HardToReload::Role;
+use Moose::Role; # Role metaclass does not have make_immutable..
+no Moose::Role;
+
package TestApp::Controller::Immutable::HardToReload;
use Moose;
BEGIN { extends 'Catalyst::Controller' }