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;

Reply via email to