Condition Coverage

blib/lib/Perl/Critic/Policy/Community/DeprecatedFeatures.pm
Criterion Covered Total %
condition 159 193 82.3


and 3 conditions

line !l l&&!r l&&r condition
58 5 0 8 $elem->type eq "use" and defined $elem->module
5 5 3 $elem->type eq "use" and defined $elem->module and $elem->module eq "UNIVERSAL"
60 1 1 1 @args && $args[0]->isa('PPI::Structure::List')
65 0 10 3 defined $elem->module and $elem->module =~ /^::/
77 43 0 4 $elem eq ":" and $next = $elem->next_sibling
43 3 1 $elem eq ":" and $next = $elem->next_sibling and $next->isa("PPI::Token::Operator")
3 0 1 $elem eq ":" and $next = $elem->next_sibling and $next->isa("PPI::Token::Operator") and $next eq "="
40 0 6 $elem eq "?" and $parent = $elem->parent
40 0 6 $elem eq "?" and $parent = $elem->parent and $parent->isa("PPI::Statement")
34 6 0 $elem eq "<<" and !($next = $elem->snext_sibling) || $next->isa('PPI::Token::Operator') && $next ne '~' && $next ne '!' && $next ne '+' && $next ne '-' || $next->isa('PPI::Token::Structure') && $next ne '(' && $next ne '{' && $next ne '['
82 12 2 3 $next->isa("PPI::Token::Operator") and $next eq "?"
87 9 7 1 $_->isa("PPI::Token::Operator") and $_ eq ":"
3 2 1 $next and &none(sub {
98 147 0 5 $elem eq "UNIVERSAL" and $next = $elem->snext_sibling
147 3 2 $elem eq "UNIVERSAL" and $next = $elem->snext_sibling and $next->isa("PPI::Token::Operator")
3 0 2 $elem eq "UNIVERSAL" and $next = $elem->snext_sibling and $next->isa("PPI::Token::Operator") and $next eq "->"
3 0 2 $elem eq "UNIVERSAL" and $next = $elem->snext_sibling and $next->isa("PPI::Token::Operator") and $next eq "->" and $next = $next->snext_sibling
0 0 2 $elem eq "UNIVERSAL" and $next = $elem->snext_sibling and $next->isa("PPI::Token::Operator") and $next eq "->" and $next = $next->snext_sibling and $next->isa("PPI::Token::Word")
0 1 1 $elem eq "UNIVERSAL" and $next = $elem->snext_sibling and $next->isa("PPI::Token::Operator") and $next eq "->" and $next = $next->snext_sibling and $next->isa("PPI::Token::Word") and $next eq "import"
148 1 2 $elem eq 'for' || $elem eq 'foreach' and not $elem->sprevious_sibling
143 0 6 $elem eq "do" and $next = $elem->snext_sibling
115 18 10 ($prev = $elem->sprevious_sibling) && $prev->isa('PPI::Token::Operator')
109 0 1 1 $next and $next->isa("PPI::Token::QuoteLike::Words")
114 0 1 3 $next = $next->snext_sibling and $next->isa("PPI::Structure::List")
0 1 3 $next->isa('PPI::Token::Word') && is_function_call($next) || $next->isa('PPI::Token::Symbol') && ($next->raw_type eq '&' || $next->raw_type eq '$') and ($next = $next->snext_sibling and $next->isa("PPI::Structure::List"))
122 83 0 8 $elem eq "defined" and $next = $elem->snext_sibling
62 0 21 exists $autoderef_functions{$elem} and $next = $elem->snext_sibling
55 0 7 $elem eq "chdir" and $next = $elem->snext_sibling
139 0 2 6 $next and $next->isa("PPI::Token::Symbol")
2 4 2 $next and $next->isa("PPI::Token::Symbol") and $next->raw_type eq '@' || $next->raw_type eq '%'
4 0 2 $next and $next->isa("PPI::Token::Symbol") and $next->raw_type eq '@' || $next->raw_type eq '%' and $next->raw_type eq $next->symbol_type
147 1 15 5 $next and $next->isa("PPI::Statement::Expression")
148 1 7 13 $next and $next->isa("PPI::Token::Symbol")
8 2 11 $next and $next->isa("PPI::Token::Symbol") and $next->raw_type eq "\$"
150 31 0 4 $next->isa("PPI::Token::Structure") and $next eq ";"
21 8 2 $next->isa("PPI::Token::Operator") and $next eq ","
153 2 24 3 $next and $next->isa("PPI::Token::Cast")
26 1 2 $next and $next->isa("PPI::Token::Cast") and $next eq '@*' || $next eq '%*'
162 1 4 2 $next and $next->isa("PPI::Statement::Expression")
163 1 3 3 $next and $next->isa('PPI::Token::Quote') && !length($next->string) || $next->isa('PPI::Token::Word') && $next eq 'undef'
171 3 4 1 $elem->isa("PPI::Token::Regexp::Match") and ($elem->get_delimiters)[0] eq "??"
7 1 0 $elem->isa("PPI::Token::Regexp::Match") and ($elem->get_delimiters)[0] eq "??" and not $elem =~ /^m/

or 2 conditions

line l !l condition
126 36 0 $elem->document->find('PPI::Statement::Include') || []
127 96 0 $_->module // ""

or 3 conditions

line l !l&&r !l&&!r condition
44 75 0 0 $features{$feature} // "$feature is deprecated or removed from recent versions of Perl."
60 2 0 1 not @args && $args[0]->isa('PPI::Structure::List') or $args[0]->schildren
77 1 0 3 !($next = $elem->snext_sibling) || $next->isa('PPI::Token::Operator') && $next ne '~' && $next ne '!' && $next ne '+' && $next ne '-' || $next->isa('PPI::Token::Structure') && $next ne '(' && $next ne '{' && $next ne '['
82 3 12 5 not $next or $next->isa("PPI::Token::Operator") and $next eq "?"
98 3 0 148 $elem eq 'for' || $elem eq 'foreach'
133 6 4 not +($prev = $elem->sprevious_sibling) && $prev->isa('PPI::Token::Operator') or $prev ne "->"
105 0 1 5 not $next or $next->isa("PPI::Structure::List")
1 1 4 not $next or $next->isa("PPI::Structure::List") or $next->isa("PPI::Token::QuoteLike::Words")
114 1 5 0 $next->isa('PPI::Token::Word') && is_function_call($next) || $next->isa('PPI::Token::Symbol') && ($next->raw_type eq '&' || $next->raw_type eq '$')
122 44 3 92 exists $posix_deprecated{$elem} or $elem eq "tmpnam"
47 1 91 exists $posix_deprecated{$elem} or $elem eq "tmpnam" or $elem eq "POSIX::tmpnam"
129 12 12 12 not @args or &any(sub {
139 1 1 4 $next->raw_type eq '@' || $next->raw_type eq '%'
150 2 4 31 not $next or $next->isa("PPI::Token::Structure") and $next eq ";"
4 5 26 not $next or $next->isa("PPI::Token::Structure") and $next eq ";" or $next->isa("PPI::Token::Operator") and $next eq ","
153 1 2 0 $next eq '@*' || $next eq '%*'
163 2 1 3 $next->isa('PPI::Token::Quote') && !length($next->string) || $next->isa('PPI::Token::Word') && $next eq 'undef'
183 4 2 6 $elem->isa("PPI::Token::QuoteLike::Regexp") or $elem->isa("PPI::Token::QuoteLike::Backtick")
6 2 4 $elem->isa("PPI::Token::QuoteLike::Regexp") or $elem->isa("PPI::Token::QuoteLike::Backtick") or $elem->isa("PPI::Token::QuoteLike::Command")
187 2 3 9 $elem->isa("PPI::Token::Quote::Double") or $elem->isa("PPI::Token::Quote::Interpolate")
200 8 4 9 $elem->isa("PPI::Token::Regexp") or $elem->isa("PPI::Token::QuoteLike::Regexp")