Branch Coverage

blib/lib/Params/ValidationCompiler/Compiler.pm
Criterion Covered Total %
branch 135 166 81.3


line true false branch
30 1 16 unless ($has_sub_util)
56 1 57 unless (exists $p{'params'})
61 36 21 if (ref $p{'params'} eq 'HASH') { }
17 4 elsif (ref $p{'params'} eq 'ARRAY') { }
63 0 36 unless %{$p{'params'};}
67 0 36 if $p{'named_to_list'}
73 0 17 unless @{$p{'params'};}
76 1 16 if $p{'return_object'}
81 4 12 $p{'named_to_list'} ? :
91 1 2 if ($p{'named_to_list'} and $p{'slurpy'})
95 3 4 if (exists $p{'name'} and !defined($p{'name'}) || ref $p{'name'})
101 1 4 if ($p{'return_object'} and $p{'slurpy'})
106 1 42 if (@unknown)
122 2 5 if (not defined $thing) { }
2 3 elsif (my $class = &blessed($thing)) { }
2 1 elsif (ref $thing) { }
126 0 2 $class =~ /^[aeiou]/i ? :
131 1 1 $ref =~ /^[aeiou]/i ? :
152 24 49 unless $ref
154 1 48 unless $ref eq "HASH"
159 3 45 if (@unknown)
192 11 94 defined $_[0]{'name'} ? :
198 0 9 if exists $self->{'_has_coercion'}
203 1 4 if ($type->can('has_coercions') and $type->has_coercions) { }
0 4 elsif ($type->can('has_coercion') and $type->has_coercion) { }
220 0 9 if (ref $self->params eq 'HASH') { }
9 0 elsif (ref $self->params eq 'ARRAY') { }
221 0 0 unless $_->{'type'}
225 0 9 if ($self->named_to_list) { }
227 0 0 unless $_->{'type'}
231 11 4 unless $_->{'type'}
235 1 8 if $self->slurpy and ref $self->slurpy
245 0 39 if $self->{'debug'}
251 4 35 if ($self->_has_name)
252 0 4 $self->_has_caller ? :
255 1 3 if $self->_name_is_optional and not &HAS_SUB_UTIL()
275 29 13 if (ref $self->params eq 'HASH') { }
13 0 elsif (ref $self->params eq 'ARRAY') { }
279 2 11 if ($self->named_to_list) { }
293 4 25 if ($self->return_object) { }
316 2 6 ref $params->{$p} && exists $params->{$p}{'getter'} ? :
319 2 4 if ref $params->{$p} and exists $params->{$p}{'predicate'}
323 2 2 $use_cxsa ? :
330 2 2 if ($use_cxsa) { }
384 0 2 unless eval join("", @source)
400 1 1 if (@keys == 1) { }
419 16 28 unless ref $spec
428 29 4 unless exists $spec->{'optional'} and $spec->{'optional'} or exists $spec->{'default'}
434 4 40 if exists $spec->{'default'}
438 18 0 if exists $spec->{'type'} and $spec->{'type'}
441 2 29 if ($self->slurpy) { }
442 1 1 if ref $self->slurpy
581 9 4 unless $specs[$i]{'optional'} or exists $specs[$i]{'default'}
590 3 6 $first_optional_idx == -1 ? :
9 0 if $first_optional_idx != 0
595 7 2 unless $self->slurpy
600 1 8 if ($self->_any_type_has_coercion)
617 4 11 if exists $spec->{'default'}
620 4 11 if $spec->{'type'}
623 1 8 if (ref $self->slurpy)
643 12 7 ref $spec ? :
644 8 11 if ($spec->{'optional'} or exists $spec->{'default'}) { }
2 9 elsif ($in_optional) { }
760 0 8 if ref $default and &reftype($default) ne "CODE"
763 3 5 if (ref $default) { }
768 4 1 if (defined $default) { }
769 3 1 if (&looks_like_number($default)) { }
792 0 22 unless &blessed($type)
796 7 15 if $spec->{'optional'}
802 7 15 if $spec->{'optional'}
814 0 0 $type->can('can_be_inlined') ? :
6 0 $type->can('inline_assert') ? :
18 6 $type->can('can_inline_coercion_and_check') ? :
839 4 2 if ($type->has_coercion)
841 1 3 if ($coercion->can_be_inlined) { }
856 3 3 if ($type->can_be_inlined) { }
882 13 5 if ($type->can_inline_coercion_and_check) { }
883 1 12 if ($type->has_coercions) { }
911 1 3 if ($c->can_be_inlined) { }
966 0 0 if ($type->has_coercion)
994 0 0 $type->can_be_inlined ? :
1007 0 0 if ($type->can_be_inlined)
1024 0 26 if (exists $env->{$key})