From 0b88bb583ce4bcc9787e1dc2e734eecbc35e673e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois-Xavier=20de=20Guillebon?= Date: Tue, 4 Oct 2022 18:18:18 +0200 Subject: [PATCH] Fix return type for union type with intersection --- src/Proxy/ProxyGenerator.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/Proxy/ProxyGenerator.php b/src/Proxy/ProxyGenerator.php index 416886926..10819f61a 100644 --- a/src/Proxy/ProxyGenerator.php +++ b/src/Proxy/ProxyGenerator.php @@ -1224,6 +1224,10 @@ private function formatType( if ($type instanceof ReflectionUnionType) { return implode('|', array_map( function (ReflectionType $unionedType) use ($method, $parameter) { + if ($unionedType instanceof ReflectionIntersectionType) { + return '(' . $this->formatType($unionedType, $method, $parameter) . ')'; + } + return $this->formatType($unionedType, $method, $parameter); }, $type->getTypes()