Hi,
The following script fails due to demolish composition error. however
if you remove the ->make_immutable in RandomClass, it works.
Seems to be a bug?
----
use strict;
use Test::More;
our ($built, $demolished) = (0, 0);
{
package RandomClass;
use Moose;
with 'MooseX::Traits';
has '+_trait_namespace' => (default => 'RandomClass::Trait');
__PACKAGE__->meta->make_immutable;
no Moose;
1;
}
{
package RandomClass::Trait::Test;
use Moose::Role;
use Test::More;
sub BUILD {}; after 'BUILD' => sub {
$main::built++;
};
sub DEMOLISH {}; after 'DEMOLISH' => sub {
$main::demolished++;
};
}
{
package RandomClass2;
use Moose;
with 'RandomClass::Trait::Test';
}
my $bus = RandomClass->new_with_traits( traits => ['Test']);
ok($bus->DOES('RandomClass::Trait::Test'));
ok($built);
undef $bus;
ok($demolished);
($built, $demolished) = (0, 0);
$bus = RandomClass2->new;
ok($bus->DOES('RandomClass::Trait::Test'));
ok($built);
undef $bus;
ok($demolished);
done_testing;