From 68f4efc50215a5aa64c3fac9fbac99d0650430f8 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 14 Oct 2018 18:31:07 +0800 Subject: [PATCH] Add TypeAnalyzerTrait --- src/Rector/AbstractRector.php | 2 ++ src/Rector/TypeAnalyzerTrait.php | 41 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 src/Rector/TypeAnalyzerTrait.php diff --git a/src/Rector/AbstractRector.php b/src/Rector/AbstractRector.php index ac2ed88284e..52f16eb5e9c 100644 --- a/src/Rector/AbstractRector.php +++ b/src/Rector/AbstractRector.php @@ -12,6 +12,8 @@ use Rector\Contract\Rector\PhpRectorInterface; abstract class AbstractRector extends NodeVisitorAbstract implements PhpRectorInterface { + use TypeAnalyzerTrait; + /** * @var bool */ diff --git a/src/Rector/TypeAnalyzerTrait.php b/src/Rector/TypeAnalyzerTrait.php new file mode 100644 index 00000000000..a3b546e04cb --- /dev/null +++ b/src/Rector/TypeAnalyzerTrait.php @@ -0,0 +1,41 @@ +nodeTypeResolver = $nodeTypeResolver; + } + + public function isType(Node $node, string $type): bool + { + $nodeTypes = $this->nodeTypeResolver->resolve($node); + return in_array($type, $nodeTypes, true); + } + + /** + * @param string[] $types + */ + public function isTypes(Node $node, array $types): bool + { + $nodeTypes = $this->nodeTypeResolver->resolve($node); + return (bool) array_intersect($types, $nodeTypes); + } +}