From 8bbbdbe74576639224d7019d90d80f4f2a4b5737 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Thu, 18 Jun 2020 21:30:53 +0200 Subject: [PATCH] Fix --- .../Component/Config/Resource/ReflectionClassResource.php | 2 +- .../DependencyInjection/Compiler/FactoryReturnTypePass.php | 2 +- .../HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php | 2 +- src/Symfony/Component/OptionsResolver/OptionsResolver.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Symfony/Component/Config/Resource/ReflectionClassResource.php b/src/Symfony/Component/Config/Resource/ReflectionClassResource.php index 294da3e10c..79b21fbf4c 100644 --- a/src/Symfony/Component/Config/Resource/ReflectionClassResource.php +++ b/src/Symfony/Component/Config/Resource/ReflectionClassResource.php @@ -197,7 +197,7 @@ class ReflectionClassResource implements SelfCheckingResourceInterface, \Seriali } else { $t = \PHP_VERSION_ID >= 70000 ? $p->getType() : ''; $stack[] = $p->isOptional(); - $stack[] = $t instanceof \ReflectionNamedType ? $t->getName() : (string) $t; + $stack[] = $t instanceof \ReflectionNamedType ? ((string) $t->allowsNull()).$t->getName() : (string) $t; $stack[] = $p->isPassedByReference(); $stack[] = \PHP_VERSION_ID >= 50600 ? $p->isVariadic() : ''; $stack[] = $p->getName(); diff --git a/src/Symfony/Component/DependencyInjection/Compiler/FactoryReturnTypePass.php b/src/Symfony/Component/DependencyInjection/Compiler/FactoryReturnTypePass.php index d688fb59fd..6b1277e26a 100644 --- a/src/Symfony/Component/DependencyInjection/Compiler/FactoryReturnTypePass.php +++ b/src/Symfony/Component/DependencyInjection/Compiler/FactoryReturnTypePass.php @@ -93,7 +93,7 @@ class FactoryReturnTypePass implements CompilerPassInterface $returnType = $m->getReturnType(); if (null !== $returnType && !$returnType->isBuiltin()) { - $returnType = $returnType instanceof \ReflectionNamedType ? $returnType->getName() : $returnType->__toString(); + $returnType = $returnType instanceof \ReflectionNamedType ? $returnType->getName() : (string) $returnType; if (null !== $class) { $declaringClass = $m->getDeclaringClass()->getName(); if ('self' === strtolower($returnType)) { diff --git a/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php b/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php index 2548a2a083..14e7ca3d11 100644 --- a/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php +++ b/src/Symfony/Component/HttpKernel/ControllerMetadata/ArgumentMetadataFactory.php @@ -105,7 +105,7 @@ final class ArgumentMetadataFactory implements ArgumentMetadataFactoryInterface if (!$type = $parameter->getType()) { return null; } - $name = $type instanceof \ReflectionNamedType ? $type->getName() : $type->__toString(); + $name = $type instanceof \ReflectionNamedType ? $type->getName() : (string) $type; if ('array' === $name && !$type->isBuiltin()) { // Special case for HHVM with variadics return null; diff --git a/src/Symfony/Component/OptionsResolver/OptionsResolver.php b/src/Symfony/Component/OptionsResolver/OptionsResolver.php index ffb101e512..7354caf8a6 100644 --- a/src/Symfony/Component/OptionsResolver/OptionsResolver.php +++ b/src/Symfony/Component/OptionsResolver/OptionsResolver.php @@ -1076,7 +1076,7 @@ class OptionsResolver implements Options return ($class = $parameter->getClass()) ? $class->name : null; } - if (!($type = $parameter->getType()) instanceof \ReflectionNamedType || $type->isBuiltin()) { + if (!($type = $parameter->getType()) || $type->isBuiltin()) { return null; }