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.