betterNodeFinder = $betterNodeFinder; $this->nodeNameResolver = $nodeNameResolver; $this->propertyFetchAnalyzer = $propertyFetchAnalyzer; } public function resolveConstructorAssign(Class_ $class, Property $property) : ?Node { $constructClassMethod = $class->getMethod(MethodName::CONSTRUCT); if (!$constructClassMethod instanceof ClassMethod) { return null; } /** @var string $propertyName */ $propertyName = $this->nodeNameResolver->getName($property); return $this->betterNodeFinder->findFirst((array) $constructClassMethod->stmts, function (Node $node) use($propertyName) : bool { if (!$node instanceof Assign) { return \false; } return $this->propertyFetchAnalyzer->isLocalPropertyFetchName($node->var, $propertyName); }); } }