Branch Coverage

blib/lib/Aion.pm
Criterion Covered Total %
branch 166 304 54.6


line true false branch
30 57 0 if \&Aion::does != $pkg->can("DOES")
32 49 8 if ($attr ne '-role') { }
66 0 57 unless eval "package $pkg; use Aion::Types; 1"
75 0 0 unless eval "package $pkg; no Aion::Types; 1"
83 0 350 if $can and $can != \&$sub
84 350 0 unless $can
91 0 118 if not exists $META{$pkg}
99 0 36 unless $is =~ /^(?ro|rw|wo|no)?(?[+-])?(?\*)?(?\??)(?!?)\z/u
103 2 34 if $+{'access'} ~~ ["wo", "no"]
105 22 14 if $+{'access'} ~~ ["ro", "no"]
107 1 35 if $+{'weak'}
109 6 30 if $+{'require'} eq "+"
111 3 33 if $+{'require'} eq "-"
113 5 31 if $+{'has'}
114 2 34 if $+{'clear'}
124 26 0 if "rw" =~ /ro|rw/u
126 26 0 if "rw" =~ /wo|rw/u
133 0 4 unless $coerce
135 0 4 unless $feature->{'isa'}
137 4 0 if "rw" =~ /wo|rw/u
153 0 3 if $feature->{'opt'}{'default'}
155 1 2 if ($key eq 1) { }
1 1 elsif ($key eq 2) { }
157 0 1 unless $key = $isa && $isa->{'name'} eq 'Object' && $isa->{'args'}[0]
185 9 8 if ($default_is_code) { }
189 5 3 if $feature->{'isa'}
192 7 10 if ($feature->{'opt'}{'lazy'} // $default_is_code) { }
195 6 1 if ($default_is_code) { }
207 3 7 if ($default_is_code) { }
312 2 14 unless $module->can("with") or $module->can("new")
314 16 0 if (my $meta = $META{$module})
321 11 3 $is_with ? :
324 1 15 if $import
389 0 2 if exists $ASPECT->{$name}
397 1 6 if &Aion::Types::ClassName()->exclude($class)
405 1 5 if &Aion::Types::ClassName()->include($role)
420 1 46 ref $property ? :
423 0 48 if $pkg->can($name) and not exists $meta->{'feature'}{$name}
428 1 47 if $require
431 0 48 if $overload
452 2 4 if ($require->isa('Aion::Meta::RequiresAnyFunction')) { }
1 3 elsif ($require->isa('Aion::Meta::RequiresFeature')) { }
489 1 46 if $_->{'cleaner'}
500 4 2 if (exists $value{'x'})
0 0 if @fakekeys == 1
0 6 if (scalar keys %value)
5 2 if (exists $value{'parent'})
0 0 if @fakekeys == 1
0 7 if (scalar keys %value)
0 8 if (exists $value{'x'})
0 7 if @fakekeys == 1
0 8 if (scalar keys %value)
0 1 if (exists $value{'x'}) { }
0 7 if @fakekeys == 1
0 1 if (scalar keys %value)
2 0 if (exists $value{'x'})
0 0 if @fakekeys == 1
0 2 if (scalar keys %value)
1 1 if (exists $value{'x'}) { }
0 0 if @fakekeys == 1
0 2 if (scalar keys %value)
0 1 if (exists $value{'x'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
2 7 if (exists $value{'rw'})
8 1 if (exists $value{'ro'}) { }
1 7 if (exists $value{'wo'})
0 0 if @fakekeys == 1
0 7 if (scalar keys %value)
0 1 if (exists $value{'x'}) { }
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
2 0 if (exists $value{'x'})
0 0 if @fakekeys == 1
0 2 if (scalar keys %value)
1 0 if (exists $value{'x'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
1 1 if (exists $value{'ini'}) { }
1 1 if (exists $value{'pleroma'})
0 2 if (exists $value{'eon'}) { }
0 0 if @fakekeys == 1
0 2 if (scalar keys %value)
0 1 if (exists $value{'moon'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
0 1 exists $self->{'x'} ? :
1 0 if (exists $value{'x'})
0 1 if (exists $value{'y'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
1 0 if (exists $value{'x'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
1 0 if (exists $value{'a'}) { }
1 0 if (exists $value{'b'}) { }
0 1 if (exists $value{'op'}) { }
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
1 0 if (exists $value{'init_x'}) { }
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
0 1 if (exists $value{'x'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
0 1 if (exists $value{'x'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
0 1 if (exists $value{'accomulator'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
0 1 if (exists $value{'counter'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
1 5 if (exists $value{'x'})
5 1 if (exists $value{'y'}) { }
1 4 if (exists $value{'z'})
1 1 if @fakekeys == 1
2 2 if (scalar keys %value)
1 0 if (exists $value{'type'}) { }
0 1 if (exists $value{'name'}) { }
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
0 1 if (exists $value{'power'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
1 0 if (exists $value{'key1'})
1 0 if (exists $value{'key2'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
0 1 if (exists $value{'x'})
0 0 if @fakekeys == 1
0 1 if (scalar keys %value)
2 3 if (exists $value{'x'})
1 3 if (exists $value{'y'})
1 2 if (exists $value{'z'})
0 0 if @fakekeys == 1
0 3 if (scalar keys %value)
501 0 36 if $@
503 1 35 if (@destroyers)
523 0 2 if ${^GLOBAL_PHASE} eq "DESTRUCT"
0 1 if $@
1 1 if (exists $self->{'x'})
524 0 1 if $@