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 $_ |