getCoreClasses() + PhpStormStubsSingleton::getPhpStormStubs()->getCoreInterfaces(); foreach (EntitiesFilter::getFiltered($coreClassesAndInterfaces) as $class) { foreach (EntitiesFilter::getFilteredFunctions($class, false) as $method) { foreach (EntitiesFilter::getFilteredParameters($method, null, ...$problemTypes) as $parameter) { if (!empty($parameter->availableVersionsRangeFromAttribute)) { $firstSinceVersion = max(ParserUtils::getDeclaredSinceVersion($method), min($parameter->availableVersionsRangeFromAttribute)); } else { $firstSinceVersion = ParserUtils::getDeclaredSinceVersion($method); } if ($filterFunction($class, $method, $firstSinceVersion) === true) { yield "method $class->name::$method->name($parameter->name)" => [$class, $method, $parameter]; } } } } } private static function getFilterFunctionForLanguageLevel(float $languageVersion): callable { return fn (PHPClass|PHPInterface $class, PHPMethod $method, ?float $firstSinceVersion) => !$method->isFinal && !$class->isFinal && $firstSinceVersion !== null && $firstSinceVersion < $languageVersion; } }