| 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] ? : |