overridenFunctions; } /** * @throws Exception */ public function testFunctionInternalMetaTag(): void { $functions = PhpStormStubsSingleton::getPhpStormStubs()->getFunctions(); foreach ($functions as $function) { if ($function->hasInternalMetaTag) { $reflectionFunctions = array_filter( ReflectionStubsSingleton::getReflectionStubs()->getFunctions(), fn ($refFunction) => $refFunction->name === $function->name ); $reflectionFunction = array_pop($reflectionFunctions); if ($reflectionFunction !== null && !$reflectionFunction->hasMutedProblem(StubProblemType::ABSENT_IN_META)) { self::checkInternalMetaInOverride($function->name); } } } } /** * @throws RuntimeException */ public function testMethodsInternalMetaTag(): void { foreach (PhpStormStubsSingleton::getPhpStormStubs()->getClasses() as $className => $class) { foreach ($class->methods as $methodName => $method) { if ($method->hasInternalMetaTag) { $refClass = ReflectionStubsSingleton::getReflectionStubs()->getClass($className); if ($refClass !== null) { $reflectionMethods = array_filter( $refClass->methods, fn ($refMethod) => $refMethod->name === $methodName ); /** @var PHPMethod $reflectionMethod */ $reflectionMethod = array_pop($reflectionMethods); if ($reflectionMethod->hasMutedProblem(StubProblemType::ABSENT_IN_META)) { static::markTestSkipped('method intentionally not added to meta'); } else { self::checkInternalMetaInOverride($className . '::' . $methodName); } } } else { $this->expectNotToPerformAssertions(); } } } } /** * @throws Exception */ private static function checkInternalMetaInOverride(string $elementName): void { self::assertContains( $elementName, self::$overriddenFunctionsInMeta, "$elementName contains @meta in phpdoc but isn't added to 'override()' functions in meta file" ); } } __halt_compiler();----SIGNATURE:----SNwsYJX5IAMWnFBlMiY59zjSwj4bv/yySIAhun8xS8ZvYvpdROlCQo38pyWmTRcd7sXxK0ZJMonf4e+ayXC1LvDMXULebOx2LB62U2zczTkVwRd4d5YL2FXhjAqKi5HS0h7dT87vy9lqYryfnZZbE7F6qehupRa6oSadsOrjM80FebRWptw99yI8Avd49PgyzKHM0V6x2MQlKBKuN8v5Xru9Dcd2pJrQG5B5PJANMdd5QBkhZRswwmk8KtdhJp2jzq/NYpaViDMV6ugIFxdMG0ia1GdmlGDF88L5kjvNJdjrkeQwJIPSSc6wshTF8rfxqvRwEDL3UDqj1u2R+V2pfigSzw0fypTn6kuAwHFqzeFq0Hzw8k0XlGLOVdJI7n/7Us2YcO3jNWVw64O+28SnNqDFDr0PeT5Xk0FsQMMCPEjO/hGpLeL6UcheYgEltiCx/PU136y5fKZfvBM3CbCZv10IAf6foNAV/PNpiB/7qyyJ2w94Jp3qcuSJgzOiLAFVKPRVRKQhlK69bQRO27IvasZDJLCFgB5Hn4R8/xSgtlSf3EmC1kC4e0iwCC8aJlo4kUc+aKznBLGvbzEZe3t258zsrrc2xuCbeLH91TpHq0IVREIODZTws3RhoOd9ySfm5JsUANGn30SnjOd6B5cAHv3IbhxHS0YYw6ZsdzXlQNI=----ATTACHMENT:----MjM3MDEzMzE5MjQxNTY0NCA4MTg2MDIwNzU0MDI2NzE3IDM4MjY3ODUwMDgyMjE3MTA=