Condition Coverage

blib/lib/Mouse/Tiny.pm
Criterion Covered Total %
condition 44 402 10.9


and 3 conditions

line !l l&&!r l&&r condition
80 8 0 0 exists $pack->{'VERSION'} and defined *{$pack->{'VERSION'};}{'SCALAR'}
8 0 0 exists $pack->{'VERSION'} and defined *{$pack->{'VERSION'};}{'SCALAR'} and defined ${$$pack{'VERSION'};}
82 8 0 0 exists $pack->{'ISA'} and defined *{$pack->{'ISA'};}{'ARRAY'}
8 0 0 exists $pack->{'ISA'} and defined *{$pack->{'ISA'};}{'ARRAY'} and @{$pack->{'ISA'};} != 0
183 0 0 0 defined $value && ref \$value eq 'SCALAR'
188 0 0 0 defined $value && $value =~ /\A -? [0-9]+ \z/msx
346 0 0 0 &Scalar::Util::blessed($object) and $object->isa($class->name)
476 4 0 0 defined $instance and ref $value eq 'CODE'
535 0 0 0 ref $args->{'default'} and ref $args->{'default'} ne 'CODE'
542 4 0 0 $args->{'required'} and not $can_be_required
1009 0 0 0 ref $gv eq 'GLOB' and *{$gv;}{'CODE'} == $spec->{'EXPORTS'}{$keyword}
1105 0 0 0 $@ and $ENV{'MOUSE_XS'}
1228 0 0 0 defined $meta && $meta->does_role($role_name)
1234 0 0 0 &Scalar::Util::blessed($thing) || is_class_loaded($thing) and $thing->can('does')
1363 0 0 0 $i + 1 < $max and ref $_[$i + 1] eq 'HASH'
1423 0 0 0 exists $args{'longmess'} and not $args{'longmess'}
1499 0 0 0 &$parameterized_check($_) && &$my_check($_)
1511 6 40 0 defined $check and ref $check ne 'CODE'
1645 0 0 0 ref $value and defined &overload::StrVal
1659 0 0 0 not ref $other and $other eq '__ANON__'
1827 4 0 0 @_ == 1 and ref $_[0]
4 0 0 @_ == 2 and ref $_[1]
1848 0 4 0 $is_subtype and not $parent
1934 0 0 0 &Scalar::Util::blessed($_[0]) && Mouse::Util::does_role($_[0], $role)
1953 0 0 0 @_ == 1 && ref $_[0] eq 'ARRAY'
1973 0 0 0 @_ == 1 and ref $_[0] eq 'ARRAY'
1978 0 0 0 @_ == 1 && ref $_[0] eq 'ARRAY'
1984 0 0 0 defined $_[0] && !ref($_[0]) && exists $valid{$_[0]}
2242 0 0 0 defined $SUPER_PACKAGE and $SUPER_PACKAGE ne caller()
2369 4 0 0 @bad and $class ne 'Mouse::Meta::Attribute'
2474 0 0 0 exists $args->{$illegal} and exists $self->{$illegal}
2731 0 0 4 $mm and $mm == \&Mouse::Util::meta
2800 0 0 0 $self_lin_isa[0] eq $other_lin_isa[0] && $self_lin_isa[0]
2906 4 0 0 not $attr->{'associated_methods'} and ($attr->{'is'} || '') ne 'bare'
3165 0 0 0 &Scalar::Util::blessed($r) && $l->body == $r->body && $l->name eq $r->name && $l->package_name eq $r->package_name
3193 4 0 0 defined $constraint && $constraint->has_coercion && $attribute->should_coerce
3257 4 0 0 $attribute->is_lazy and $type ne 'wo'
3435 0 0 0 $attr->should_coerce && $type_constraint->has_coercion
3551 0 0 0 $class->can('BUILDARGS') and $class->can('BUILDARGS') != \&Mouse::Object::BUILDARGS
3604 0 0 0 defined $tc && $tc->is_a_type_of('Object') && ($attr->is_required || $attr->has_default || $attr->has_builder) && ($attr->is_lazy || !$attr->has_clearer)
3621 0 0 0 ref $proxy && !&Scalar::Util::blessed($proxy)
3719 0 0 12 $package_name and not ref $package_name
3731 0 0 0 $package_name and not ref $package_name
3784 0 0 0 $code && !exists($foreign{Mouse::Util::get_code_package($code)})
3960 0 0 0 defined $roles and not $options{'in_application_to_instance'}
4144 0 0 0 $args->{'alias'} and not exists $$args{-'alias'}
4147 0 0 0 $args->{'excludes'} and not exists $$args{-'excludes'}
4273 0 0 0 defined $dstcode and $dstcode != $code
4418 0 0 0 $existing and $existing != $spec
4430 0 0 0 $existing and $existing != $code

or 2 conditions

line l !l condition
211 0 0 Mouse::Util::class_of($_[0]) || (return 0)
332 0 0 Mouse::Util::get_code_ref($class, 'BUILD') || (next)
418 0 0 $self->{'before_method_modifiers'}{$method_name} ||= []
424 0 0 $self->{'around_method_modifiers'}{$method_name} ||= []
430 0 0 $self->{'after_method_modifiers'}{$method_name} ||= []
436 0 0 $self->{'before_method_modifiers'}{$method_name} ||= []
440 0 0 $self->{'around_method_modifiers'}{$method_name} ||= []
444 0 0 $self->{'after_method_modifiers'}{$method_name} ||= []
751 0 0 Mouse::Util::get_code_ref($class, 'DEMOLISH') || (next)
771 0 0 Mouse::Util::get_code_ref($class, 'BUILD') || (next)
890 0 10 $args{'groups'}{'all'} ||= \@all
901 0 8 $args{'groups'}{'default'} ||= \@all
1095 0 0 eval sprintf("#line %d %s\n", '1095', $hack_mouse_file) . "\n\t\t\tlocal \$^W = 0; # workaround 'redefine' warning to &install_subroutines\n\t\t\tno warnings 'redefine';\n\t\t\trequire XSLoader;\n\t\t\tXSLoader::load('Mouse', \$VERSION);\n\t\t\tMouse::Util->import({ into => 'Mouse::Meta::Method::Constructor::XS' }, ':meta');\n\t\t\tMouse::Util->import({ into => 'Mouse::Meta::Method::Destructor::XS' }, ':meta');\n\t\t\tMouse::Util->import({ into => 'Mouse::Meta::Method::Accessor::XS' }, ':meta');\n\t\t\treturn 1;\n\t\t" || 0
1225 0 0 $meta || 'Mouse::Meta::Class'
1420 0 0 $args{'depth'} || 0
1562 0 0 $self->{'coercion_map'} ||= []
1868 0 0 $TYPE{$name}{'package_defined_in'} || 'Mouse::Util::TypeConstraints'
2281 0 4 $args{'base_class'} || 'Mouse::Object'
2282 0 4 $args{'metaclass'} || 'Mouse::Meta::Class'
2906 0 0 $attr->{'is'} || ''
4188 0 0 $meta || 'Mouse::Meta::Class'
4372 0 0 $self->{'methods'}{$method_name} || 0
4382 0 0 $self->{'composed_roles_by_method'}{$method_name} ||= []
4660 0 0 $args{'metaclass'} || 'Mouse::Meta::Role'

or 3 conditions

line l !l&&r !l&&!r condition
61 0 0 8 ref $class or not defined $class
0 0 8 ref $class or not defined $class or not length $class
87 0 8 4 ref $entry ne 'GLOB' or defined *{$entry;}{'CODE'}
194 0 0 0 ref $value eq 'SCALAR' || ref $value eq 'REF'
204 0 0 0 &Scalar::Util::openhandle($value) || &Scalar::Util::blessed($value) && $value->isa('IO::Handle')
243 0 0 0 !defined($_) || &$check($_)
359 0 4 0 $self->{'_mouse_cache'}{'_initialize_object'} ||= Mouse::Util::load_class($self->constructor_class)->_generate_initialize_object($self)
367 0 4 0 $self->{'_mouse_cache'}{'all_attributes'} ||= $self->_calculate_all_attributes
552 0 0 0 $args->{'reader'} ||= $name
556 0 0 0 $args->{'reader'} ||= $name
559 0 4 0 $args->{'accessor'} ||= $name
604 0 0 0 $args->{'builder'} ||= "_build_$name"
606 0 0 0 $args->{'clearer'} ||= "_clear$name"
607 0 0 0 $args->{'predicate'} ||= "_has$name"
610 0 0 0 $args->{'clearer'} ||= "clear_$name"
611 0 0 0 $args->{'predicate'} ||= "has_$name"
619 0 0 0 $tc->is_a_type_of('ArrayRef') or $tc->is_a_type_of('HashRef')
630 0 0 0 exists $args->{'default'} or defined $args->{'builder'}
805 0 10 0 $args{'exporting_package'} ||= caller()
828 10 0 0 $args{'exporting_package'} ||= caller()
895 0 0 0 $exports{$keyword} || Carp::confess(qq[The $exporting_package package does not export "$keyword"])
916 36 0 0 $SPEC{$package} || Carp::confess("The package $package package does not use Mouse::Exporter")
935 22 0 0 $spec->{'groups'}{$arg} || Carp::confess(qq[The $package package does not export the group "$arg"])
978 94 0 0 $spec->{'EXPORTS'}{$keyword} || Carp::confess(qq[The $package package does not export "$keyword"])
994 0 0 0 $SPEC{$package} || Carp::confess("The package $package does not use Mouse::Exporter")
1087 0 0 0 defined &Mouse::Util::is_valid_class_name || $ENV{'MOUSE_PUREPERL'} || $ENV{'PERL_ONLY'}
1234 0 0 0 &Scalar::Util::blessed($thing) || is_class_loaded($thing)
1250 0 0 0 $cache{$cache_key}{$metaclass_name} ||= do { my $possible_full_name = join('::', 'Mouse::Meta', $type, 'Custom', $options{'trait'} ? 'Trait' : (), $metaclass_name); my $loaded_class = load_first_existing_class($possible_full_name, $metaclass_name); $loaded_class->can('register_implementation') ? $loaded_class->register_implementation : $loaded_class }
1404 0 0 0 $feature ||= (caller 1)[3] . '()'
1412 0 0 0 ref $_[0] || $_[0]
1491 0 0 0 $args{'constraint_generator'} || $class->throw_error("The $args{'name'} constraint cannot be used," . " because $type_parameter doesn't subtype" . ' from a parameterizable type')
1687 0 0 0 $name ||= sprintf('%s[%s]', $self->name, $param->name)
1916 0 4 0 $options->{'class'} || $name
1928 0 0 0 $options->{'role'} || $name
2013 0 0 0 $TYPE{$name} ||= $base->parameterize($param, $name)
2024 0 0 0 $TYPE{$name} ||= 'Mouse::Meta::TypeConstraint'->new('name', $name, 'type_constraints', \@types)
2101 0 0 4 Mouse::Util::is_a_type_constraint($spec) or not defined $spec
2116 0 0 4 Mouse::Util::is_a_type_constraint($spec) or not defined $spec
2290 0 4 0 ref $_[0] || $_[0]
2402 0 0 0 $self->{'_mouse_cache_read_method_ref'} ||= $self->_get_accessor_method_ref('get_read_method', '_generate_reader')
2408 0 0 0 $self->{'_mouse_cache_write_method_ref'} ||= $self->_get_accessor_method_ref('get_write_method', '_generate_writer')
2507 0 0 0 $self->associated_class || $self->throw_error('No asocciated class for ' . $self->name)
2532 0 0 0 $self->{'_mouse_cache_predicate_ref'} ||= $self->_get_accessor_method_ref('predicate', '_generate_predicate')
2540 0 0 0 $self->{'_mouse_cache_crealer_ref'} ||= $self->_get_accessor_method_ref('clearer', '_generate_clearer')
2678 0 4 0 ref $class || $class
2732 0 0 0 $super->can('new') or $super->can('DESTROY')
2765 0 0 0 $self->can($metaclass_type . '_metaclass') || $self->can($metaclass_type . '_class')
3207 4 0 0 $type eq 'rw' or $type eq 'wo'
3235 0 0 4 $is_weak or $trigger
0 0 4 $is_weak or $trigger or $should_deref
3374 0 0 0 $metaclass->{'_mouse_cache'}{'_initialize_object'} ||= $class->_generate_initialize_object($metaclass)
3471 0 0 4 $attr->has_default or $attr->has_builder
3597 0 0 0 $attr->get_read_method || $attr->get_read_method_ref
3722 8 4 0 $METAS{$package_name} ||= $class->_construct_meta('package', $package_name, @args)
3744 0 0 0 ref $class_or_instance or $class_or_instance
3796 0 0 0 defined $self->{'methods'}{$method_name} || defined $self->_get_method_body($method_name)
3805 0 0 0 $self->{'methods'}{$method_name} ||= $self->_get_method_body($method_name)
3867 0 0 0 ref $self || $self
3884 0 0 0 ref $attributes eq 'ARRAY' or ref $attributes eq 'HASH'
3930 0 0 0 ref $_[0] || $_[0]
4024 0 0 0 ref $class || $class
4054 0 0 0 $required{$_}++ || $self->has_method($_)
4139 0 0 0 exists $args->{'exclude'} or exists $args->{'alias'}
4541 0 0 0 $self->isa($class_or_role_name) || $self->does($class_or_role_name)
4668 0 0 0 ref $_[0] || $_[0]
4723 0 0 0 $for->can($metaclass = $key . '_metaclass') || $for->can($metaclass = $key . '_class') || $for->throw_error("Unknown metaclass '${key}'")
4738 0 0 0 $args->{'class_metaroles'} or $args->{'roles_metaroles'}
4814 0 0 0 ref $_ || $meta->does_role($_)