PhpNativeAccessorDecliner::shouldDecline()   A
last analyzed

Complexity

Conditions 5
Paths 5

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 5

Importance

Changes 0
Metric Value
eloc 6
dl 0
loc 9
ccs 7
cts 7
cp 1
rs 9.6111
c 0
b 0
f 0
cc 5
nc 5
nop 3
crap 5
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Jerowork\ClassDependenciesParser\PhpParser\NodeVisitor\InlineFqnParser\Decliner;
6
7
use Jerowork\ClassDependenciesParser\ClassDependencies;
8
use PhpParser\Node;
9
use PhpParser\Node\Expr\ClassConstFetch;
10
use PhpParser\Node\Expr\New_;
11
use PhpParser\Node\Expr\StaticCall;
12
use PhpParser\Node\Name;
13
use PhpParser\Node\Stmt\ClassMethod;
14
15
final class PhpNativeAccessorDecliner implements InlineFqnDecliner
16
{
17
    private const ACCESSORS = ['self', 'static', 'parent'];
18
19 4
    public function shouldDecline(Node $parent, Name $name, ClassDependencies $classDependencies): bool
20
    {
21
        // Ignore PHP native accessors
22 4
        return (
23 4
            $parent instanceof New_
24 4
            || $parent instanceof StaticCall
25 4
            || $parent instanceof ClassMethod
26 4
            || $parent instanceof ClassConstFetch
27 4
        ) && in_array((string) $name, self::ACCESSORS, true);
28
    }
29
}
30