Skip to content

Commit 66daff3

Browse files
committed
Fix null passed in string parameter
1 parent 166bd86 commit 66daff3

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/PhpDocReader/PhpDocReader.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ private function readPropertyType(ReflectionProperty $property, bool $allowPrimi
123123
}
124124

125125
// Remove the leading \ (FQN shouldn't contain it)
126-
$type = ltrim($type, '\\');
126+
$type = is_string($type) ? ltrim($type, '\\') : null;
127127

128128
return $type;
129129
}
@@ -216,7 +216,7 @@ private function readParameterClass(ReflectionParameter $parameter, bool $allowP
216216
}
217217

218218
// Remove the leading \ (FQN shouldn't contain it)
219-
$type = ltrim($type, '\\');
219+
$type = is_string($type) ? ltrim($type, '\\') : null;
220220

221221
return $type;
222222
}

tests/NonExistentClassTest.php

+16
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,14 @@ public function testProperties(): void
2424
$parser->getPropertyClass($class->getProperty('prop'));
2525
}
2626

27+
public function testPropertiesAndIgnoreErrors(): void
28+
{
29+
$parser = new PhpDocReader(true);
30+
$class = new \ReflectionClass(Class1::class);
31+
32+
$this->assertNull($parser->getPropertyClass($class->getProperty('prop')));
33+
}
34+
2735
public function testMethodParameters(): void
2836
{
2937
$parser = new PhpDocReader;
@@ -34,4 +42,12 @@ public function testMethodParameters(): void
3442

3543
$parser->getParameterClass($parameter);
3644
}
45+
46+
public function testMethodParametersAndIgnoreErrors(): void
47+
{
48+
$parser = new PhpDocReader(true);
49+
$parameter = new ReflectionParameter([Class1::class, 'foo'], 'param');
50+
51+
$this->assertNull($parser->getParameterClass($parameter));
52+
}
3753
}

0 commit comments

Comments
 (0)