Branch Coverage

blib/lib/Parse/Method/Signatures.pm
Criterion Covered Total %
branch 154 168 91.6


line true false branch
101 0 147 unless $ppi->significant
110 180 10 $args->{'variable_name'} ? :
190 16 unless exists $args->{'unpacking'}
111 51 155 $args->{'named'} ? :
113 16 190 if exists $args->{'unpacking'}
161 145 2 unless $doc->find('Token::Regexp')
164 1 1 unless defined $node->{'operator'}
184 135 12 unless $doc->find('Token::Magic')
185 10 7 unless my($op) = $node->content =~ /^\$([,?:!)])$/
196 141 6 unless $doc->find('Token::Label')
197 0 8 unless my($word, $ws) = $node->content =~ /^(.*?)(\s+)?:$/s
200 7 1 if defined $ws
209 144 3 unless $doc->find('Token::Number::Hex')
211 3 0 unless $next->isa('PPI::Token::Word') and $next->content =~ /^[0-9a-f]+$/i
223 1 146 if ($ppi->class eq 'PPI::Token::Word' and exists $LEXTABLE{"$ppi"})
243 119 1 unless &blessed($self)
252 13 95 if ($param and $self->ppi->content eq ':')
255 1 12 if NamedParam()->check($param)
257 1 11 unless $param->required
259 1 10 if $param->has_default_value
262 3 7 if UnpackedParam()->check($param) or $param->sigil ne '$'
270 95 7 if ($param)
273 7 88 $param->sigil ne '$' ? :
281 1 41 unless $param
285 26 15 unless ($is_named)
286 1 25 if ($param->required and $opt_pos_param)
290 4 21 if ($greedy)
299 4 32 $param->sigil ne '$' ? :
336 2 230 unless (&blessed($self))
337 2 0 unless &blessed($self)
350 2 0 unless $self->_param_opt_or_req($self->_param_labeled($param) || $self->_param_named($param) || $self->_param_variable($param) || $self->_unpacked_param($param)) or $err_ctx == $self->ppi and return
363 0 2 wantarray ? :
204 2 !$class_meth ? :
373 10 209 unless $param
375 115 94 if ($self->ppi->class eq 'PPI::Token::Operator')
377 9 106 if ($c eq '?') { }
7 99 elsif ($c eq '!') { }
403 215 13 unless $self->ppi->isa('PPI::Token::LexSymbol') and $self->ppi->lex eq 'WHERE'
412 1 12 unless $ppi->class eq 'PPI::Token::Structure' and $ppi->content eq '{'
419 1 11 unless $ppi->finish
431 206 9 unless $self->ppi->isa('PPI::Token::LexSymbol') and $self->ppi->lex eq 'TRAIT'
436 1 8 unless $self->ppi->isa('PPI::Token::Word')
449 216 14 unless $self->ppi->content eq ':' and $self->ppi->next_token->isa('PPI::Token::Word')
454 0 14 if $self->ppi->content =~ /[^-\w]/
462 1 9 unless $self->_unpacked_param($param) or $self->_param_variable($param)
482 171 45 unless $self->ppi->content eq ':' and $self->ppi->next_token->isa('PPI::Token::Symbol')
493 3 42 if $param->{'sigil'} ne '$'
501 201 29 unless my $tc = $self->tc
505 1 28 $self->has_type_constraint_callback ? :
0 29 $self->has_from_namespace ? :
524 184 25 unless $self->ppi->content eq '='
529 0 25 unless $param->{'default_value'} = $self->_consume_if_isa('PPI::Token::QuoteLike', 'PPI::Token::Number', 'PPI::Token::Quote', 'PPI::Token::Symbol', 'PPI::Token::Magic', 'PPI::Token::ArrayIndex') || $self->bracketed('[') || $self->bracketed('{')
550 25 197 unless $class eq 'PPI::Token::Symbol' or $class eq 'PPI::Token::Cast'
553 187 10 if ($class eq 'PPI::Token::Symbol') { }
554 1 186 unless $ppi->symbol_type eq $ppi->raw_type
571 0 20 unless my $p = $self->param
574 1 19 if $p->sigil eq '$' and PositionalParam()->check($p)
578 8 11 if $self->ppi->content eq '}'
593 0 26 unless my $param = $self->param
596 2 24 if NamedParam()->check($param)
599 1 23 unless $param->required
604 8 15 if $self->ppi->content eq ']'
618 201 0 unless $ident or $required and $self->error($self->ppi)
635 1 14 if $self->ppi->content eq ']'
642 4 2 if $op->content eq '=>'
655 2 12 if $class eq 'Token::Number' or $class =~ /^Token::Quote::(?:Single|Double|Literal|Interpolate)/
665 52 9 unless $self->ppi->content eq '|'
682 1 3 unless $last->isa('PPI::Token::Word')
695 91 40 unless $ppi->content eq $type
702 2 38 unless $ppi->finish
707 36 2 if ($code) { }
711 1 29 if $self->ppi != $ppi->finish
733 4 15 if $sub =~ /(?:\b|_)tc(?:\b|_)/
734 1 14 if $sub =~ /(?:\b|_)unpacked(?:\b|_)/
736 5 9 if $sub =~ /(?:\b|_)param(?:\b|_)/
737 9 0 if $sub =~ /(?:\b|_)signature(?:\b|_)/
746 7 23 unless $msg
750 3 27 $no_in ? :
755 0 30 if ($DEBUG) { }
765 9 256 if ($self->ppi->content ne $need)
782 66 204 if $ppi->class eq 'PPI::Token::Word'
791 23 51 if $self->ppi->isa($_)
805 833 219 if $ppi->significant
808 22 811 if ($ppi->class eq 'PPI::Token::Word' and exists $LEXTABLE{"$ppi"})