Condition Coverage

blib/lib/Type/Tiny.pm
Criterion Covered Total %
condition 220 300 73.3


and 2 conditions

line l !l condition
118 951 313 $ENV{$_} and ++$strict_mode
436 1974 565 0 &Scalar::Util::reftype($params{'my_methods'}{$_}) eq "CODE" and &Eval::TypeTiny::set_subname(sprintf("%s::my_%s", $self->qualified_name, $_), $params{'my_methods'}{$_})

and 3 conditions

line !l l&&!r l&&r condition
307 95438 0 232692 not exists $params{'definition_context'} and $level < 20
327 0 0 12565 &blessed($params{'parent'}) and $params{'parent'}->isa("Type::Tiny")
329 12559 3 3 $params{'parent'}->deprecated and not exists $params{'deprecated'}
334 45343 0 50095 exists $params{'constraint'} and defined $params{'constraint'}
45343 50016 79 exists $params{'constraint'} and defined $params{'constraint'} and not ref $params{'constraint'}
366 95379 6 52 exists $params{'coercion'} and not ref $params{'coercion'}
95385 46 6 exists $params{'coercion'} and not ref $params{'coercion'} and $params{'coercion'}
375 10254 44778 40405 not exists $params{'inlined'} and exists $params{'constraint'}
44778 101 40304 not exists $params{'inlined'} and exists $params{'constraint'} and !exists $params{'parent'} || $params{'parent'}->can_be_inlined
101 40294 10 not exists $params{'inlined'} and exists $params{'constraint'} and !exists $params{'parent'} || $params{'parent'}->can_be_inlined and $QFS ||= "Sub::Quote"->can("quoted_from_sub")
394 5 1 4 $perlstring and not $captures
564 9 0 543 $self->has_coercion and @{$self->coercion->type_coercion_map;}
606 0 1891 0 defined $_ and s/[\x00-\x1F]//gms
607 487 570 35 !ref($_) && /\W/
616 44482 6 3515 $self->_is_null_constraint and $self->has_parent
657 3199 222 764 $self->_is_null_constraint and $self->has_parent
689 0 0 1614 &blessed($A) and $A->isa("Type::Tiny")
690 0 0 1614 &blessed($B) and $B->isa("Type::Tiny")
786 0 0 13175 &blessed($self) and $self->isa("Type::Tiny")
787 0 0 13175 &blessed($other) and $other->isa("Type::Tiny")
793 0 0 12635 &blessed($self) and $self->isa("Type::Tiny")
794 0 0 12635 &blessed($other) and $other->isa("Type::Tiny")
803 0 0 2 &blessed($self) and $self->isa("Type::Tiny")
804 0 0 2 &blessed($other) and $other->isa("Type::Tiny")
811 0 0 2368 &blessed($self) and $self->isa("Type::Tiny")
812 0 0 2368 &blessed($other) and $other->isa("Type::Tiny")
821 24 0 14302 exists $self->{'library'} && $self->name ne '__ANON__'
917 355 2 101 $self->is_parameterized and $self->parent->has_deep_explanation
976 59080 99525 27630 $self->has_parent and $self->_is_null_constraint
978 99525 45701 13379 not $self->has_parent and $self->_is_null_constraint
988 6914 48210 12110 $self->has_parent and $self->_is_null_constraint
990 48210 2569 4345 not $self->has_parent and $self->_is_null_constraint
995 0 43733 7046 @r and not defined $r[0]
1001 42331 7530 11114 /[;{}]/ && !/\Ado \{.+\}\z/
1061 1 55 365 defined $self and not ref $self
1137 36 1070 379 defined $key and defined $param_cache{$key}
1161 0 3996 45 exists $options{$_} and not defined $options{$_}
3996 45 0 exists $options{$_} and not defined $options{$_} and delete $options{$_}
1249 69 0 38 $self->has_library and not $self->is_anon
1268 3 0 0 $self->has_library and not $self->is_anon
1319 13433 7 756 $self->has_coercion && $self->coercion->frozen
1343 3 88 17 &blessed($next) and $next->isa("Type::Coercion")
91 9 8 &blessed($next) and $next->isa("Type::Coercion") and $next->is_parameterized
3 88 9 &blessed($next) and $next->can("type_coercion_map")
1431 274321 30 6181 $INC{'Moose.pm'} and ref $self
274351 6038 143 $INC{'Moose.pm'} and ref $self and $_[0] =~ /^(?:Class::MOP|MooseX?::Meta)::(.+)$/
1446 280040 30 319 $INC{'Mouse.pm'} and ref $self
280070 318 1 $INC{'Mouse.pm'} and ref $self and $_[0] eq "Mouse::Meta::TypeConstraint"
1483 84664 172 0 $_[0] eq "type_parameter" and &blessed($_[0])
84836 0 0 $_[0] eq "type_parameter" and &blessed($_[0]) and $_[0]->has_parameters
1501 42635 8 1 $self->{'is_object'} and $object_methods{$_[0]}
1531 72 0 3 $self->{'is_object'} and $object_methods{$m}
1551 0 45 0 ref $self and $_[0] =~ /^ Type::API::Constraint (?: ::Coercible | ::Inlinable )? $/x
1554 45 0 0 not ref $self and $_[0] eq "Type::API::Constraint::Constructor"

or 2 conditions

line l !l condition
349 0 79 $params{'inlined'} ||= sub {
1289 604 13593 $tag ||= 0
1680 373 8 (shift())->parameters || []

or 3 conditions

line l !l&&r !l&&!r condition
252 0 1 0 $self->{'_overload_coderef'} ||= do {
274 2024 12098 0 $self->{'_overload_coderef'} ||= $self->can_be_inlined ? Eval::TypeTiny::eval_closure("source", sprintf("sub { %s }", $self->inline_assert("\$_[0]", undef, "no_wrapper", 1)), "description", sprintf("compiled assertion 'assert_%s'", $self)) : Eval::TypeTiny::eval_closure("source", sprintf("sub { %s }", $self->inline_assert("\$_[0]", "\$type", "no_wrapper", 1)), "description", sprintf("compiled assertion 'assert_%s'", $self), "environment", {"\$type", \$self})
308 232387 305 0 our $_TT_GUTS ||= do {
349 3 76 0 not exists $params{'parent'} or $params{'parent'}->can_be_inlined
363 13052 0 1 $params{'name'} =~ /^_{0,2}[A-Z][A-Za-z0-9_]+$/ms or eval " use 5.008; \$params{name} =~ /^_{0,2}\\p{Lu}[\\p{L}0-9_]+\$/sm "
375 40101 203 101 !exists $params{'parent'} || $params{'parent'}->can_be_inlined
8 2 40294 $QFS ||= "Sub::Quote"->can("quoted_from_sub")
515 38348 13008 0 $_[0]{'display_name'} ||= $_[0]->_build_display_name
517 429432 4715 0 $_[0]{'constraint'} ||= $_[0]->_build_constraint
520 86358 47438 0 $_[0]{'compiled_type_constraint'} ||= $_[0]->_build_compiled_check
522 6304 12471 0 $_[0]{'coercion'} ||= $_[0]->_build_coercion
529 722 227 0 $_[0]{'name_generator'} ||= $_[0]->_build_name_generator
532 381 208 0 $_[0]{'moose_type'} ||= $_[0]->_build_moose_type
533 1 3 0 $_[0]{'mouse_type'} ||= $_[0]->_build_mouse_type
535 1751 141 0 $_[0]{'my_methods'} ||= $_[0]->_build_my_methods
537 11599 12477 0 $_[0]{'exception_class'} ||= $_[0]->_build_exception_class
551 1680 312 0 $_[0]{'_default_message'} ||= $_[0]->_build_default_message
781 247 75 364 $result eq 1 or $result eq 0
857 142601 553 0 $self->{'compiled_type_constraint'} ||= $self->_build_compiled_check
888 3 0 0 $self->{'compiled_type_constraint'} ||= $self->_build_compiled_check
938 5 7 0 $b ||= do {
956 76 9 0 $self->{'compiled_type_constraint'} ||= $self->_build_compiled_check
967 115093 1 0 $self->{'compiled_type_constraint'} ||= $self->_build_compiled_check
1013 0 12353 0 $extras{'exception_class'} ||= $self->exception_class
1064 61 360 0 delete $attrs{'exception_class'} || (ref $self ? $self->exception_class : 'Error::TypeTiny::Assertion')
1115 3 0 1032 ref $_ eq 'SCALAR' || ref $_ eq 'REF'
1200 12 78 0 $self->{'complementary_type'} ||= $self->_build_complementary_type
1287 12 14184 0 $base_name ||= $self->name
1296 0 13593 604 $tag eq "types" or not $tag
1302 1 13593 603 $tag eq "is" or not $tag
1308 0 13593 604 $tag eq "assert" or not $tag
1319 603 13593 1 $tag eq "to" or not $tag
1507 0 34 2 $self->{'_util'}{$util} ||= eval {
1539 26 44 0 $self->{'_util'}{$util} ||= $self->_build_util($util)
1544 2 0 0 ref $self || $self
1568 5 5 72 $func eq "grep" or $func eq "first"
10 8 64 $func eq "grep" or $func eq "first" or $func eq "any"
13 9 55 $func eq "grep" or $func eq "first" or $func eq "any" or $func eq "all"
17 8 47 $func eq "grep" or $func eq "first" or $func eq "any" or $func eq "all" or $func eq "assert_any"
17 8 39 $func eq "grep" or $func eq "first" or $func eq "any" or $func eq "all" or $func eq "assert_any" or $func eq "assert_all"
1626 18 11 2 $func eq "sort" or $func eq "rsort"

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
226 0 2 0 2 Deparse error: Can't locate object method "object_2svref" via package "B::SPECIAL" at /usr/local/lib/perl5/5.26.1/B/Deparse.pm line 5018.