From 034bb3e640580f8b5ee8be527590f484e65a67ec Mon Sep 17 00:00:00 2001 From: Marcel Date: Tue, 26 Jan 2021 10:28:26 +0100 Subject: [PATCH] Fix #922, ProxyGenerator missing assert An assertion is missing from `ProxyGenerator::getParameterType()` after retrieving an `ReflectionFunctionAbstract` instance (per `ReflectionParameter::getDeclaringFunction()`). It is argument to `ProxyGenerator::formatType()`, which expects an `ReflectionMethod` object. Since that is one of the two possible concrete implementations of said abstract class, an `assert()` call should by added beforehand to eliminate any possible confusion and to avoid IDE complaints. --- lib/Doctrine/Common/Proxy/ProxyGenerator.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/Doctrine/Common/Proxy/ProxyGenerator.php b/lib/Doctrine/Common/Proxy/ProxyGenerator.php index b5add544d..e38a78435 100644 --- a/lib/Doctrine/Common/Proxy/ProxyGenerator.php +++ b/lib/Doctrine/Common/Proxy/ProxyGenerator.php @@ -1041,7 +1041,11 @@ private function getParameterType(ReflectionParameter $parameter) return null; } - return $this->formatType($parameter->getType(), $parameter->getDeclaringFunction(), $parameter); + $declaringFunction = $parameter->getDeclaringFunction(); + + assert($declaringFunction instanceof ReflectionMethod); + + return $this->formatType($parameter->getType(), $declaringFunction, $parameter); } /**