[VarDumper] Fix dumping type hints for non-existing parent classes
This commit is contained in:
parent
44efeaaa27
commit
812bf5c45d
@ -171,12 +171,11 @@ class ReflectionCaster
|
||||
if ($c->hasType()) {
|
||||
$a[$prefix.'typeHint'] = $c->getType()->__toString();
|
||||
}
|
||||
} elseif ($c->isArray()) {
|
||||
$a[$prefix.'typeHint'] = 'array';
|
||||
} elseif (method_exists($c, 'isCallable') && $c->isCallable()) {
|
||||
$a[$prefix.'typeHint'] = 'callable';
|
||||
} elseif ($v = $c->getClass()) {
|
||||
$a[$prefix.'typeHint'] = $v->name;
|
||||
} else {
|
||||
$v = explode(' ', $c->__toString(), 6);
|
||||
if (isset($v[5]) && 0 === strspn($v[4], '.&$')) {
|
||||
$a[$prefix.'typeHint'] = $v[4];
|
||||
}
|
||||
}
|
||||
} catch (\ReflectionException $e) {
|
||||
if (preg_match('/^Class ([^ ]++) does not exist$/', $e->getMessage(), $m)) {
|
||||
|
@ -12,6 +12,7 @@
|
||||
namespace Symfony\Component\VarDumper\Tests\Caster;
|
||||
|
||||
use Symfony\Component\VarDumper\Test\VarDumperTestCase;
|
||||
use Symfony\Component\VarDumper\Tests\Fixtures\NotLoadableClass;
|
||||
|
||||
/**
|
||||
* @author Nicolas Grekas <p@tchwork.com>
|
||||
@ -47,7 +48,7 @@ ReflectionClass {
|
||||
"export" => ReflectionMethod {
|
||||
+name: "export"
|
||||
+class: "ReflectionClass"
|
||||
parameters: array:2 [
|
||||
%A parameters: array:2 [
|
||||
"$%s" => ReflectionParameter {
|
||||
%A position: 0
|
||||
%A }
|
||||
@ -70,7 +71,7 @@ EOTXT
|
||||
ReflectionParameter {
|
||||
+name: "arg1"
|
||||
position: 0
|
||||
typeHint: "Symfony\Component\VarDumper\Tests\Caster\NotExistingClass"
|
||||
typeHint: "Symfony\Component\VarDumper\Tests\Fixtures\NotLoadableClass"
|
||||
default: null
|
||||
}
|
||||
EOTXT
|
||||
@ -121,6 +122,6 @@ EOTXT
|
||||
}
|
||||
}
|
||||
|
||||
function reflectionParameterFixture(NotExistingClass $arg1 = null, $arg2)
|
||||
function reflectionParameterFixture(NotLoadableClass $arg1 = null, $arg2)
|
||||
{
|
||||
}
|
||||
|
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
namespace Symfony\Component\VarDumper\Tests\Fixtures;
|
||||
|
||||
class NotLoadableClass extends NotLoadableClass
|
||||
{
|
||||
}
|
Reference in New Issue
Block a user