From 432772ab9a972932193ca76a0e13fd8f13abd5e6 Mon Sep 17 00:00:00 2001 From: Ondrej Mirtes Date: Tue, 27 Sep 2022 18:12:50 +0200 Subject: [PATCH] Use readonly properties --- build/rector-downgrade.php | 5 +++++ src/Analyser/NodeScopeResolver.php | 36 +++++++++++++++--------------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/build/rector-downgrade.php b/build/rector-downgrade.php index e4f65721dc6..cd460fb679c 100644 --- a/build/rector-downgrade.php +++ b/build/rector-downgrade.php @@ -12,6 +12,7 @@ use Rector\DowngradePhp80\Rector\FunctionLike\DowngradeMixedTypeDeclarationRector; use Rector\DowngradePhp80\Rector\FunctionLike\DowngradeUnionTypeDeclarationRector; use Rector\DowngradePhp80\Rector\Property\DowngradeUnionTypeTypedPropertyRector; +use Rector\DowngradePhp81\Rector\Property\DowngradeReadonlyPropertyRector; return static function (RectorConfig $config): void { $parsePhpVersion = static function (string $version, int $defaultPatch = 0): int { @@ -27,6 +28,10 @@ $config->phpVersion($targetPhpVersionId); $config->skip(RectorCache::SKIP_PATHS); + if ($targetPhpVersionId < 80100) { + $config->rule(DowngradeReadonlyPropertyRector::class); + } + if ($targetPhpVersionId < 80000) { $config->rule(DowngradeTrailingCommasInParamUseRector::class); $config->rule(DowngradeNonCapturingCatchesRector::class); diff --git a/src/Analyser/NodeScopeResolver.php b/src/Analyser/NodeScopeResolver.php index 94a3453cc92..f8cbcb4ff0e 100644 --- a/src/Analyser/NodeScopeResolver.php +++ b/src/Analyser/NodeScopeResolver.php @@ -188,24 +188,24 @@ class NodeScopeResolver * @param array $earlyTerminatingFunctionCalls */ public function __construct( - private ReflectionProvider $reflectionProvider, - private InitializerExprTypeResolver $initializerExprTypeResolver, - private Reflector $reflector, - private ClassReflectionExtensionRegistryProvider $classReflectionExtensionRegistryProvider, - private Parser $parser, - private FileTypeMapper $fileTypeMapper, - private StubPhpDocProvider $stubPhpDocProvider, - private PhpVersion $phpVersion, - private PhpDocInheritanceResolver $phpDocInheritanceResolver, - private FileHelper $fileHelper, - private TypeSpecifier $typeSpecifier, - private DynamicThrowTypeExtensionProvider $dynamicThrowTypeExtensionProvider, - private ReadWritePropertiesExtensionProvider $readWritePropertiesExtensionProvider, - private bool $polluteScopeWithLoopInitialAssignments, - private bool $polluteScopeWithAlwaysIterableForeach, - private array $earlyTerminatingMethodCalls, - private array $earlyTerminatingFunctionCalls, - private bool $implicitThrows, + private readonly ReflectionProvider $reflectionProvider, + private readonly InitializerExprTypeResolver $initializerExprTypeResolver, + private readonly Reflector $reflector, + private readonly ClassReflectionExtensionRegistryProvider $classReflectionExtensionRegistryProvider, + private readonly Parser $parser, + private readonly FileTypeMapper $fileTypeMapper, + private readonly StubPhpDocProvider $stubPhpDocProvider, + private readonly PhpVersion $phpVersion, + private readonly PhpDocInheritanceResolver $phpDocInheritanceResolver, + private readonly FileHelper $fileHelper, + private readonly TypeSpecifier $typeSpecifier, + private readonly DynamicThrowTypeExtensionProvider $dynamicThrowTypeExtensionProvider, + private readonly ReadWritePropertiesExtensionProvider $readWritePropertiesExtensionProvider, + private readonly bool $polluteScopeWithLoopInitialAssignments, + private readonly bool $polluteScopeWithAlwaysIterableForeach, + private readonly array $earlyTerminatingMethodCalls, + private readonly array $earlyTerminatingFunctionCalls, + private readonly bool $implicitThrows, ) { $earlyTerminatingMethodNames = [];