diff --git a/config/set/coding-style/coding-style.yaml b/config/set/coding-style/coding-style.yaml index 33505964ff31..bbfa8dc714b3 100644 --- a/config/set/coding-style/coding-style.yaml +++ b/config/set/coding-style/coding-style.yaml @@ -1,6 +1,5 @@ services: Rector\CodingStyle\Rector\If_\NullableCompareToNullRector: ~ - Rector\CodingStyle\Rector\ClassConst\CompleteVarDocTypeConstantRector: ~ Rector\CodingStyle\Rector\FuncCall\SimpleArrayCallableToStringRector: ~ Rector\CodingStyle\Rector\Identical\IdenticalFalseToBooleanNotRector: ~ Rector\CodingStyle\Rector\Switch_\BinarySwitchToIfElseRector: ~ @@ -22,4 +21,5 @@ services: Rector\CodingStyle\Rector\Catch_\CatchExceptionNameMatchingTypeRector: ~ Rector\CodingStyle\Rector\Property\ArrayPropertyDefaultValueRector: ~ Rector\CodingStyle\Rector\Assign\SplitDoubleAssignRector: ~ + Rector\CodingStyle\Rector\ClassConst\VarConstantCommentRector: ~ diff --git a/packages/CodingStyle/src/Rector/ClassConst/CompleteVarDocTypeConstantRector.php b/packages/CodingStyle/src/Rector/ClassConst/CompleteVarDocTypeConstantRector.php deleted file mode 100644 index 49d125044bbb..000000000000 --- a/packages/CodingStyle/src/Rector/ClassConst/CompleteVarDocTypeConstantRector.php +++ /dev/null @@ -1,88 +0,0 @@ -docBlockManipulator = $docBlockManipulator; - $this->nodeToStringTypeResolver = $nodeToStringTypeResolver; - } - - public function getDefinition(): RectorDefinition - { - return new RectorDefinition('Complete constant `@var` annotations for missing one, yet known.', [ - new CodeSample( - <<<'CODE_SAMPLE' -final class SomeClass -{ - private const NUMBER = 5; -} -CODE_SAMPLE - , - <<<'CODE_SAMPLE' -final class SomeClass -{ - /** - * @var int - */ - private const NUMBER = 5; -} -CODE_SAMPLE - ), - ]); - } - - /** - * @return string[] - */ - public function getNodeTypes(): array - { - return [ClassConst::class]; - } - - /** - * @param ClassConst $node - */ - public function refactor(Node $node): ?Node - { - if ($this->docBlockManipulator->hasTag($node, 'var')) { - return null; - } - - // work only with single-constant - if (count($node->consts) > 1) { - return null; - } - - $knownType = $this->nodeToStringTypeResolver->resolver($node->consts[0]->value); - if ($knownType === null) { - return null; - } - - $this->docBlockManipulator->changeVarTag($node, $knownType); - - return $node; - } -} diff --git a/packages/CodingStyle/tests/Rector/ClassConst/CompleteVarDocTypeConstantRector/CompleteVarDocTypeConstantRectorTest.php b/packages/CodingStyle/tests/Rector/ClassConst/CompleteVarDocTypeConstantRector/CompleteVarDocTypeConstantRectorTest.php deleted file mode 100644 index 8959f76094fe..000000000000 --- a/packages/CodingStyle/tests/Rector/ClassConst/CompleteVarDocTypeConstantRector/CompleteVarDocTypeConstantRectorTest.php +++ /dev/null @@ -1,19 +0,0 @@ -doTestFiles([__DIR__ . '/Fixture/fixture.php.inc']); - } - - protected function getRectorClass(): string - { - return CompleteVarDocTypeConstantRector::class; - } -} diff --git a/packages/CodingStyle/tests/Rector/ClassConst/CompleteVarDocTypeConstantRector/Fixture/fixture.php.inc b/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/Fixture/misc_type.php.inc similarity index 66% rename from packages/CodingStyle/tests/Rector/ClassConst/CompleteVarDocTypeConstantRector/Fixture/fixture.php.inc rename to packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/Fixture/misc_type.php.inc index 2a302349a184..0790b09869f6 100644 --- a/packages/CodingStyle/tests/Rector/ClassConst/CompleteVarDocTypeConstantRector/Fixture/fixture.php.inc +++ b/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/Fixture/misc_type.php.inc @@ -1,8 +1,8 @@ +----- + diff --git a/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/VarConstantCommentRectorTest.php b/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/VarConstantCommentRectorTest.php index 67f94490e3b6..7ce204b970bd 100644 --- a/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/VarConstantCommentRectorTest.php +++ b/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/VarConstantCommentRectorTest.php @@ -13,6 +13,8 @@ public function test(): void __DIR__ . '/Fixture/fixture.php.inc', __DIR__ . '/Fixture/correct_invalid.php.inc', __DIR__ . '/Fixture/arrays.php.inc', + __DIR__ . '/Fixture/misc_type.php.inc', + __DIR__ . '/Fixture/no_slash.php.inc', ]); } diff --git a/src/Php/TypeAnalyzer.php b/src/Php/TypeAnalyzer.php index 0b1ab3355aa5..b1d57a5b93be 100644 --- a/src/Php/TypeAnalyzer.php +++ b/src/Php/TypeAnalyzer.php @@ -43,6 +43,9 @@ public function isPhpReservedType(string $type): bool $type = strtolower($type); $extraTypes = ['object']; + // remove [] from arrays + $type = Strings::replace($type, '#(\[\])+$#'); + return in_array($type, array_merge($this->phpSupportedTypes, $extraTypes), true); }