betterNodeFinder = $betterNodeFinder; $this->nodeNameResolver = $nodeNameResolver; } public function isLetNeededInClass(\PhpParser\Node\Stmt\Class_ $class) : bool { foreach ($class->getMethods() as $classMethod) { // new test if ($this->nodeNameResolver->isName($classMethod, 'test*')) { continue; } $hasBeConstructedThrough = (bool) $this->betterNodeFinder->find((array) $classMethod->stmts, function (\PhpParser\Node $node) : ?bool { if (!$node instanceof \PhpParser\Node\Expr\MethodCall) { return null; } return $this->nodeNameResolver->isName($node->name, 'beConstructedThrough'); }); if ($hasBeConstructedThrough) { continue; } return \true; } return \false; } }