I am using MooseX::ClassAttribute for the first time and seeing an
error at compile time. I have put together an example that recreates
the problem:

fail.pl:

use 5.010;
use strict;
use warnings;

use lib 'lib';

use FAIL::Foobaz;

print "Hello Moose\n";


Foobaz.pm:

package FAIL::Foobaz;

use Moose;
use MooseX::ClassAttribute;

use namespace::autoclean;

class_has 'class_attrib_1' => (is => 'ro', default => 'class_attrib_1');

__PACKAGE__->meta->make_immutable;
1;




C:> perl -c fail.pl
The method 'inline_clear' was not found in the inheritance hierarchy
for Moose::Meta::Class::__ANON__::SERIAL::8 at C:/Perl/site/lib
/Class/MOP/Class.pm line 1048
        Class::MOP::Class::__ANON__('Moose::Meta::Class=HASH(0x3da31dc)',
'inline_clear') called at C:/Perl/site/lib/Class/MOP/Class
.pm line 1093
        
Class::MOP::Class::add_around_method_modifier('Moose::Meta::Class=HASH(0x3da31dc)',
'inline_clear', 'CODE(0x3daf25c)') calle
d at C:/Perl/site/lib/Moose/Meta/Role/Application/ToClass.pm line 224
        
Moose::Meta::Role::Application::ToClass::apply_method_modifiers('Moose::Meta::Role::Application::ToClass=HASH(0x3f70c74)',
'
around', 'Moose::Meta::Role=HASH(0x3dac544)',
'Moose::Meta::Class=HASH(0x3da31dc)') called at
C:/Perl/site/lib/Moose/Meta/Role/Appli
cation.pm line 78
        
Moose::Meta::Role::Application::apply_around_method_modifiers('Moose::Meta::Role::Application::ToClass=HASH(0x3f70c74)',
'Mo
ose::Meta::Role=HASH(0x3dac544)',
'Moose::Meta::Class=HASH(0x3da31dc)') called at
C:/Perl/site/lib/Moose/Meta/Role/Application.pm li
ne 64
        
Moose::Meta::Role::Application::apply('Moose::Meta::Role::Application::ToClass=HASH(0x3f70c74)',
'Moose::Meta::Role=HASH(0x3
dac544)', 'Moose::Meta::Class=HASH(0x3da31dc)') called at
C:/Perl/site/lib/Moose/Meta/Role/Application/ToClass.pm line 35
        
Moose::Meta::Role::Application::ToClass::apply('Moose::Meta::Role::Application::ToClass=HASH(0x3f70c74)',
'Moose::Meta::Role
=HASH(0x3dac544)', 'Moose::Meta::Class=HASH(0x3da31dc)',
'HASH(0x3780cfc)') called at C:/Perl/site/lib/Moose/Meta/Role.pm line
470
        Moose::Meta::Role::apply('Moose::Meta::Role=HASH(0x3dac544)',
'Moose::Meta::Class=HASH(0x3da31dc)') called at C:/Perl/site/l
ib/Moose/Util.pm line 159
        Moose::Util::_apply_all_roles('Moose::Meta::Class=HASH(0x3da31dc)',
undef, 'MooseX::ClassAttribute::Trait::Attribute') calle
d at C:/Perl/site/lib/Moose/Util.pm line 98
        Moose::Util::apply_all_roles('Moose::Meta::Class=HASH(0x3da31dc)',
'MooseX::ClassAttribute::Trait::Attribute') called at C:/
Perl/site/lib/Moose/Meta/Class.pm line 104
        Moose::Meta::Class::create('Moose::Meta::Class',
'Moose::Meta::Class::__ANON__::SERIAL::8', 'roles',
'ARRAY(0x3f6b5ec)', 'we
aken', '', 'superclasses', 'ARRAY(0x2a353c)') called at
C:/Perl/site/lib/Class/MOP/Package.pm line 121
        Class::MOP::Package::create_anon('Moose::Meta::Class',
'roles', 'ARRAY(0x3f6b5ec)', 'superclasses', 'ARRAY(0x2a353c)', 'cach
e', 1) called at C:/Perl/site/lib/Class/MOP/Class.pm line 473
        Class::MOP::Class::create_anon_class('Moose::Meta::Class',
'roles', 'ARRAY(0x3f6b5ec)', 'superclasses', 'ARRAY(0x2a353c)', '
cache', 1) called at C:/Perl/site/lib/Moose/Meta/Attribute.pm line 173
        Moose::Meta::Attribute::interpolate_class('Moose::Meta::Attribute',
'HASH(0x3b14b1c)') called at C:/Perl/site/lib/Moose/Meta
/Attribute.pm line 112
        
Moose::Meta::Attribute::interpolate_class_and_new('Moose::Meta::Attribute',
'class_attrib_1', 'default', 'class_attrib_1', '
is', 'ro', 'traits', 'ARRAY(0x3d9fa2c)') called at
C:/Perl/site/lib/MooseX/ClassAttribute/Trait/Class.pm line 99
        
MooseX::ClassAttribute::Trait::Class::_process_new_class_attribute('Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)'
, 'class_attrib_1', 'default', 'class_attrib_1', 'is', 'ro') called at
C:/Perl/site/lib/MooseX/ClassAttribute/Trait/Class.pm line 83

        
MooseX::ClassAttribute::Trait::Class::_process_class_attribute('Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)',
'c
lass_attrib_1', 'default', 'class_attrib_1', 'is', 'ro') called at
C:/Perl/site/lib/MooseX/ClassAttribute/Trait/Class.pm line 35
        Class::MOP::Class:::around('CODE(0x3e49f9c)',
'Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)',
'class_attrib_1', '
default', 'class_attrib_1', 'is', 'ro') called at
C:/Perl/site/lib/Class/MOP/Method/Wrapped.pm line 162
        
Class::MOP::Method::Wrapped::__ANON__('Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)',
'class_attrib_1', 'default'
, 'class_attrib_1', 'is', 'ro') called at
C:/Perl/site/lib/Class/MOP/Method/Wrapped.pm line 91
        
Moose::Meta::Class::__ANON__::SERIAL::1::add_class_attribute('Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)',
'cla
ss_attrib_1', 'default', 'class_attrib_1', 'is', 'ro') called at
C:/Perl/site/lib/MooseX/ClassAttribute.pm line 37
        
MooseX::ClassAttribute::class_has('Moose::Meta::Class::__ANON__::SERIAL::1=HASH(0x3f74364)',
'class_attrib_1', 'is', 'ro', '
default', 'class_attrib_1') called at
C:/Perl/site/lib/Moose/Exporter.pm line 356
        MooseX::ClassAttribute::class_has('class_attrib_1', 'is',
'ro', 'default', 'class_attrib_1') called at lib/FAIL/Foobaz.pm li
ne 8
        require FAIL/Foobaz.pm called at fail.pl line 7
        main::BEGIN() called at lib/FAIL/Foobaz.pm line 0
        eval {...} called at lib/FAIL/Foobaz.pm line 0
Compilation failed in require at fail.pl line 7.
BEGIN failed--compilation aborted at fail.pl line 7.



I have some Moose class working fine with object attributes. When I
add class attributes I see the above.

Does the list have any ideas as to what the problem is?

Reply via email to