diff --git a/build/more-enum-adapter-errors.neon b/build/more-enum-adapter-errors.neon index 34f9e1f598..0533696393 100644 --- a/build/more-enum-adapter-errors.neon +++ b/build/more-enum-adapter-errors.neon @@ -26,3 +26,13 @@ parameters: rawMessage: 'Asserted type PHPStan\BetterReflection\Reflection\Adapter\ReflectionEnum for $this->getNativeReflection() with type PHPStan\BetterReflection\Reflection\Adapter\ReflectionClass can never happen.' count: 1 path: ../src/Reflection/ClassReflection.php + + - + rawMessage: 'Parameter #2 $reflection of method PHPStan\Reflection\ClassReflectionFactory::create() expects ReflectionClass, PHPStan\BetterReflection\Reflection\Adapter\ReflectionClass|PHPStan\BetterReflection\Reflection\Adapter\ReflectionEnum given.' + count: 1 + path: ../src/Reflection/BetterReflection/BetterReflectionProvider.php + + - + rawMessage: 'Parameter #2 $reflection of method PHPStan\Reflection\ClassReflectionFactory::create() expects ReflectionClass, PHPStan\BetterReflection\Reflection\Adapter\ReflectionClass|PHPStan\BetterReflection\Reflection\Adapter\ReflectionEnum given.' + count: 1 + path: ../src/Analyser/NodeScopeResolver.php diff --git a/build/phpstan.neon b/build/phpstan.neon index 274ec02501..63ca18d75a 100644 --- a/build/phpstan.neon +++ b/build/phpstan.neon @@ -77,6 +77,10 @@ parameters: - '#^Dynamic call to static method PHPUnit\\Framework\\\S+\(\)\.$#' - '#should be contravariant with parameter \$node \(PhpParser\\Node\) of method PHPStan\\Rules\\Rule::processNode\(\)$#' - '#Variable property access on PhpParser\\Node#' + - + identifier: shipmonk.deadMethod + message: '#^Unused .*?::__construct#' # likely used in DIC + reportUnmatched: false - identifier: shipmonk.deadMethod message: '#^Unused .*?Factory::create#' # likely used in DIC diff --git a/src/Analyser/NodeScopeResolver.php b/src/Analyser/NodeScopeResolver.php index 9faedfce2f..dfb9bc6908 100644 --- a/src/Analyser/NodeScopeResolver.php +++ b/src/Analyser/NodeScopeResolver.php @@ -174,7 +174,6 @@ use function array_merge; use function array_slice; use function array_values; -use function base64_decode; use function count; use function in_array; use function is_array; @@ -2621,11 +2620,11 @@ private function createAstClassReflection(Node\Stmt\ClassLike $stmt, string $cla throw new ShouldNotHappenException(); } - $enumAdapter = base64_decode('UEhQU3RhblxCZXR0ZXJSZWZsZWN0aW9uXFJlZmxlY3Rpb25cQWRhcHRlclxSZWZsZWN0aW9uRW51bQ==', true); - return $this->classReflectionFactory->create( $betterReflectionClass->getName(), - $betterReflectionClass instanceof ReflectionEnum && PHP_VERSION_ID >= 80000 ? new $enumAdapter($betterReflectionClass) : new ReflectionClass($betterReflectionClass), + $betterReflectionClass instanceof ReflectionEnum && PHP_VERSION_ID >= 80000 + ? new \PHPStan\BetterReflection\Reflection\Adapter\ReflectionEnum($betterReflectionClass) + : new ReflectionClass($betterReflectionClass), null, null, null, diff --git a/src/Reflection/BetterReflection/BetterReflectionProvider.php b/src/Reflection/BetterReflection/BetterReflectionProvider.php index c7d4bac0df..33d0ae0646 100644 --- a/src/Reflection/BetterReflection/BetterReflectionProvider.php +++ b/src/Reflection/BetterReflection/BetterReflectionProvider.php @@ -59,7 +59,6 @@ use function array_key_exists; use function array_key_first; use function array_map; -use function base64_decode; use function in_array; use function sprintf; use function strtolower; @@ -145,8 +144,7 @@ public function getClass(string $className): ClassReflection } if ($reflectionClass instanceof ReflectionEnum && PHP_VERSION_ID >= 80000) { - $enumAdapter = base64_decode('UEhQU3RhblxCZXR0ZXJSZWZsZWN0aW9uXFJlZmxlY3Rpb25cQWRhcHRlclxSZWZsZWN0aW9uRW51bQ==', true); - $adaptedClass = new $enumAdapter($reflectionClass); + $adaptedClass = new \PHPStan\BetterReflection\Reflection\Adapter\ReflectionEnum($reflectionClass); } else { $adaptedClass = new ReflectionClass($reflectionClass); }