From 2c632b2b794d11e4906143f70141a5e2b95017b8 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 23 Jun 2019 16:40:55 +0200 Subject: [PATCH 1/2] remove duplicated CompleteVarDocTypeConstantRector --- config/set/coding-style/coding-style.yaml | 2 +- .../CompleteVarDocTypeConstantRector.php | 88 ------------------- .../CompleteVarDocTypeConstantRectorTest.php | 19 ---- .../Fixture/fixture.php.inc | 43 --------- 4 files changed, 1 insertion(+), 151 deletions(-) delete mode 100644 packages/CodingStyle/src/Rector/ClassConst/CompleteVarDocTypeConstantRector.php delete mode 100644 packages/CodingStyle/tests/Rector/ClassConst/CompleteVarDocTypeConstantRector/CompleteVarDocTypeConstantRectorTest.php delete mode 100644 packages/CodingStyle/tests/Rector/ClassConst/CompleteVarDocTypeConstantRector/Fixture/fixture.php.inc 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/CompleteVarDocTypeConstantRector/Fixture/fixture.php.inc deleted file mode 100644 index 2a302349a184..000000000000 --- a/packages/CodingStyle/tests/Rector/ClassConst/CompleteVarDocTypeConstantRector/Fixture/fixture.php.inc +++ /dev/null @@ -1,43 +0,0 @@ - ------ - From 16ebd05cee88c6934df5eccaa4f373748e071c96 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 23 Jun 2019 16:41:35 +0200 Subject: [PATCH 2/2] [CodingStyle] Fix extra slash in array simple types --- .../Fixture/misc_type.php.inc | 43 +++++++++++++++++++ .../Fixture/no_slash.php.inc | 28 ++++++++++++ .../VarConstantCommentRectorTest.php | 2 + src/Php/TypeAnalyzer.php | 3 ++ 4 files changed, 76 insertions(+) create mode 100644 packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/Fixture/misc_type.php.inc create mode 100644 packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/Fixture/no_slash.php.inc diff --git a/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/Fixture/misc_type.php.inc b/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/Fixture/misc_type.php.inc new file mode 100644 index 000000000000..0790b09869f6 --- /dev/null +++ b/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/Fixture/misc_type.php.inc @@ -0,0 +1,43 @@ + +----- + diff --git a/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/Fixture/no_slash.php.inc b/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/Fixture/no_slash.php.inc new file mode 100644 index 000000000000..3266193747bb --- /dev/null +++ b/packages/CodingStyle/tests/Rector/ClassConst/VarConstantCommentRector/Fixture/no_slash.php.inc @@ -0,0 +1,28 @@ + +----- + 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); }