From dda18df6de4822f6f0dbe90f538bab9e294cc139 Mon Sep 17 00:00:00 2001 From: Nicolas Grekas Date: Tue, 4 Oct 2016 14:01:35 +0200 Subject: [PATCH] [VarDumper] Fix ReflectionNamedType->getName() detection --- .../Component/VarDumper/Caster/ReflectionCaster.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Component/VarDumper/Caster/ReflectionCaster.php b/src/Symfony/Component/VarDumper/Caster/ReflectionCaster.php index b7c7a8abbb..e772c246b2 100644 --- a/src/Symfony/Component/VarDumper/Caster/ReflectionCaster.php +++ b/src/Symfony/Component/VarDumper/Caster/ReflectionCaster.php @@ -115,7 +115,8 @@ class ReflectionCaster )); if (isset($a[$prefix.'returnType'])) { - $a[$prefix.'returnType'] = method_exists('ReflectionType', 'getName') ? $a[$prefix.'returnType']->getName() : $a[$prefix.'returnType']->__toString(); + $v = $a[$prefix.'returnType']; + $a[$prefix.'returnType'] = $v instanceof \ReflectionNamedType ? $v->getName() : $v->__toString(); } if (isset($a[$prefix.'this'])) { $a[$prefix.'this'] = new CutStub($a[$prefix.'this']); @@ -168,9 +169,9 @@ class ReflectionCaster )); try { - if (method_exists($c, 'hasType')) { - if ($c->hasType()) { - $a[$prefix.'typeHint'] = method_exists('ReflectionType', 'getName') ? $c->getType()->getName() : $c->getType()->__toString(); + if (method_exists($c, 'getType')) { + if ($v = $c->getType()) { + $a[$prefix.'typeHint'] = $v instanceof \ReflectionNamedType ? $v->getName() : $v->__toString(); } } else { $v = explode(' ', $c->__toString(), 6); @@ -196,7 +197,7 @@ class ReflectionCaster unset($a[$prefix.'allowsNull']); } } catch (\ReflectionException $e) { - if (isset($a[$prefix.'typeHint']) && $c->allowsNull() && !method_exists('ReflectionType', 'getName')) { + if (isset($a[$prefix.'typeHint']) && $c->allowsNull() && !class_exists('ReflectionNamedType', false)) { $a[$prefix.'default'] = null; unset($a[$prefix.'allowsNull']); }