## name No builder method ## failures 0 ## cut package Class; use Moose; has attr => ( is => 'rw', ); #----------------------------------------------------------------------------- ## name Private builder method ## failures 0 ## cut package Class; use Moose; has attr => ( is => 'rw', builder => '_build_attr', ); #----------------------------------------------------------------------------- ## name Public builder method ## failures 1 ## cut package Class; use Moose; has attr => ( is => 'rw', builder => 'build_attr', ); #----------------------------------------------------------------------------- ## name Public builder method, declared dynamically ## failures 1 ## cut package Class; use Moose; __PACKAGE__->meta->add_attribute(attr => ( is => 'rw', builder => 'build_attr', )); #----------------------------------------------------------------------------- ## name Public builder method, named dynamically ## failures 1 ## cut package Class; use Moose; my $builder = 'build_' . rand; __PACKAGE__->meta->add_attribute(attr => ( is => 'rw', builder => $builder, )); #----------------------------------------------------------------------------- ## name Role sans builder ## failures 0 ## cut package Role; use Moose::Role; has attr => ( is => 'rw', ); #----------------------------------------------------------------------------- ## name Role with private builder ## failures 0 ## cut package Role; use Moose::Role; has attr => ( is => 'rw', builder => '_build_attr', ); #----------------------------------------------------------------------------- ## name Role with public builder ## failures 1 ## cut package Role; use Moose::Role; has attr => ( is => 'rw', builder => 'build_attr', ); #----------------------------------------------------------------------------- ## name Public role builder method, named dynamically ## failures 1 ## cut package Role; use Moose::Role; my $builder = 'build_' . rand; __PACKAGE__->meta->add_attribute(attr => ( is => 'rw', builder => $builder, )); #----------------------------------------------------------------------------- ## name Lazy build ## failures 0 ## cut package Class; use Moose; has foo => ( is => 'rw', lazy_build => 1, ); #----------------------------------------------------------------------------- ## name The Gauntlet ## failures 5 ## cut for (1 .. 5) { my $builder = "build_foo_$_"; Class::MOP::Class->create( "Foo$_", attributes => [ Class::MOP::Attribute->new( name => "foo_$_", builder => $builder, ), ], ); }