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:----PgfHzA2aujSzIIMmT9YYRi8OR+voT9OdEJeKKLG1AHr1d9ndM+M1w1472lT1Ixw06IgOUf/AjxezISRYQzR14Tl+hwBdV0LsVpHY7y92o/SdH+oOpJkSpkqE1trUGoaCAstkEiPalbkRWwYDSKfT6wWT+JXniwP1uriAE8O70E9hffFyG/yxwtkbmsg/JIyf17ynncSCs5HrC8iJWV37DiM0SvPBBRkADgkYhV5ICAylaSIFdyQk/O9Abx3tvHgaP0RvJ1/fQEUWluzjBHNGOQXI95L6Ud9OVfpYBRrEVYAQ6DgzeDNYbW5gyqwVPMhC8f8GyGVNk8LDgdJWoGn3SZdT4LLr+/ciVKKJ037sEG9mNVtEzVrrfR9BlP5qBlo/KDK63J87gn8KsUf86tBQkhmRHUFkkdxggXgZIg/GskusFxpGrcp4a8vLloeNla898NSfdjUR8Hapb7nAnXr0nffqyVNz/iskswP8Ty4kIuzAjmI3GoN0Ef9cRwEyCnl1gLjq11RKcs3CHd3XbEGQLWwfu3HLMQ4RGoRAtfvvJVpMDl3AoiQIBmJE9nMsPm/oYTylD/efv6FnMh3V69JJOsSNuvVEzzUwNBjA6VIEV9BilkFb+tc9/gRcbbRfWws/aj7KIF6E7t+BAeJEJyelA7lW/gnZG1okLfGIirL/E74=----ATTACHMENT:----MjY5NTMwMTQyMTUyMjkxMyA3MzAyNzI0OTE4MjgzMDgwIDEyMjExMjM4Mjg2MzU0OTM=