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:----rf/v1zpxmP9EiiKuk+n1qaxr+ngUxjkACSBO+0x2HryC7IGltt6KDKt++AsX4HvVG+aIXEXYF39UOutoZxnugCAb2ocsCoqewtIhKEx8N/Cl0Tyt9u7jcYsB4GSZevGwty7m9mj7Uf+SJgbXre9cyXyGlhO9pmXklrBQQ/+C7TI9U2TBiTO+wuw6uqASQqWyZM5R1BagtIgC7m4YY8dQjaQP2S6DNq1wA2WaZObHUjlkRXPPLYDMTR11CjmjVMY9eL2oyhCDlXxtqxWU7Nk9QCGis0IfGJktzWx3AXU3jBId/jkxJpTzes9PiEsY1vU19GEbq+0TexGtFodFjJgJ3oP3VHSsd+53rS7HRFYIGDWhO8VrQ/vSEjlisRylCV6+8DozoDifwi35GthuT7/01W6uxuSkQ00FglsV5PkONsv1W0VmWNrVrXmPU9BHhQt4y0jAblD0RquRjAQCK8xtLFLIO6h+GOc6uznWOw13U/cQeK6i8SidR9qbX6M6wDgMN1yb8PkHvVSgPM8A+NTYuvPik1m5//DlZVE/h8PBnP8fzHr+DFATkQ2FIjJ6SBUIiO2jKDpY46pD6hotLh3/g35P85ejP5hBnSyjZhchzsBA6VbGM2PdRpnK+5zG3AEwxzNDtj9ZbwboPPuZEun1jd/y6oeFLypQpeJKXKZ83RM=----ATTACHMENT:----NzA1NjEwOTE5Mjg2ODE0MiA3NTM0OTUyMDM2MjgxNjM2IDQ5MDYzMDI3NzQwMjE3MjA=