union isn't finding the types

[email protected] (Caleb Cushing)
Newsgroups perl.moose
Message-ID <CAAHKNRGXzXcA701PREvjh4=dhYpZzg7ONo-QS7f0yKcZzCRxFw@mail.gmail.com>
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
stack.txt (text/plain, 10.8 KB)
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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.