Open
Description
Bug Report
Q | A |
---|---|
Version(s) | 4.7.1 (all versions affected since 4.5.0) |
Summary
Laminas\Code\Generator\PromotedParameterGenerator#fromParameterGeneratorWithVisibility are losing nullable flag of such parameter.
Current behavior
class Test {
public function __construct(
protected ?int $value
) {
}
}
$parameterReflection = new ParameterReflection([Test::class, '__construct'], 0);
$parameterGenerator = PromotedParameterGenerator::fromReflection($parameterReflection);
echo $parameterGenerator->generate();
will echo protected int $value
, nullable flag is lost.
How to reproduce
Use snippet above.
Expected behavior
Code above should echo protected ?int $value
.
Additional information
public static function fromParameterGeneratorWithVisibility(ParameterGenerator $generator, string $visibility): self
{
$name = $generator->getName();
$type = $generator->getType(); // <----- this would return "bare" type, without modifiers
Unfortunately, there are no way to get nullable flag from TypeGenerator at all for now. Unsurprisingly it get lost on the way.