Condition Coverage

blib/lib/Dios/Types.pm
Criterion Covered Total %
condition 113 196 57.6


and 3 conditions

line !l l&&!r l&&r condition
26 2 2 0 $export_as and $exportable{$export_as}
482 0 1 0 @types > 1 and $types[-1] =~ /^$TYPED_ETC$/u
0 1 0 @types > 0 and $types[-1] =~ /^$PURE_ETC$/u
498 0 1 0 not $final_handler and @{$array_ref;} != @types
636 2 24 0 $reftype ne "REF" and $reftype ne "SCALAR"
658 0 0 0 defined $_[0] and !&blessed($_[0]) || overload::Method($_[0], '""')
0 0 0 defined $_[0] and !&blessed($_[0]) || overload::Method($_[0], '""') and eval { do { "$_[0]" eq $str } }
670 0 0 28 defined $_[0] and !&blessed($_[0]) || overload::Method($_[0], '""')
0 4 24 defined $_[0] and !&blessed($_[0]) || overload::Method($_[0], '""') and eval { do { "$_[0]" =~ /$regex/u } }
928 15 15 21 $vartype ne "ARRAY" and $vartype ne "HASH"
973 0 1 0 $void_warning and $type eq "Void"
1019 0 30 0 $void_warning and $type eq "Void"
1049 0 2 0 $void_warning and not eval { do { _up_validate(1, $type, undef) } }
1065 48 38 24 not $unnormalized and $type_a =~ /\A (?: Ref ) \Z /msux
48 38 0 not $unnormalized and $type_a =~ /\A (?: Array | List ) \Z /msux
48 34 4 not $unnormalized and $type_a eq "Hash"
1079 48 62 0 not $unnormalized and $type_b =~ /\A (?: Ref ) \Z /msux
48 62 0 not $unnormalized and $type_b =~ /\A (?: Array | List ) \Z /msux
48 42 20 not $unnormalized and $type_b eq "Hash"
1094 28 20 62 exists $type_a_is{'basic'} and exists $type_b_is{'basic'}
1101 116 12 16 exists $type_a_is{$elem_type} and exists $type_b_is{$elem_type}
1109 32 0 0 $type_a =~ /\A(?:Match|Eq)\Z/u and $BASIC_NARROWER{'Class'}{$type_b}
1110 32 0 0 $type_b =~ /\A(?:Match|Eq)\Z/u and $BASIC_NARROWER{'Class'}{$type_a}
1115 0 0 0 exists $type_a_is{'user'} and exists $type_b_is{'user'}
1146 62 0 26 not $is_narrower and $type_a eq $type_b
1155 26 46 16 $is_narrower and $is_narrower == -$partial_ordering
1200 15 8 4 $kind eq "method" and @sigs > 1
1225 0 0 40 not length($constraint_desc // "") and eval { do { require B } }
1227 0 40 0 $sub_name and $sub_name ne "__ANON__"
1234 0 0 40 not length($constraint_desc // "") and eval { do { require B::Deparse } }

or 2 conditions

line l !l condition
55 63 0 (&CORE::GLOBAL::caller(0))[3] // ""
70 63 0 (&CORE::GLOBAL::caller(0))[3] // ""
91 7 4 $constraint //= sub { 1; }
93 11 0 (&CORE::GLOBAL::caller(0))[10] // {}
163 25 73 &reftype($previous_errors) // ""
448 74 2 &reftype($_[0]) // ""
463 3 1 &reftype($_[0]) // ""
498 2 0 &reftype($array_ref) // ""
540 40 3 &reftype($_[0]) // ""
559 18 0 &reftype($_[0]) // ""
590 0 4 $valtype // "Any"
604 4 0 &reftype($hash_ref) // ""
707 545 13 $desc //= "Value (%s)"
728 757 0 (&CORE::GLOBAL::caller(0))[10] // {}
778 110 8 (&CORE::GLOBAL::caller($uplevels))[10] // {}
828 281 0 (&CORE::GLOBAL::caller(0))[10] // {}
934 27 15 (&CORE::GLOBAL::caller(3))[3] // ""
965 0 33 $where //= sub { 1; }
1000 1 0 (eval { do { if (@retvals == 1) { _up_validate(1, $type, $retvals[0], $where, "Return value (" . _perl(@retvals) =~ s/^\(|\)$//gru . ") of call to $name()\n"); } else { undef; } } } // eval { do { _up_validate(1, $type, \@retvals, $listwhere, "List of return values (" . _perl(@retvals) =~ s/^\(|\)$//gru . ") of call to $name()\n") } }) // die($@ =~ s/\s*+at \S+ line \d++.*+/sprintf "\nat %s line %d\n", (&CORE::GLOBAL::caller(1))[1, 2];/ersu)
1026 23 7 eval { do { _up_validate(1, $type, $retval, $where, "Scalar return value (" . _perl($retval) . ") of call to $name()\n") } } // die($@ =~ s/\s*at \S+ line \d+.*/sprintf "\nat %s line %d\n", (&CORE::GLOBAL::caller(1))[1, 2];/eru)
1131 28 18 $named_B_for{$sig_b} //= {map({$_->{'named'} ? ($_->{'named'}, $_) : ();} @{$sig_b;})}
1137 88 0 $sig_a->[$n] // {}
1139 88 0 ($sig_a_name ? $named_B->{$sig_a_name} : $sig_b->[$n]) // {}
1140 88 0 $sig_a_n->{'type'} // "Any"
88 0 $sig_b_n->{'type'} // "Any"
1147 0 26 $sig_a_n->{'where'} // 0
1148 0 26 $sig_b_n->{'where'} // 0
1225 40 0 $constraint_desc // ""
1234 40 0 $constraint_desc // ""

or 3 conditions

line l !l&&r !l&&!r condition
35 2 2 0 $export_as //= $exported
435 17 0 13 $user_defined_type[$idx]->($typename)->($_) || &_error_near($_[0], $typename)
440 2 0 0 &blessed($_[0]) && $_[0]->isa($typename) || &_error_near($_[0], $typename)
498 1 0 1 (&reftype($array_ref) // "") ne "ARRAY" or not $final_handler and @{$array_ref;} != @types
508 0 1 0 $final_any or @{$array_ref;} == @types
636 0 0 26 not $reftype or $reftype ne "REF" and $reftype ne "SCALAR"
658 0 0 0 !&blessed($_[0]) || overload::Method($_[0], '""')
670 28 0 0 !&blessed($_[0]) || overload::Method($_[0], '""')
679 0 8 0 &blessed($_[0]) or $handler_for{'Class'}->($_[0])
693 0 10 0 &blessed($_[0]) or $handler_for{'Class'}->($_[0])
839 167 0 114 $value_desc or @constraints
1000 0 1 0 eval { do { if (@retvals == 1) { _up_validate(1, $type, $retvals[0], $where, "Return value (" . _perl(@retvals) =~ s/^\(|\)$//gru . ") of call to $name()\n"); } else { undef; } } } // eval { do { _up_validate(1, $type, \@retvals, $listwhere, "List of return values (" . _perl(@retvals) =~ s/^\(|\)$//gru . ") of call to $name()\n") } }
1107 12 20 0 $type_a =~ s/\A(?:List|Array|Hash|Ref|Match|Eq)\K\[.*//msux or $type_b =~ s/\A(?:List|Array|Hash|Ref|Match|Eq)\K\[.*//msux
1158 10 44 18 $partial_ordering ||= $is_narrower
1180 45 28 18 $narrowness_for{join $;, $sig1, $sig2} //= _cmp_signatures($sig1, $sig2)
1247 40 0 0 $constraint_desc // "$constraint"