the code,

use Class::Load 0.20 'load_class';
use Moose::Role;

# VERSION

#### Attribute Definitions ####

has _log => (
    isa     => 'Log::Any::Adapter::Base | Log::Any::Adapter::Null',
    is      => 'ro',
    lazy    => 1,
    default => sub { load_class('Log::Any')->get_logger },
);


attached is the the stack trace, what about unions do I not
understand? are they only allowed between moose native types? or am I
doing something else that is obviously wrong?


--
Caleb Cushing

http://xenoterracide.com
Could not locate type constraint (Log::Any::Adapter::Base) for the union at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Util/TypeConstraints.pm
 line 104.
        
Moose::Util::TypeConstraints::_create_type_constraint_union('ARRAY(0x3792320)') 
called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Util/TypeConstraints.pm
 line 78
        
Moose::Util::TypeConstraints::create_type_constraint_union('Log::Any::Adapter::Base|Log::Any::Adapter::Null')
 called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Util/TypeConstraints.pm
 line 274
        
Moose::Util::TypeConstraints::find_or_parse_type_constraint('Log::Any::Adapter::Base
 | Log::Any::Adapter::Null') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Util/TypeConstraints.pm
 line 260
        
Moose::Util::TypeConstraints::find_or_create_isa_type_constraint('Log::Any::Adapter::Base
 | Log::Any::Adapter::Null', 'HASH(0x3fed890)') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Meta/Attribute.pm
 line 369
        Moose::Meta::Attribute::_process_isa_option('Moose::Meta::Attribute', 
'_log', 'HASH(0x289e970)') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Meta/Attribute.pm
 line 296
        Moose::Meta::Attribute::_process_options('Moose::Meta::Attribute', 
'_log', 'HASH(0x289e970)') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Meta/Attribute.pm
 line 88
        Moose::Meta::Attribute::new('Moose::Meta::Attribute', '_log', 
'default', 'CODE(0x3fe6638)', 'is', 'ro', 'lazy', 1, 'isa', ...) called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Meta/Attribute.pm
 line 114
        
Moose::Meta::Attribute::interpolate_class_and_new('Moose::Meta::Attribute', 
'_log', 'isa', 'Log::Any::Adapter::Base | Log::Any::Adapter::Null', 'default', 
'CODE(0x3fe6638)', 'definition_context', 'HASH(0x3f84930)', 'lazy', ...) called 
at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Meta/Role/Attribute.pm
 line 91
        
Moose::Meta::Role::Attribute::attribute_for_class('Moose::Meta::Role::Attribute=HASH(0x3fe6818)')
 called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Meta/Role/Application/ToClass.pm
 line 152
        
Moose::Meta::Role::Application::ToClass::apply_attributes('Moose::Meta::Role::Application::ToClass=HASH(0x3fa5328)',
 'Moose::Meta::Role::Composite=HASH(0x3f847c8)', 
'Moose::Meta::Class::__ANON__::SERIAL::28=HASH(0x3f847b0)') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Meta/Role/Application.pm
 line 58
        
Moose::Meta::Role::Application::apply('Moose::Meta::Role::Application::ToClass=HASH(0x3fa5328)',
 'Moose::Meta::Role::Composite=HASH(0x3f847c8)', 
'Moose::Meta::Class::__ANON__::SERIAL::28=HASH(0x3f847b0)') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Meta/Role/Application/ToClass.pm
 line 36
        
Moose::Meta::Role::Application::ToClass::apply('Moose::Meta::Role::Application::ToClass=HASH(0x3fa5328)',
 'Moose::Meta::Role::Composite=HASH(0x3f847c8)', 
'Moose::Meta::Class::__ANON__::SERIAL::28=HASH(0x3f847b0)', 'HASH(0x3fb5110)') 
called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Meta/Role.pm
 line 470
        
Moose::Meta::Role::apply('Moose::Meta::Role::Composite=HASH(0x3f847c8)', 
'Moose::Meta::Class::__ANON__::SERIAL::28=HASH(0x3f847b0)') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Util.pm
 line 163
        
Moose::Util::_apply_all_roles('Moose::Meta::Class::__ANON__::SERIAL::28=HASH(0x3f847b0)',
 undef, 'Foo::Role::Parent', 'Foo::Ticket::Role::Context', 
'Foo::Ticket::Role::Logging', 'Foo::Ticket::Role::MapperLocator') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Util.pm
 line 99
        
Moose::Util::apply_all_roles('Moose::Meta::Class::__ANON__::SERIAL::28=HASH(0x3f847b0)',
 'Foo::Role::Parent', 'Foo::Ticket::Role::Context', 
'Foo::Ticket::Role::Logging', 'Foo::Ticket::Role::MapperLocator') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose.pm
 line 67
        Moose::with('Moose::Meta::Class::__ANON__::SERIAL::28=HASH(0x3f847b0)', 
'Foo::Role::Parent', 'Foo::Ticket::Role::Context', 
'Foo::Ticket::Role::Logging', 'Foo::Ticket::Role::MapperLocator') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Exporter.pm
 line 382
        Moose::with('Foo::Role::Parent', 'Foo::Ticket::Role::Context', 
'Foo::Ticket::Role::Logging', 'Foo::Ticket::Role::MapperLocator') called at 
/home/user/Foo-Ticket/lib/Foo/Ticket/Repository.pm line 21
        require Foo/Ticket/Repository.pm called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Module/Runtime.pm
 line 317
        Module::Runtime::require_module('Foo::Ticket::Repository') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Class/Load.pm 
line 177
        Class::Load::__ANON__() called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Try/Tiny.pm 
line 71
        eval {...} called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Try/Tiny.pm 
line 67
        Try::Tiny::try('CODE(0x3f10e18)', 'Try::Tiny::Catch=REF(0x3f74590)') 
called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Class/Load.pm 
line 183
        Class::Load::try_load_class('Foo::Ticket::Repository', undef) called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Class/Load.pm 
line 38
        Class::Load::load_class('Foo::Ticket::Repository', undef) called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Meta/Class.pm
 line 554
        Moose::Meta::Class::superclasses(undef, 'Foo::Ticket::Repository') 
called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose.pm
 line 63
        
Moose::extends('Moose::Meta::Class::__ANON__::SERIAL::39=HASH(0x3f6f870)', 
'Foo::Ticket::Repository') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Exporter.pm
 line 382
        Moose::extends('Foo::Ticket::Repository') called at 
/home/user/Foo-Ticket/lib/Foo/Ticket/Repository/Companies.pm line 10
        require Foo/Ticket/Repository/Companies.pm called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Module/Runtime.pm
 line 317
        Module::Runtime::require_module('Foo::Ticket::Repository::Companies') 
called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Class/Load.pm 
line 177
        Class::Load::__ANON__() called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Try/Tiny.pm 
line 71
        eval {...} called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Try/Tiny.pm 
line 67
        Try::Tiny::try('CODE(0x3f31140)', 'Try::Tiny::Catch=REF(0x3f5a778)') 
called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Class/Load.pm 
line 183
        Class::Load::try_load_class('Foo::Ticket::Repository::Companies', 
undef) called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Class/Load.pm 
line 38
        Class::Load::load_class('Foo::Ticket::Repository::Companies') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Bread/Board/Declare/Meta/Role/Attribute/Service.pm
 line 116
        
Class::MOP::Class:::after('Moose::Meta::Class::__ANON__::SERIAL::24=HASH(0x3f64028)',
 'Moose::Meta::Class::__ANON__::SERIAL::13=HASH(0x3873560)') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Class/MOP/Method/Wrapped.pm
 line 63
        
Class::MOP::Method::Wrapped::__ANON__('Moose::Meta::Class::__ANON__::SERIAL::24=HASH(0x3f64028)',
 'Moose::Meta::Class::__ANON__::SERIAL::13=HASH(0x3873560)') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Class/MOP/Method/Wrapped.pm
 line 91
        
Moose::Meta::Class::__ANON__::SERIAL::24::attach_to_class('Moose::Meta::Class::__ANON__::SERIAL::24=HASH(0x3f64028)',
 'Moose::Meta::Class::__ANON__::SERIAL::13=HASH(0x3873560)') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Class/MOP/Class.pm
 line 880
        
Class::MOP::Class::_attach_attribute('Moose::Meta::Class::__ANON__::SERIAL::13=HASH(0x3873560)',
 'Moose::Meta::Class::__ANON__::SERIAL::24=HASH(0x3f64028)') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Class/MOP/Mixin/HasAttributes.pm
 line 27
        
Class::MOP::Mixin::HasAttributes::add_attribute('Moose::Meta::Class::__ANON__::SERIAL::13=HASH(0x3873560)',
 'Moose::Meta::Class::__ANON__::SERIAL::24=HASH(0x3f64028)') called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Meta/Class.pm
 line 570
        
Moose::Meta::Class::add_attribute('Moose::Meta::Class::__ANON__::SERIAL::13=HASH(0x3873560)',
 'companies', 'lifecycle', 'Singleton', 'dependencies', 'ARRAY(0x238c118)', 
'isa', 'Foo::Ticket::Repository::Companies', 'infer', ...) called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose.pm
 line 79
        Moose::has('Moose::Meta::Class::__ANON__::SERIAL::13=HASH(0x3873560)', 
'companies', 'isa', 'Foo::Ticket::Repository::Companies', 'is', 'ro', 
'lifecycle', 'Singleton', 'infer', ...) called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Exporter.pm
 line 382
        Moose::has('companies', 'isa', 'Foo::Ticket::Repository::Companies', 
'is', 'ro', 'lifecycle', 'Singleton', 'infer', 1, ...) called at 
/home/user/Foo-Ticket/lib/Test/App/Foo/Ticket/Memory.pm line 45
        require Test/App/Foo/Ticket/Memory.pm called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Module/Runtime.pm
 line 317
        Module::Runtime::require_module('Test::App::Foo::Ticket::Memory') 
called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Class/Load.pm 
line 177
        Class::Load::__ANON__() called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Try/Tiny.pm 
line 71
        eval {...} called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Try/Tiny.pm 
line 67
        Try::Tiny::try('CODE(0x21e4e30)', 'Try::Tiny::Catch=REF(0x21e4db8)') 
called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Class/Load.pm 
line 183
        Class::Load::try_load_class('Test::App::Foo::Ticket::Memory', undef) 
called at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/Class/Load.pm 
line 38
        Class::Load::load_class('Test::App::Foo::Ticket::Memory') called at 
t/model/companies.t line 7
Compilation failed in require at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Moose/Exporter.pm
 line 382.
Compilation failed in require at 
/home/user/perl5/perlbrew/perls/perl-5.16.2/lib/site_perl/5.16.2/x86_64-linux/Class/MOP/Class.pm
 line 880.
Compilation failed in require at t/model/companies.t line 7.

Reply via email to