-
-
Notifications
You must be signed in to change notification settings - Fork 737
Closed
rectorphp/rector-src
#7782Labels
Description
Bug Report
| Subject | Details |
|---|---|
| Rector version | e.g. v2.3.0 (invoke vendor/bin/rector --version) |
After upgrading from 2.2.14 to 2.3.0 the following error occurs:
[ERROR] Could not process "swagger-php/src/Attributes/Attachable.php" file, due to:
"System error: "This parameter does not have a default value available"
Run Rector with "--debug" option and post the report here: https://github.com/rectorphp/rector/issues/new". On line: 172
Minimal PHP Code Causing Issue
The file in question is quite simple and there are more like it that pass processing without issue:
<?php declare(strict_types=1);
/**
* @license Apache 2.0
*/
namespace OpenApi\Attributes;
use OpenApi\Annotations as OA;
#[\Attribute(\Attribute::TARGET_ALL | \Attribute::IS_REPEATABLE)]
class Attachable extends OA\Attachable
{
public function __construct(array $properties = [])
{
parent::__construct($properties);
}
}
Removing the parent::__construct($properties); line fixes the issue...
Expected Behaviour
The file should be processed as before.
Debug output
[ERROR] Could not process "/Users/martin/mano/swagger-php/src/Attributes/Attachable.php" file, due to:
"System error: "This parameter does not have a default value available"
Stack trace:
#0
phar://vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/Reflection/ReflectionParam
eter.php(257): PHPStan\BetterReflection\Reflection\ReflectionParameter->getCompiledDefaultValue()
#1
phar://vendor/phpstan/phpstan/phpstan.phar/vendor/ondrejmirtes/better-reflection/src/Reflection/Adapter/Reflect
ionParameter.php(178): PHPStan\BetterReflection\Reflection\ReflectionParameter->getDefaultValue()
#2 vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveParentDelegatingConstructorRector.php(218):
PHPStan\BetterReflection\Reflection\Adapter\ReflectionParameter->getDefaultValue()
#3 vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveParentDelegatingConstructorRector.php(201):
Rector\DeadCode\Rector\ClassMethod\RemoveParentDelegatingConstructorRector->isDifferentDefaultValue(Object(Php
Parser\Node\Expr\Array_), Object(PHPStan\Reflection\Php\PhpMethodReflection), 0)
#4 vendor/rector/rector/rules/DeadCode/Rector/ClassMethod/RemoveParentDelegatingConstructorRector.php(109):
Rector\DeadCode\Rector\ClassMethod\RemoveParentDelegatingConstructorRector->areConstructorAndParentParameterTy
pesMatching(Object(PhpParser\Node\Stmt\ClassMethod), Object(PHPStan\Reflection\Php\PhpMethodReflection))
#5 vendor/rector/rector/src/Rector/AbstractRector.php(112):
Rector\DeadCode\Rector\ClassMethod\RemoveParentDelegatingConstructorRector->refactor(Object(PhpParser\Node\Stm
t\ClassMethod))
#6 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(165):
Rector\Rector\AbstractRector->enterNode(Object(PhpParser\Node\Stmt\ClassMethod))
#7 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray(Array)
#8 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(197):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Class_)
)
#9 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray(Array)
#10 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(197):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode(Object(PhpParser\Node\Stmt\Namespa
ce_))
#11 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(78):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray(Array)
#12 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(197):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseNode(Object(Rector\PhpParser\Node\FileN
ode))
#13 vendor/rector/rector/src/PhpParser/NodeTraverser/AbstractImmutableNodeTraverser.php(60):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverseArray(Array)
#14 vendor/rector/rector/src/PhpParser/NodeTraverser/RectorNodeTraverser.php(53):
Rector\PhpParser\NodeTraverser\AbstractImmutableNodeTraverser->traverse(Array)
#15 vendor/rector/rector/src/Application/FileProcessor.php(96):
Rector\PhpParser\NodeTraverser\RectorNodeTraverser->traverse(Array)
#16 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(178):
Rector\Application\FileProcessor->processFile(Object(Rector\ValueObject\Application\File),
Object(Rector\ValueObject\Configuration))
#17 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(152):
Rector\Application\ApplicationFileProcessor->processFile(Object(Rector\ValueObject\Application\File),
Object(Rector\ValueObject\Configuration))
#18 vendor/rector/rector/src/Application/ApplicationFileProcessor.php(128):
Rector\Application\ApplicationFileProcessor->processFiles(Array, Object(Rector\ValueObject\Configuration),
Object(Closure), Object(Closure))
#19 vendor/rector/rector/src/Console/Command/ProcessCommand.php(182):
Rector\Application\ApplicationFileProcessor->run(Object(Rector\ValueObject\Configuration),
Object(RectorPrefix202512\Symfony\Component\Console\Input\ArgvInput))
#20 vendor/rector/rector/vendor/symfony/console/Command/Command.php(289):
Rector\Console\Command\ProcessCommand->execute(Object(RectorPrefix202512\Symfony\Component\Console\Input\ArgvI
nput), Object(RectorPrefix202512\Symfony\Component\Console\Output\ConsoleOutput))
#21 vendor/rector/rector/vendor/symfony/console/Application.php(899):
RectorPrefix202512\Symfony\Component\Console\Command\Command->run(Object(RectorPrefix202512\Symfony\Component\
Console\Input\ArgvInput), Object(RectorPrefix202512\Symfony\Component\Console\Output\ConsoleOutput))
#22 vendor/rector/rector/vendor/symfony/console/Application.php(279):
RectorPrefix202512\Symfony\Component\Console\Application->doRunCommand(Object(Rector\Console\Command\ProcessCo
mmand), Object(RectorPrefix202512\Symfony\Component\Console\Input\ArgvInput),
Object(RectorPrefix202512\Symfony\Component\Console\Output\ConsoleOutput))
#23 vendor/rector/rector/src/Console/ConsoleApplication.php(60):
RectorPrefix202512\Symfony\Component\Console\Application->doRun(Object(RectorPrefix202512\Symfony\Component\Co
nsole\Input\ArgvInput), Object(RectorPrefix202512\Symfony\Component\Console\Output\ConsoleOutput))
#24 vendor/rector/rector/vendor/symfony/console/Application.php(162):
Rector\Console\ConsoleApplication->doRun(Object(RectorPrefix202512\Symfony\Component\Console\Input\ArgvInput),
Object(RectorPrefix202512\Symfony\Component\Console\Output\ConsoleOutput))
#25 vendor/rector/rector/bin/rector.php(130): RectorPrefix202512\Symfony\Component\Console\Application->run()
#26 vendor/rector/rector/bin/rector(5): require_once('/Users/martin/m...')
#27 bin/rector(119): include('/Users/martin/m...')
#28 {main}". On line: 172