2020
2121final class NoUselessWriteVisibilityFixer extends AbstractFixer
2222{
23- private const PREDECESSOR_KIND_MAP = [
24- \T_PUBLIC_SET => [\T_PUBLIC , CT ::T_CONSTRUCTOR_PROPERTY_PROMOTION_PUBLIC ],
25- \T_PROTECTED_SET => [\T_PROTECTED , CT ::T_CONSTRUCTOR_PROPERTY_PROMOTION_PROTECTED ],
26- \T_PRIVATE_SET => [\T_PRIVATE , CT ::T_CONSTRUCTOR_PROPERTY_PROMOTION_PRIVATE ],
27- ];
23+ /** @var non-empty-array<int, list<int>> */
24+ private array $ predecessorKindMap ;
25+
26+ public function __construct ()
27+ {
28+ if (\defined ('T_PUBLIC_SET ' )) {
29+ $ this ->predecessorKindMap = [
30+ \T_PUBLIC_SET => [\T_PUBLIC , CT ::T_CONSTRUCTOR_PROPERTY_PROMOTION_PUBLIC ],
31+ \T_PROTECTED_SET => [\T_PROTECTED , CT ::T_CONSTRUCTOR_PROPERTY_PROMOTION_PROTECTED ],
32+ \T_PRIVATE_SET => [\T_PRIVATE , CT ::T_CONSTRUCTOR_PROPERTY_PROMOTION_PRIVATE ],
33+ ];
34+ }
35+ }
2836
2937 public function getDefinition (): FixerDefinitionInterface
3038 {
@@ -50,7 +58,7 @@ public function getPriority(): int
5058
5159 public function isCandidate (Tokens $ tokens ): bool
5260 {
53- return \defined ('T_PUBLIC_SET ' ) && $ tokens ->isAnyTokenKindsFound (\array_keys (self :: PREDECESSOR_KIND_MAP ));
61+ return \defined ('T_PUBLIC_SET ' ) && $ tokens ->isAnyTokenKindsFound (\array_keys ($ this -> predecessorKindMap ));
5462 }
5563
5664 public function isRisky (): bool
@@ -60,18 +68,18 @@ public function isRisky(): bool
6068
6169 public function fix (\SplFileInfo $ file , Tokens $ tokens ): void
6270 {
63- foreach ($ tokens ->findGivenKind (\array_keys (self :: PREDECESSOR_KIND_MAP )) as $ kind => $ elements ) {
71+ foreach ($ tokens ->findGivenKind (\array_keys ($ this -> predecessorKindMap )) as $ kind => $ elements ) {
6472 foreach (\array_keys ($ elements ) as $ index ) {
65- self :: fixVisibility ($ tokens , $ index , $ kind , $ kind === \T_PUBLIC_SET );
73+ $ this -> fixVisibility ($ tokens , $ index , $ kind , $ kind === \T_PUBLIC_SET );
6674 }
6775 }
6876 }
6977
70- private static function fixVisibility (Tokens $ tokens , int $ index , int $ kind , bool $ makePublicIfNone ): void
78+ private function fixVisibility (Tokens $ tokens , int $ index , int $ kind , bool $ makePublicIfNone ): void
7179 {
7280 $ prevIndex = $ tokens ->getPrevMeaningfulToken ($ index );
7381
74- if (!$ tokens [$ prevIndex ]->isGivenKind (self :: PREDECESSOR_KIND_MAP [$ kind ])) {
82+ if (!$ tokens [$ prevIndex ]->isGivenKind ($ this -> predecessorKindMap [$ kind ])) {
7583 if ($ makePublicIfNone ) {
7684 $ tokens [$ index ] = new Token ([\T_PUBLIC , 'public ' ]);
7785 }
0 commit comments