PhpNativeAccessorDecliner   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 13
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 5
eloc 8
dl 0
loc 13
ccs 7
cts 7
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A shouldDecline() 0 9 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