Branch Coverage

blib/lib/Object/InsideOut.pm
Criterion Covered Total %
branch 659 944 69.8


line true false branch
134 0 194 if (&Scalar::Util::blessed($self))
139 0 194 if ($self ne 'Object::InsideOut')
140 0 0 if ('Exporter'->can('import'))
142 0 0 caller() eq 'Object::InsideOut' ? :
150 0 194 if (not $class or $class eq 'main')
160 0 194 if (defined ${$class . '::shared';})
168 1 193 if (${$class . '::storable';})
176 0 141 unless $pkg
179 0 141 if ($pkg =~ /^:(NOT?_?|!)?SHAR/i)
180 0 0 defined $1 ? :
186 3 138 if ($pkg =~ /^:HASH/i)
192 2 136 if ($pkg =~ /^:RESTRICT(?:ED)?(?:\((.*)\))?/i)
204 1 135 if ($pkg =~ /^:PRIV(?:ATE)?(?:\((.*)\))?/i)
216 2 133 if ($pkg =~ /^:PUB/i)
224 1 132 if ($pkg =~ /^:SECUR/i)
229 133 0 unless ($class->isa($pkg))
231 10 123 unless (grep {not $_ =~ /::$/;} keys %{$pkg . '::';})
233 5 5 if ($@)
239 2 3 unless (grep {not $_ =~ /::$/;} keys %{$pkg . '::';})
250 0 126 if (ref $_[0])
252 0 0 if (ref $imports ne 'ARRAY')
256 0 0 if ($@)
269 119 7 if (exists $GBL{'tree'}{'td'}{$parent}) { }
272 172 36 unless (exists $seen{$ancestor})
283 7 0 unless (exists $GBL{'heritage'}{$class})
292 104 83 if ($need_oio)
297 187 0 unless (exists $seen{$class})
318 0 2600 if (exists $GBL{'attr'}{'MOD'}{'CODE'})
320 0 0 unless @attrs
332 3 2597 if (my($restrict) = grep(/^RESTRICT(?:ED)?$/i, @attrs) and grep {$_ =~ /^CHAIN(?:ED)?$/i unless $_ =~ /^CUM(?:ULATIVE)?$/i;} @attrs)
333 14 3 unless $_ =~ /^CUM(?:ULATIVE)?$/i
347 5 4099 if ($attr eq 'ID') { }
1 4098 elsif ($attr eq 'PREINIT') { }
21 4077 elsif ($attr eq 'INIT') { }
1 4076 elsif ($attr =~ /^REPL(?:ICATE)?$/) { }
2 4074 elsif ($attr =~ /^DEST(?:ROY)?$/) { }
13 4061 elsif ($attr =~ /^AUTO(?:METHOD)?$/) { }
41 4020 elsif ($attr =~ /^CUM(?:ULATIVE)?$/) { }
29 3991 elsif ($attr =~ /^CHAIN(?:ED)?$/) { }
2 3989 elsif ($attr =~ /^DUMP(?:ER)?$/) { }
2 3987 elsif ($attr =~ /^PUMP(?:ER)?$/) { }
13 3974 elsif ($attr =~ /^RESTRICT(?:ED)?$/) { }
1431 2543 elsif ($attr =~ /^PRIV(?:ATE)?$/) { }
48 2495 elsif ($attr =~ /^HIDD?EN?$/) { }
1850 645 elsif ($attr =~ /^SUB/) { }
483 162 elsif ($attr =~ /^METHOD/ and $attribute ne 'method') { }
82 80 elsif ($attr =~ /^MERGE/) { }
3 77 elsif ($attr =~ /^MOD(?:IFY)?_(ARRAY|CODE|HASH|SCALAR)_ATTR/) { }
1 76 elsif ($attr =~ /^FETCH_(ARRAY|CODE|HASH|SCALAR)_ATTR/) { }
0 76 elsif ($attr eq 'SCALARIFY') { }
75 1 elsif (my($ify) = grep({$_ eq $attr;} 'STRINGIFY', 'NUMERIFY', 'BOOLIFY', 'ARRAYIFY', 'HASHIFY', 'GLOBIFY', 'CODIFY')) { }
0 1 elsif (not $attr =~ /^PUB(LIC)?$/) { }
374 8 33 $arg && $arg =~ /BOTTOM/i ? :
378 11 18 $arg && $arg =~ /BOTTOM/i ? :
405 1419 431 if ($arg)
411 479 4 if ($arg)
419 1 81 if ($arg)
460 0 2600 if (@unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_CODE_ATTRIBUTES'))
479 0 71 if (exists $GBL{'attr'}{'MOD'}{'HASH'})
481 0 0 unless @attrs
489 46 36 if ($attr =~ /^(?:Field|[GS]et|Acc|Com|Mut|St(?:an)?d|LV(alue)?|All|R(?:ead)?O(?:nly)?|Arg|Type|Hand)/i) { }
0 36 elsif ($attr =~ /^Weak$/i) { }
0 36 elsif ($attr =~ /^Deep$/i) { }
2 34 elsif ($attr =~ /^Def(?:ault)?[(]($BALANCED_PARENS)[)]$/i) { }
0 34 elsif ($attr =~ /^Seq(?:uence)?(?:From)?[(]($BALANCED_PARENS)[)]$/i) { }
1 33 elsif ($attr =~ /^Name\s*[(]\s*'?([^)'\s]+)'?\s*[)]/i) { }
33 0 elsif ($attr =~ /^InitArgs?$/i) { }
0 0 elsif ($attr ne 'shared') { }
492 38 8 if ($attr =~ /^(?:Field|Type)/i) { }
516 0 2 if ($@)
536 0 0 if ($@)
565 0 71 if (@unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_HASH_ATTRIBUTES'))
582 2 193 if (exists $GBL{'attr'}{'MOD'}{'ARRAY'})
584 0 2 unless @attrs
592 326 26 if ($attr =~ /^(?:Field|[GS]et|Acc|Com|Mut|St(?:an)?d|LV(alue)?|All|R(?:ead)?O(?:nly)?|Arg|Type|Hand)/i) { }
1 25 elsif ($attr =~ /^Weak$/i) { }
1 24 elsif ($attr =~ /^Deep$/i) { }
17 7 elsif ($attr =~ /^Def(?:ault)?[(]($BALANCED_PARENS)[)]$/i) { }
3 4 elsif ($attr =~ /^Seq(?:uence)?(?:From)?[(]($BALANCED_PARENS)[)]$/i) { }
4 0 elsif ($attr =~ /^Name\s*[(]\s*'?([^)'\s]+)'?\s*[)]/i) { }
0 0 elsif ($attr ne 'shared') { }
595 221 105 if ($attr =~ /^(?:Field|Type)/i) { }
619 0 17 if ($@)
639 0 3 if ($@)
662 0 195 if (@unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_ARRAY_ATTRIBUTES'))
679 0 439 if $GBL{'term'}
688 0 439 $sharing ? :
692 218 221 if ($id)
693 76 142 unless (exists $reuse->{$tree})
694 0 76 $sharing ? :
696 0 218 if $sharing
698 76 142 if (not defined $r_tree->[$thread_id]) { }
699 0 76 $sharing ? :
702 0 102 if ($_ == $id)
713 85 136 if (exists $reuse->{$tree})
714 0 85 if $sharing
715 85 0 if (defined $reuse->{$tree}[$thread_id])
717 83 2 if (defined $id)
725 61 77 if (exists $g_id->{$tree})
726 0 61 if $sharing
729 0 77 if ($sharing)
748 0 2594 if ($@) { }
0 2594 elsif ($name eq '__ANON__') { }
768 167 173 unless delete $GBL{'init'}
782 183 236 if (not exists $id_subs->{$class}) { }
165 90 elsif ($id_subs->{$class}{'code'} == \&Object::InsideOut::_ID and not exists $$obj_ids{$id_subs->{$class}{'pkg'}}) { }
802 24 179 if (%to_propagate) { }
809 0 179 unless (defined $pkg)
815 0 179 if (exists $id_subs->{$pkg})
829 122 81 unless exists $GBL{'asi'}{$pkg}
833 662 169 if (exists $id_subs->{$class}) { }
835 0 662 if ($id_subs->{$class}{'code'} != $id_subs->{$pkg}{'code'} or $id_subs->{$class}{'pkg'} ne $id_subs->{$pkg}{'pkg'})
839 0 0 if ($id_subs->{$class}{'code'} == \&Object::InsideOut::_ID or $id_subs->{$pkg}{'code'} == \&Object::InsideOut::_ID)
850 0 0 $id_subs->{$class}{'code'} == \&Object::InsideOut::_ID ? :
0 0 $id_subs->{$pkg}{'code'} == \&Object::InsideOut::_ID ? :
0 0 $id_subs->{$class}{'code'} == \&Object::InsideOut::_ID && $id_subs->{$pkg}{'code'} == \&Object::InsideOut::_ID ? :
865 487 0 unless (defined $seen{$add})
871 92 77 if (exists $GBL{'asi'}{$class})
873 169 0 unless (defined $seen{$add})
883 0 173 if ($GBL{'share'}{'ok'})
889 0 0 if (grep /^$flag_class$/, @$tree)
892 0 0 if (exists $sh_cl->{$class}) { }
894 0 0 if ($sh_cl->{$class}{'share'} != $sh_cl->{$flag_class}{'share'})
898 0 0 $sh_cl->{$flag_class}{'share'} ? :
918 0 0 if ($sh_cl->{$flag_class}{'share'})
920 0 0 if (exists $id_subs->{$flag_class} and $id_subs->{$flag_class}{'code'} == \&Object::InsideOut::_ID)
924 0 0 unless (exists $obj_ids->{$share_tree})
928 0 0 unless (exists $reuse->{$share_tree})
932 0 0 unless (defined $r_tree->[0])
940 0 0 if (not exists $GBL{'share'}{'obj'} and $] < 5.008009 || $threads::shared::VERSION lt '1.15')
951 15 158 if (%{$GBL{'sub'}{'auto'};})
956 12 161 if (exists $GBL{'sub'}{'ol'})
962 54 119 if (my $meta_m = delete $GBL{'meta'}{'method'})
970 71 102 if (my $meta_s = delete $GBL{'meta'}{'subr'})
978 58 115 if (my $merge = delete $GBL{'merge'})
993 6 167 if (my $restr = delete $GBL{'perm'}{'restr'})
1010 73 100 if (my $priv = delete $GBL{'perm'}{'priv'})
1027 26 147 if (my $hide = delete $GBL{'perm'}{'hide'})
1040 8 165 if (exists $GBL{'sub'}{'cumu'}{'new'})
1045 5 168 if (exists $GBL{'sub'}{'chain'}{'new'})
1054 12 416 $pkg->isa('Storable') ? :
1061 1022 1299 unless (*{$full_sym;}{'CODE'})
1064 0 1928 if (*{$class_sym;}{'CODE'} and *{$class_sym;}{'CODE'} != \&{$sym;})
1073 182 840 if ($sym eq 'new') { }
200 640 elsif ($sym eq 'clone' or $sym eq 'dump') { }
0 640 elsif ($sym eq 'create_field') { }
40 600 elsif ($sym =~ /^STORABLE_/ or $sym eq 'AUTOLOAD') { }
226 374 elsif ($sym =~ /herit/ or $sym eq 'set') { }
1104 122 55 unless $new
1120 2 368 if (ref $fld eq 'ARRAY' and $do_ho)
1123 2 3 if ($class eq $ho)
1126 2 0 (caller())[1] =~ /Dynamic/ ? :
1137 0 368 if (is_sharing($pkg) and not threads::shared::is_shared($fld))
1145 0 0 if ($contents)
1146 0 0 if (ref $fld eq 'HASH') { }
1155 368 0 if ($attr)
1160 231 137 unless (grep {$_ == $fld;} @{$$fld_refs{$pkg};})
1172 0 95 if (ref $hash ne 'HASH')
1180 58 124 if ref $spec ne 'HASH'
1182 32 228 if ($opt =~ qr/^DEF(?:AULTs?)?$/i) { }
62 166 elsif ($opt =~ qr/^FIELD$/i) { }
4 162 elsif ($opt =~ qr/^(?:MAND|REQ)/i) { }
3 159 elsif ($opt =~ qr/^PRE/i) { }
15 144 elsif ($opt =~ qr/^RE(?:GEXp?)?$/i) { }
14 130 elsif ($opt =~ qr/^TYPE$/i) { }
1193 15 0 ref $spec->{$opt} eq 'Regexp' ? :
1212 0 0 $sharing ? :
1215 0 0 if (exists $sh_cl->{$class}) { }
1216 0 0 if ($sh_cl->{$class}{'share'} != $sharing)
1218 0 0 if ($sharing) { }
1240 0 0 if ($sharing and $Config::Config{'useithreads'} and $threads::shared::threads_shared and $threads::shared::VERSION ge '0.95')
1253 1520 0 unless $GBL{'share'}{'ok'}
1265 0 0 if $_[0] ne 'Object::InsideOut'
1269 0 0 if ($threads::threads) { }
1271 0 0 if $GBL{'tid'} == $tid
1275 0 0 if exists $GBL{'pids'}{$$}
1281 0 0 if ($Config::Config{'useithreads'} and $threads::shared::threads_shared and not $GBL{'share'}{'ok'})
1291 0 0 if (exists $GBL{'share'}{'obj'})
1329 0 0 if ($do_repl)
1336 0 0 if ($id_sub == \&Object::InsideOut::_ID) { }
1343 0 0 if (not $g_id->[$tid] or $g_id->[$tid] < $$obj)
1352 0 0 if $] >= 5.008003
1359 0 0 if $] >= 5.008003
1365 0 0 if (ref $fld eq 'HASH') { }
1367 0 0 if ($weak->{'weak'}{$fld})
1373 0 0 if ($weak->{$fld})
1385 0 0 if (@repl)
1408 0 233 if (is_sharing($class)) { }
0 233 elsif ($threads::threads) { }
1412 0 0 if (exists $GBL{'share'}{'obj'})
1415 0 0 if (exists $sh_obj->{$class}) { }
1442 56 89 unless (exists $spec->{' '})
1449 145 395 if $key eq ' '
1450 337 58 ref $val eq 'HASH' ? :
1460 62 418 $regex ? :
1461 43 437 if (defined $found{$key}) { }
1462 20 23 if (defined $value)
1468 451 29 if (defined $arg)
1474 22 145 if (exists $args->{$class})
1476 0 22 if (ref $args ne 'HASH')
1493 199 315 if (ref $spec_item ne 'HASH')
1497 147 52 unless (defined $found{$key})
1504 3 312 if (my $pre = $spec_item->{'_P'})
1505 0 3 if (ref $pre ne 'CODE')
1517 0 3 if ($@ or @errs)
1526 171 144 unless (defined $found{$key})
1528 2 169 if ($spec_item->{'_M'})
1534 79 90 if (exists $spec_item->{'_D'})
1535 38 41 if (ref $spec_item->{'_D'} eq 'CODE') { }
1543 90 79 unless (defined $found{$key})
1550 32 191 if (my $type = $spec_item->{'_T'})
1554 16 16 if (ref $type) { }
2 14 elsif ($type =~ /^scalar$/i) { }
4 10 elsif ($type =~ /^num(?:ber|eric)?$/i) { }
6 4 elsif ($type =~ /^(?:list|array)\s*(?:\(\s*(\S+)\s*\))*$/i) { }
1555 0 16 if (ref $type ne 'CODE')
1567 2 14 if ($@ or @errs)
1573 8 6 unless ($ok)
1581 1 1 if (ref $found{$key})
1590 2 2 unless (&Scalar::Util::looks_like_number($found{$key}))
1599 0 6 if (defined $1)
1602 3 3 if (ref $found{$key} ne 'ARRAY')
1610 4 0 if ($type =~ /^(array|hash|scalar)(?:_?ref)?\s*(?:\(\s*(\S+)\s*\))*$/i)
1612 2 2 if (defined $2)
1616 0 4 unless (is_it($found{$key}, $type))
1624 2 17 if (defined $subtype)
1625 0 2 if ($subtype =~ /^scalar$/i) { }
1 1 elsif ($subtype =~ /^num(?:ber|eric)?$/i) { }
1628 0 0 if (ref $elem)
1637 0 3 unless (&Scalar::Util::looks_like_number($elem))
1645 0 2 unless (is_it($elem, $subtype))
1657 196 14 if (my $field = $spec_item->{'_F'})
1674 0 219 if ($class eq 'Object::InsideOut')
1686 109 110 $have_cache ? :
1690 112 107 if ($cache{'pre'} or not $have_cache)
1692 4 108 if (%{$preinit_subs;})
1694 4 4 if (my $preinit = $preinit_subs->{$pkg})
1697 2 2 if ($have_cache) { }
1698 2 0 unless --$cache{'pre'}
1710 132 87 if ($cache{'def'} or not $have_cache)
1712 28 195 if (my $def = $GBL{'fld'}{'def'}{$pkg})
1715 22 6 if ($have_cache) { }
1716 22 0 unless --$cache{'def'}
1729 145 182 if (my $spec = $g_args->{$pkg})
1737 53 259 if (my $init = $init_subs->{$pkg}) { }
81 178 elsif (exists $pkg_args{$pkg}) { }
1 177 elsif (exists $all_args->{$pkg}) { }
1739 49 4 if (exists $pkg_args{$pkg}) { }
1747 2 79 if (%{$pkg_args{$pkg};})
1756 0 1 if (ref $all_args->{$pkg} ne 'HASH')
1768 195 4 if ($used_args)
1772 19 153 if (exists $pkgs{$key}) { }
1774 2 29 unless (exists $used_args->{$key}{$subkey})
1779 3 150 unless (exists $used_args->{$key})
1787 106 88 unless ($have_cache)
1800 3 2 $is_deep ? :
1804 0 5 unless ($class)
1823 0 7 if $am_sharing
1824 0 7 if (ref $fld eq 'HASH') { }
1828 0 0 $am_sharing ? :
0 0 !$fdeep ? :
1829 0 0 if ($weak->{$fld})
1833 0 5 $am_sharing ? :
2 5 !$fdeep ? :
1837 1 6 if ($weak->{$fld})
1844 0 7 if (my $replicate = $repl->{$pkg})
1861 1 18 if ($class eq 'Object::InsideOut')
1878 0 340 unless (&Scalar::Util::blessed($self))
1883 0 340 unless ($self->isa('Object::InsideOut'))
1889 0 340 unless (defined $field)
1895 0 340 if (not $fld_type or $fld_type ne 'ARRAY' and $fld_type ne 'HASH')
1903 0 340 if ($weak and not ref $data)
1910 0 340 if ($GBL{'share'}{'ok'} and threads::shared::is_shared($field)) { }
1912 0 0 if ($fld_type eq 'HASH') { }
1920 71 269 if ($fld_type eq 'HASH') { }
1928 3 337 if ($weak)
1929 0 3 if ($fld_type eq 'HASH') { }
1944 65 228 unless $$self
1953 0 0 if ($Config::Config{'useithreads'} and $threads::shared::threads_shared and not $GBL{'term'})
1961 0 0 exists $GBL{'share'}{'obj'} ? :
1964 0 0 if ($@)
1971 0 228 if ($is_sharing) { }
0 228 elsif ($threads::threads) { }
1975 0 0 if ($GBL{'term'}) { }
0 0 elsif (exists $GBL{'share'}{'obj'}) { }
1976 0 0 if $tid
1980 0 0 unless (exists $$so_cl{$$self})
1994 0 0 if $_ != $tid
0 0 if (@{$$so_cl{$$self};} = grep({$_ == 0 or 'threads'->object($_) if $_ != $tid;} @{$$so_cl{$$self};}))
2006 0 0 unless (exists $$obj_cl{$$self})
2021 6 342 if (my $destroy = $dest_subs->{$pkg})
2034 0 683 if $is_sharing
2035 91 592 if (ref $fld eq 'HASH') { }
2036 0 91 if ($is_sharing)
2038 0 0 unless defined $$fld{$$self}
2042 0 592 if ($is_sharing)
2044 0 0 unless defined $$fld[$$self]
2052 228 0 if $] >= 5.008003
2055 218 10 if ($GBL{'sub'}{'id'}{$class}{'code'} == \&Object::InsideOut::_ID)
2063 3 225 if ($dest_err)
2069 59 169 if ($err or $@)
2071 1 58 if not $err
2081 0 128 unless defined $thing
2084 0 128 if (@_ == 1)
2086 0 0 wantarray ? :
2089 0 128 unless defined $method
2101 0 874 unless defined $thing
2104 0 874 if (@_ == 1)
2109 0 874 unless defined $type
2127 5 0 if (@_ == 4) { }
2139 1 4 if ($@)
2146 0 4 if (is_sharing(ref $obj))
2150 4 0 if ($] >= 5.008003)
2167 0 218 if (exists $dump->{$name} and $fld != $dump->{$name}{'fld'})
2172 21 197 if (my($old_name) = grep({$dump->{$_}{'fld'} == $fld;} keys %$dump))
2174 7 14 if ($old_src eq 'Name') { }
11 3 elsif ($src eq 'Name') { }
0 3 elsif ($old_src eq 'InitArgs') { }
2 1 elsif ($src eq 'InitArgs') { }
0 1 elsif ($old_src eq 'Get') { }
1 0 elsif ($src eq 'Get') { }
0 0 elsif ($old_src eq 'Set') { }
2217 11 7 unless *{$classname . '::' . $symname;}{'CODE'}
2233 5 3 unless $class_delegated_to =~ /::/
2239 2 1 $class_delegated_to->can('meta') ? :
2255 13 27 if not /^(?:new|clone|meta|set)$/ and $methods->{$_}{'class'} eq $class_delegated_to
2270 119 249 if ($name) { }
133 116 elsif (not $decl) { }
5 111 elsif ($kind =~ /^Type/i and $decl =~ /^(?:sub|\\&)/) { }
2 109 elsif ($kind =~ /^Hand/i) { }
12 97 elsif (not $kind =~ /^Field/i) { }
2274 133 0 if $kind =~ /^Field/i
2285 0 12 unless ($decl =~ s/'?name'?\s*=>/'${kind}'=>/i)
2296 93 142 unless ($decl =~ /^{/)
2305 0 235 if ($@ or @errs)
2319 197 38 unless ($kind =~ /^arg$/i)
2325 16 268 if ($key_uc =~ /ALL/) { }
4 264 elsif ($key_uc =~ /R(?:EAD)?O(?:NLY)?/) { }
2 262 elsif ($key_uc =~ /ARG/) { }
2327 16 0 if ($key_uc eq 'ALL')
2332 3 1 if ($key_uc =~ /^R(?:EAD)?O(?:NLY)?$/)
2341 1 283 if ($key_uc =~ /^ST.*D.*R(?:EAD)?O(?:NLY)?/) { }
19 264 elsif ($key_uc =~ /^ST.*D/) { }
144 120 elsif ($key_uc =~ /^ACC|^COM|^MUT|[GS]ET/) { }
0 120 elsif ($key_uc eq 'COPY' or $key_uc eq 'CLONE') { }
0 120 elsif ($key_uc eq 'DEEP') { }
0 120 elsif ($key_uc =~ /^WEAK/) { }
62 58 elsif ($key_uc eq 'TYPE') { }
3 55 elsif ($key_uc eq 'NAME') { }
28 27 elsif ($key_uc =~ /^RET(?:URN)?$/) { }
4 23 elsif ($key_uc =~ /^PERM|^PRIV|^REST/) { }
14 9 elsif ($key_uc =~ /^LV/) { }
0 9 elsif ($key_uc =~ /^PRE/) { }
7 2 elsif ($key_uc =~ /^HAND/) { }
0 2 elsif ($key_uc ne 'IGNORE') { }
2351 133 11 if ($key_uc =~ /ACC|COM|MUT|GET/)
2355 90 54 if ($key_uc =~ /ACC|COM|MUT|SET/)
2361 0 0 if (uc $val eq 'DEEP')
2366 0 0 if ($val)
2373 0 0 if ($val)
2381 0 62 if (not $val or ref $val and ref $val ne 'CODE')
2388 52 10 unless (ref $val)
2391 6 46 if ($val =~ /^(.*)\((.+)\)$/i)
2394 3 3 if ($subtype =~ /^num(?:ber|eric)?$/i) { }
0 3 elsif ($subtype =~ /^scalar$/i) { }
2400 15 37 if ($val =~ /^num(?:ber|eric)?$/i) { }
1 36 elsif ($val =~ /^scalar$/i) { }
11 25 elsif ($val =~ /^(?:list|array)$/i) { }
4 21 elsif (uc $val eq 'HASH') { }
9 12 elsif ($val =~ /^(hash|array|scalar)_?ref$/i) { }
2411 6 46 if ($subtype)
2433 4 0 if ($key_uc =~ /^PERM/) { }
0 0 elsif ($key_uc =~ /^PRIV/) { }
0 0 elsif ($key_uc =~ /^REST/) { }
2434 1 3 if ($val =~ /^PRIV/i) { }
3 0 elsif ($val =~ /^REST/i) { }
2447 0 0 if ($val)
2451 0 0 if ($val)
2458 9 5 if ($val and not &Scalar::Util::looks_like_number($val)) { }
2469 0 0 if (ref $pre ne 'CODE')
2489 0 222 if (not defined $val or $val eq '')
2498 60 175 if ($arg or $kind =~ /^ARG$/i)
2500 28 32 unless (exists $g_args->{$pkg})
2504 38 22 unless ($arg)
2508 60 0 unless (defined $name)
2513 14 46 if ($fld_type->{$field_ref} and not exists $g_args->{$arg}{'_T'})
2518 23 37 if (my $g_def = delete $GBL{'fld'}{'def'}{$pkg})
2521 8 92 if ($field_ref == $item->[0]) { }
2527 22 1 if (@defs)
2538 63 172 if ($name) { }
138 34 elsif ($get) { }
3 31 elsif ($set) { }
27 4 elsif (not $return || $lvalue || $delegate) { }
2539 0 63 if (add_dump_field('Name', $name, $field_ref, $dump) eq 'conflict')
2546 39 0 unless ($get or $set or $return or $lvalue)
2550 0 138 if (add_dump_field('Get', $get, $field_ref, $dump) eq 'conflict')
2557 0 3 if (add_dump_field('Set', $set, $field_ref, $dump) eq 'conflict')
2568 0 169 if ($return || $lvalue and not $set)
2577 280 58 if ($method)
2580 0 280 if (*{$pkg . '::' . $method;}{'CODE'})
2590 150 19 if (not defined $return or $return eq 'NEW') { }
10 9 elsif ($return eq 'OLD' or $return =~ /^PREV(?:IOUS)?$/ or $return eq 'PRIOR') { }
9 0 elsif ($return eq 'SELF' or $return =~ /^OBJ(?:ECT)?$/) { }
2605 63 106 if ($fld_type->{$field_ref})
2607 52 11 unless (ref $type)
2608 5 47 if ($type =~ /^(.*)\((.+)\)$/i)
2612 9 43 if ($type =~ /^(HASH|ARRAY|SCALAR)_ref$/)
2618 0 5 if ($subtype and ($type ne 'list' and $type ne 'ARRAY'))
2627 118 51 if ($set)
2628 88 30 $get && $get eq $set ? :
2629 14 104 if ($lvalue)
2634 9 109 if (ref $type) { }
48 61 elsif ($type ne 'NONE') { }
2639 5 113 if ($subtype)
2643 74 88 if ($get and !$set || $get ne $set)
2647 58 280 unless $meth
2649 2 278 if (defined $private) { }
5 273 elsif (defined $restricted) { }
2663 14 155 if ($lvalue) { }
104 51 elsif ($set) { }
2677 16 88 ref $field_ref eq 'HASH' ? :
2680 77 27 if ($get and $get eq $set) { }
2696 0 104 if ($pre)
2721 0 104 if (is_sharing($pkg))
2726 6 98 if ($return eq 'OLD')
2731 0 104 is_sharing($pkg) ? :
2734 1 103 if ($weak)
2739 5 99 if ($return eq 'SELF') { }
6 93 elsif ($return eq 'OLD') { }
4 89 elsif ($use_want) { }
1 88 elsif ($weak) { }
2742 4 2 if ($use_want)
2755 158 11 unless ref $type
2758 74 88 if ($get and !$set || $get ne $set)
2759 11 63 ref $field_ref eq 'HASH' ? :
2769 7 162 if ($delegate)
2776 9 3 unless (defined $to)
2780 0 12 if (*{$pkg . '::' . $from;}{'CODE'})
2786 0 12 ref $field_ref eq 'HASH' ? :
2805 29 46 if (@_ < 2)
12 48 if @_ == 1
21 39 if (@_ > 1)
14 26 if (@_ > 1)
5 44 if (@_ > 1)
8 45 if (@_ > 1)
6 36 if (@_ > 1)
4 30 if (@_ > 1)
4 18 if (@_ > 1)
2807 0 169 if ($@ or @errs)
2826 74 130 if (defined $readonly)
2835 2 202 if (defined $private) { }
3 199 elsif (defined $restricted) { }
2866 9 109 if (ref $type) { }
61 48 elsif ($type eq 'NONE') { }
1 47 elsif ($type eq 'scalar') { }
14 33 elsif ($type eq 'numeric') { }
9 24 elsif ($type eq 'list') { }
3 21 elsif ($type eq 'HASH' and not $is_ref) { }
2888 1 60 if ($weak)
2968 5 113 if ($subtype)
2969 0 5 if ($subtype =~ /^scalar$/i) { }
3 2 elsif ($subtype =~ /^num(?:ber|eric)?$/i) { }
3022 78 206 if (ref $arg eq 'HASH') { }
0 206 elsif (ref $arg) { }
0 206 elsif (not @_) { }
3053 4 33 unless (grep {$_ eq $caller;} @$exempt or $caller->isa($pkg) or $pkg->isa($caller))
3072 4 4285 unless (grep {$_ eq $caller;} @$exempt)
3099 59 0 if (not exists $INC{$file})
3104 0 59 if ($@) { }
0 59 elsif (not defined $rc) { }
0 59 elsif (not $rc) { }
3252 47 34 if ($_[0] eq 'Object::InsideOut')