From 7d6edbe71db7d50cc473b4f2a13d059a6593a711 Mon Sep 17 00:00:00 2001 From: Alessandro Lai Date: Wed, 24 Jan 2024 18:19:52 +0100 Subject: [PATCH] Fallback to null when argument default value is an object --- spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php | 4 +++- src/Prophecy/Doubler/Generator/ClassCodeGenerator.php | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php b/spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php index dad9423b1..46c68cfde 100644 --- a/spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php +++ b/spec/Prophecy/Doubler/Generator/ClassCodeGeneratorSpec.php @@ -459,9 +459,11 @@ function it_generates_correct_code_if_argument_default_value_is_an_object( $expected =<<<'PHP' namespace { class CustomClass extends \ClassWithArgument implements \Prophecy\Doubler\Generator\MirroredInterface { -public function foo(\DateTimeInterface $arg = NULL) { + +public function foo(\DateTimeInterface $arg = NULL) { } + } } PHP; diff --git a/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php b/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php index 2d30a3f2e..489117b5f 100644 --- a/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php +++ b/src/Prophecy/Doubler/Generator/ClassCodeGenerator.php @@ -110,7 +110,12 @@ private function generateArguments(array $arguments): array $php .= '$'.$argument->getName(); if ($argument->isOptional() && !$argument->isVariadic()) { - $php .= ' = '.var_export($argument->getDefault(), true); + $default = $argument->getDefault(); + if (is_object($argument->getDefault())) { + $default = null; + } + + $php .= ' = '.var_export($default, true); } return $php;