I'm seeing an odd error popping up with the latest Moose that's killing most of 
my tests.  I'm using a custom error metaclass and am seeing the following:

t/Annotation/Reference.t .. 1/12 
#   Failed test 'use Biome::Annotation::Reference;'
#   at t/Annotation/Reference.t line 8.
#     Tried to use 'Biome::Annotation::Reference'.
#     Error:  The error metaclass for Biome::Annotation::Reference 
(Biome::Root::Error) is not compatible with the error metaclass of its 
superclass, Biome::Annotation::DBLink (Biome::Root::Error) at 
/opt/perl512/lib/site_perl/5.12.1/darwin-thread-multi-2level/Class/MOP/Class.pm 
line 277
...

This only happens (as one might guess from the error message) with classes that 
inherit, but notice the two indicated error metaclasses match.  Why is this 
throwing an error?  I'm declaring this in a common base metaclass as follows 
(which worked up until now):

...

sub init_meta {
        shift;
        my $moose = Moose->init_meta(
                @_,
                base_class      => 'Biome::Root',
                metaclass       => 'Biome::Meta::Class',
                );
        $moose->error_class($EXCEPTION_CLASS);
        $moose;
}

Am I doing something wrong?

I also noticed a very similar problem when trying to install 
MooseX::Error::Exception::Class, though in this case the error metaclasses 
don't match:

Running Build test
t/000_load.t ............ 2/2 # Testing MooseX::Error::Exception::Class 0.099
t/000_load.t ............ ok   
t/001_test.t ............ The error metaclass for TestPackage1 
(MooseX::Error::Exception::Class) is not compatible with the error metaclass of 
its superclass, Moose::Object (Moose::Error::Default) at 
/opt/perl512/lib/site_perl/5.12.1/darwin-thread-multi-2level/Class/MOP/Class.pm 
line 277
....

chris

Reply via email to