| blib/lib/Role.pm | |||
|---|---|---|---|
| Criterion | Covered | Total | % |
| condition | 36 | 62 | 58.0 |
| line | !l | l&&!r | l&&r | condition |
|---|---|---|---|---|
| 156 | 32 | 0 | 11 | $class->can("has") and $class->can("extends") |
| 226 | 57 | 0 | 2 | ref $arg eq "HASH" and $arg->{'role'} |
| 229 | 0 | 0 | 2 | $arg->{'alias'} and ref $arg->{'alias'} eq "HASH" |
| 261 | 43 | 12 | 0 | $APPLIED_ROLES{$class} and grep {$_ eq $role;} @{$APPLIED_ROLES{$class};} |
| 385 | 15 | 37 | 0 | not $can_handle_attributes and %$role_attrs |
| 454 | 4 | 0 | 0 | $APPLIED_ROLES{$class} and grep {$_ eq $role;} @{$APPLIED_ROLES{$class};} |
| line | l | !l | condition |
|---|---|---|---|
| 61 | 0 | 2 | $APPLIED_ROLES{$caller} ||= [] |
| 65 | 2 | 0 | $REQUIRED_METHODS{$caller} ||= [] |
| 279 | 9 | 43 | $APPLIED_ROLES{$class} ||= [] |
| 284 | 52 | 0 | $REQUIRED_METHODS{$role} || [] |
| 308 | 2 | 45 | $METHOD_ALIASES{$class}{$role} || {} |
| 382 | 6 | 46 | $ROLE_ATTRIBUTES{$role} || {} |
| 424 | 0 | 16 | $METHOD_ALIASES{$class}{$role} || {} |
| line | l | !l&&r | !l&&!r | condition |
|---|---|---|---|---|
| 121 | 2 | 0 | 0 | ref $class_or_obj || $class_or_obj |
| 126 | 0 | 0 | 0 | ref $self || $self |
| 295 | 18 | 1 | 6 | $class->can($method) or $role_provides{$method} |
| 315 | 2 | 54 | 0 | $aliases_for_role->{$name} || $name |
| 320 | 0 | 9 | 6 | $origin eq $class or $origin eq $role |
| 347 | 1 | 4 | 0 | $first ||= $conflicts[0] |
| 365 | 1 | 48 | 0 | $aliases_for_role->{$name} || $name |
| 426 | 0 | 16 | 0 | $reverse_aliases{$method} || $method |
| 428 | 14 | 0 | 2 | defined &{"${role}::$original_name";} or exists $reverse_aliases{$method} |
| 464 | 13 | 0 | 0 | ref $self || $self |