nodeNameResolver = $nodeNameResolver; $this->classChildAnalyzer = $classChildAnalyzer; } public function isImplementsBuiltInInterface(\PHPStan\Reflection\ClassReflection $classReflection, \PhpParser\Node\Stmt\ClassMethod $classMethod) : bool { if (!$classReflection->isClass()) { return \false; } $methodName = $this->nodeNameResolver->getName($classMethod); if ($this->classChildAnalyzer->hasChildClassMethod($classReflection, $methodName)) { return \false; } foreach ($classReflection->getInterfaces() as $interfaceReflection) { if (!$interfaceReflection->isBuiltIn()) { continue; } if (!$interfaceReflection->hasMethod($methodName)) { continue; } return \true; } return \false; } }