| line |
true |
false |
branch |
|
36
|
4 |
22 |
if $caller eq 'VSO' |
|
41
|
20 |
2 |
if $class eq 'VSO' |
|
43
|
0 |
22 |
if $args{'extends'} and not ref $args{'extends'} |
|
50
|
0 |
22 |
if @{$args{'extends'};} |
|
60
|
0 |
27 |
if $s->can('BUILD') |
|
80
|
0 |
51 |
if ($$props{'weak_ref'}) { } |
|
97
|
4 |
57 |
if ($$props{'required'} and not defined $value and not $$props{'default'}) { } |
|
|
2 |
107 |
elsif ($$props{'default'} and not defined $value) { } |
|
104
|
0 |
2 |
if ($$props{'lazy'}) { } |
|
117
|
0 |
52 |
if ($$props{'where'} and defined $value) |
|
120
|
0 |
0 |
unless $$props{'where'}($s) |
|
138
|
9 |
53 |
if $isa =~ /^(.+?)\[(.+?)\]/ |
|
144
|
0 |
62 |
if ($current_type eq 'Undef') |
|
146
|
0 |
0 |
unless ($$props{'required'} and defined $original_value) |
|
154
|
21 |
41 |
if ($wanted_type eq 'Any' or $current_type->isa($wanted_type)) { } |
|
|
14 |
27 |
elsif (my $can_coerce = $$props{'coerce'} && exists $$_coercions{$wanted_type}{$current_type}) { } |
|
|
18 |
9 |
elsif (eval {
do {
$wanted_type->as eq $current_type
}
}) { } |
|
156
|
21 |
0 |
if (my $ref = $wanted_type->can('where')) { } |
|
159
|
21 |
0 |
if ($wanted_type->where($s)) |
|
174
|
14 |
0 |
$can_coerce ? : |
|
176
|
14 |
0 |
if ($coercion) { } |
|
189
|
17 |
1 |
if ($wanted_type->where($s)) |
|
200
|
3 |
52 |
unless ($is_ok) |
|
227
|
0 |
4 |
unless my $parent_meta = $_->meta |
|
245
|
0 |
6 |
unless exists $$meta{'fields'}{$name} or $class->can($name) |
|
248
|
2 |
4 |
if (exists $$meta{'fields'}{$name}) { } |
|
273
|
0 |
6 |
unless exists $$meta{'fields'}{$name} or $class->can($name) |
|
276
|
2 |
4 |
if (exists $$meta{'fields'}{$name}) { } |
|
287
|
2 |
2 |
wantarray ? : |
|
|
4 |
2 |
defined wantarray ? : |
|
289
|
2 |
2 |
$context eq 'scalar' ? : |
|
|
2 |
4 |
$context eq 'list' ? : |
|
291
|
2 |
2 |
$context eq 'scalar' ? : |
|
|
2 |
4 |
$context eq 'list' ? : |
|
309
|
6 |
26 |
if (my($reftype, $valtype) = $type =~ /^((?:Hash|Array)Ref)\[(.+?)\]$/) { } |
|
311
|
0 |
6 |
unless 'VSO::Subtype'->find($valtype) |
|
314
|
6 |
0 |
unless ('VSO::Subtype'->subtype_exists($type)) |
|
321
|
0 |
26 |
unless 'VSO::Subtype'->find($type) |
|
341
|
18 |
5 |
unless (@_) |
|
344
|
0 |
18 |
if (not defined $$s{$name} and $$props{'default'}) |
|
346
|
0 |
0 |
if ($$props{'weak_ref'}) { } |
|
359
|
1 |
4 |
if ($$props{'is'} eq 'ro') { } |
|
|
4 |
0 |
elsif ($$props{'is'} eq 'rw') { } |
|
370
|
1 |
2 |
if (my $triggers = $$meta{'triggers'}{"before.$name"}) |
|
378
|
0 |
3 |
if ($$props{'weak_ref'}) { } |
|
387
|
1 |
2 |
if (my $triggers = $$meta{'triggers'}{"after.$name"}) |
|
395
|
2 |
1 |
if defined wantarray |
|
413
|
0 |
2 |
unless @$vals |
|
420
|
0 |
7 |
unless @$vals |
|
424
|
2 |
4 |
$reftype eq 'ArrayRef' ? : |
|
432
|
39 |
89 |
if (my $ref = ref $val) { } |
|
434
|
0 |
39 |
if $ref eq 'SCALAR' |
|
435
|
4 |
35 |
if $ref eq 'ARRAY' |
|
436
|
14 |
21 |
if $ref eq 'HASH' |
|
437
|
8 |
13 |
if $ref eq 'CODE' |
|
438
|
0 |
13 |
if $ref eq 'GLOB' |
|
439
|
0 |
13 |
if $ref eq 'Regexp' |
|
440
|
0 |
13 |
if openhandle $val |
|
446
|
0 |
89 |
unless defined $val |
|
447
|
0 |
89 |
if $val =~ /^(?:0|1)$/ |
|
448
|
14 |
75 |
if $val =~ /^\d+$/ |
|
449
|
0 |
75 |
if $val =~ /^\d+\.?\d*?$/ |
|
452
|
0 |
75 |
if exists $INC{$fn} |
|
473
|
0 |
4 |
unless defined @{"${class}::ISA";} or $INC{$file} |
|
|
0 |
4 |
unless eval {
do {
require $file unless defined @{"${class}::ISA";} or $INC{$file};
1
}
} |
|
484
|
6 |
183 |
if $args{'name'} =~ /^.+?\[.+?\]$/ |
|
487
|
0 |
189 |
if $VSO::Subtype::types{$args{'name'}} |
|
490
|
0 |
189 |
if $args{'as'} =~ /^.+?\[.+?\]$/ |
|
511
|
0 |
182 |
if $VSO::Subtype::types{$name} |
|
530
|
0 |
10 |
if defined $$_coercions{$to}{$args{'from'}} |
|
548
|
1 |
8 |
if $_ eq $val |
|
603
|
0 |
0 |
unless not defined $_ |