line |
true |
false |
branch |
64
|
0 |
0 |
if (ref $proto) |
69
|
0 |
0 |
if $self->can('initialize') |
91
|
0 |
0 |
if ($^W and $VERBOSE) |
95
|
0 |
0 |
if ($VERBOSE > 1) { } |
124
|
520 |
23 |
if (@_) |
126
|
80 |
512 |
unless $self->has_type($_) |
146
|
0 |
187 |
if (defined $attrs and %$attrs) |
163
|
0 |
179 |
if (not $h1->has_type($t)) { } |
169
|
0 |
179 |
if @parents |
173
|
0 |
179 |
if (defined $attrs) |
194
|
0 |
0 |
defined $_[1] ? : |
199
|
4 |
848 |
unless $h->has_type($_) |
208
|
10 |
50 |
if $h1 eq $h2 |
214
|
4 |
370 |
unless $h1->has_type($type) and $h2->has_type($type) |
220
|
2 |
368 |
unless $h1->has_parent($type, $parent) and $h2->has_parent($type, $parent) |
238
|
5 |
45 |
if $_[2]{'step'} > $_[2]{'size'} |
244
|
0 |
0 |
if $_[0]->has_ancestor($_, $_) |
258
|
5 |
43 |
if @lubs and scalar @lubs > 1 |
270
|
5 |
29 |
if scalar @{[$h->parents($_)];} > 1 |
310
|
0 |
0 |
if $_[0]->has_types($_[1], $_[2]) |
327
|
11 |
58 |
$_[2]{'find'} eq $_[1] ? : |
348
|
10 |
15 |
$WANT_USER_HOOKS && defined($a = _subsumes_user($_[1], $_[2])) ? : |
|
20 |
25 |
defined($a = _subsumes_trivial($_[1], $_[2])) ? : |
362
|
0 |
25 |
$_[0] eq $TYPE_TOP ? : |
|
0 |
25 |
$_[1] eq $TYPE_TOP ? : |
|
5 |
25 |
$_[0] eq $_[1] ? : |
|
10 |
30 |
!defined($_[1]) ? : |
|
5 |
40 |
!defined($_[0]) ? : |
384
|
10 |
15 |
ref $_[0] && ref $_[0] eq 'CODE' ? : |
|
0 |
25 |
UNIVERSAL::can($_[0], 'subsumes') ? : |
395
|
0 |
0 |
$WANT_USER_HOOKS && defined($ans = _psubsumes_user($_[1], $_[2])) ? : |
|
0 |
0 |
defined($ans = _psubsumes_trivial($_[1], $_[2])) ? : |
406
|
0 |
0 |
$_[0] eq $_[1] ? : |
|
0 |
0 |
$_[1] eq $TYPE_TOP ? : |
|
0 |
0 |
$_[0] eq $TYPE_TOP ? : |
|
0 |
0 |
!defined($_[1]) ? : |
|
0 |
0 |
defined $_[1] ? : |
|
0 |
0 |
defined $_[0] ? : |
429
|
0 |
0 |
ref $_[0] && ref $_[0] eq 'CODE' ? : |
|
0 |
0 |
UNIVERSAL::can($_[0], 'properly_subsumes') ? : |
446
|
0 |
0 |
if defined $_[1] and defined $_[2] and $_[1] eq $_[2] or not defined $_[1] || defined $_[2] |
451
|
0 |
0 |
if $_[0]->properly_subsumes($_[1], $_[2]) |
452
|
0 |
0 |
if $_[0]->properly_subsumes($_[2], $_[1]) |
456
|
0 |
8 |
unless $_[0]->has_types($_[1], $_[2]) |
457
|
3 |
5 |
if defined $_[1] and defined $_[2] and $_[1] eq $_[2] or not defined $_[1] || defined $_[2] |
462
|
2 |
3 |
if $_[0]->has_ancestor($_[1], $_[2]) |
463
|
0 |
3 |
if $_[0]->has_ancestor($_[2], $_[1]) |
476
|
0 |
0 |
if $self->properly_extends($t1, $t2) |
490
|
0 |
0 |
if $self->properly_subsumes($t1, $t2) |
539
|
0 |
0 |
if $_[2]{'step'} > $_[2]{'maxstep'} |
540
|
0 |
0 |
if (exists $_[2]{'find'}{$_[1]}) { } |
|
0 |
0 |
elsif (exists $_[2]{'found'}{$_[1]}) { } |
558
|
0 |
0 |
if not $cmp or $cmp < 0 |
568
|
0 |
0 |
defined $_ ? : |
573
|
0 |
0 |
if (defined $_ and exists $$stratah{$_}) { } |
574
|
0 |
0 |
if (not exists $strata[$$stratah{$_}]) { } |
583
|
0 |
0 |
if @$last |
604
|
0 |
0 |
if $_[2]{'step'} >= $_[2]{'maxstrat'} |
606
|
0 |
0 |
if (not exists $_[2]{'laststep'}{$_[1]} or $_[2]{'laststep'}{$_[1]} < $_[2]{'step'}) |
629
|
0 |
0 |
if $step > scalar @_ |
633
|
0 |
0 |
unless $h->has_type($types[$i]) |
636
|
0 |
0 |
unless $h->has_type($types[$j]) |
639
|
0 |
0 |
unless $cmp |
641
|
0 |
0 |
if ($cmp < 0) { } |
|
0 |
0 |
elsif ($cmp > 0) { } |
642
|
0 |
0 |
if $strata{$types[$i]} < $strata{$types[$j]} |
647
|
0 |
0 |
if $strata{$types[$i]} > $strata{$types[$j]} |
664
|
0 |
0 |
if ($^W and $VERBOSE) |
666
|
0 |
0 |
defined $t1 ? : |
|
0 |
0 |
defined $t2 ? : |
|
0 |
0 |
defined $default ? : |
673
|
0 |
0 |
if ($VERBOSE > 1) { } |
686
|
0 |
0 |
unless @lubs |
687
|
0 |
0 |
if scalar @lubs > 1 |
697
|
0 |
0 |
unless $h->has_types(@_) |
702
|
0 |
0 |
unless @lubs |
703
|
0 |
0 |
if scalar @lubs > 1 |
718
|
0 |
0 |
unless @glbs |
719
|
0 |
0 |
if scalar @glbs > 1 |
728
|
0 |
0 |
unless $h->has_types(@_) |
733
|
0 |
0 |
unless @glbs |
734
|
0 |
0 |
if scalar @glbs > 1 |
750
|
5 |
0 |
ref $_[0] && $_[0]->has_types($_[1], $_[2]) ? : |
|
15 |
5 |
$WANT_USER_HOOKS && defined($l = _lub_user($_[1], $_[2])) ? : |
|
15 |
20 |
defined($l = _lub_trivial($_[1], $_[2])) ? : |
777
|
5 |
20 |
$_[0] eq $_[1] ? : |
|
0 |
25 |
$_[0] eq $TYPE_TOP || $_[1] eq $TYPE_TOP ? : |
|
5 |
25 |
!defined($_[0]) ? : |
|
5 |
30 |
!defined($_[1]) ? : |
806
|
5 |
15 |
UNIVERSAL::can($_[2], $_[0]) ? : |
|
15 |
20 |
UNIVERSAL::can($_[1], $_[0]) ? : |
|
0 |
35 |
ref $_[2] && ref $_[2] eq 'CODE' ? : |
|
10 |
35 |
ref $_[1] && ref $_[1] eq 'CODE' ? : |
817
|
0 |
0 |
if (defined($cmp = $_[0]->compare($_[1], $_[2]))) |
819
|
0 |
0 |
if $cmp <= 0 |
835
|
0 |
0 |
unless $_[0]->has_types($_[1], $_[2]) |
873
|
13 |
56 |
if (exists $$t2set{$e}) { } |
877
|
0 |
0 |
unless $cmp |
878
|
0 |
0 |
if ($cmp != $cmpkeep) |
884
|
13 |
0 |
if $want |
894
|
18 |
48 |
if (exists $$t1set{$e}) { } |
898
|
6 |
2 |
unless $cmp |
899
|
2 |
0 |
if ($cmp != $cmpkeep) |
905
|
16 |
2 |
if $want |
939
|
5 |
5 |
ref $_[0] && $_[0]->has_types($_[1], $_[2]) ? : |
|
15 |
10 |
$WANT_USER_HOOKS && defined($l = _glb_user($_[1], $_[2])) ? : |
|
10 |
25 |
defined($l = _glb_trivial($_[1], $_[2])) ? : |
972
|
0 |
0 |
if (defined($cmp = $_[0]->compare($_[1], $_[2]))) |
974
|
0 |
0 |
if $cmp >= 0 |
1030
|
0 |
0 |
defined($tattrs = $self->_attributes($type)) ? : |
1037
|
0 |
0 |
if (defined($tattrs = $self->_attributes($type))) |
1046
|
0 |
0 |
unless ref $self and $self =~ /=HASH\(/ |
1049
|
0 |
0 |
if (@_) |
1054
|
0 |
0 |
if (exists $$self{'attributes'} and exists $$self{'attributes'}{$type}) |
1065
|
105 |
35 |
if (scalar @_ == 1) |
1066
|
6 |
99 |
unless defined $_[0]->_attributes and exists $_[0]->_attributes->{$_[0]} |
1076
|
0 |
0 |
defined $_[1] ? : |
1081
|
0 |
0 |
defined $_[2] ? : |
|
0 |
0 |
defined $_[1] ? : |
1095
|
0 |
0 |
unless defined $next and defined $callback |
1099
|
0 |
0 |
ref $$args{'start'} ? : |
|
0 |
0 |
defined $$args{'start'} ? : |
1102
|
0 |
0 |
unless $self->has_types(@q) |
1106
|
0 |
0 |
if defined $callback |
1107
|
0 |
0 |
if defined $r |
1116
|
0 |
26 |
unless defined $next |
1120
|
20 |
6 |
ref $$args{'start'} ? : |
|
26 |
0 |
defined $$args{'start'} ? : |
1123
|
0 |
26 |
unless $self->has_types(@q) |
1125
|
0 |
26 |
defined $$args{'visited'} ? : |
1132
|
26 |
0 |
unless defined $$args{'step'} |
1137
|
2 |
96 |
if exists $$visited{$t} |
1139
|
96 |
0 |
if defined $callback |
1140
|
11 |
85 |
if defined $r |
1152
|
0 |
0 |
unless defined $next and defined $callback |
1156
|
0 |
0 |
ref $$args{'start'} ? : |
|
0 |
0 |
defined $$args{'start'} ? : |
1160
|
0 |
0 |
defined $$args{'ignore'} ? : |
1165
|
0 |
0 |
defined $$args{'prev'} ? : |
1172
|
0 |
0 |
unless defined $$args{'step'} |
1178
|
0 |
0 |
if exists $$ignore{$t} |
1181
|
0 |
0 |
if defined $r |
1183
|
0 |
0 |
if exists $$ignore{$t} |
1199
|
0 |
10 |
unless defined $next and defined $callback |
1203
|
0 |
0 |
ref $$args{'start'} ? : |
|
0 |
10 |
defined $$args{'start'} ? : |
1207
|
0 |
10 |
defined $$args{'prev'} ? : |
1214
|
10 |
0 |
unless defined $$args{'step'} |
1221
|
5 |
45 |
if defined $r |
1226
|
40 |
0 |
if (not defined $$prev{$_}{$t} or $$prev{$_}{$t} < $$args{'step'}) |
1238
|
0 |
0 |
defined $_[2] ? : |
1245
|
0 |
0 |
defined $_[2] ? : |
1252
|
0 |
0 |
if defined $_[2] and not defined $_[2]{'start'} |
1254
|
0 |
0 |
defined $_[2] ? : |
1261
|
0 |
26 |
if defined $_[2] and not defined $_[2]{'start'} |
1263
|
26 |
0 |
defined $_[2] ? : |