From aee3cc55f6e1f83c365ac9ebdda4159c587c8471 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sat, 3 Jan 2026 00:08:51 +0100 Subject: [PATCH 1/2] add static all support to AddReturnDocblockFromMethodCallDocblockRector --- .../Fixture/handle_static_call.php.inc | 38 +++++++++++++++++++ .../Source/SomeRepository.php | 8 ++++ ...rnDocblockFromMethodCallDocblockRector.php | 7 +++- 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100644 rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector/Fixture/handle_static_call.php.inc diff --git a/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector/Fixture/handle_static_call.php.inc b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector/Fixture/handle_static_call.php.inc new file mode 100644 index 00000000000..8d1fa159b73 --- /dev/null +++ b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector/Fixture/handle_static_call.php.inc @@ -0,0 +1,38 @@ + +----- + diff --git a/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector/Source/SomeRepository.php b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector/Source/SomeRepository.php index e23d317f6c4..5ea1f68fe5e 100644 --- a/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector/Source/SomeRepository.php +++ b/rules-tests/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector/Source/SomeRepository.php @@ -21,4 +21,12 @@ public function findAllWithoutArray() { return []; } + + /** + * @return SomeEntity[] + */ + public static function staticFindAll(): array + { + return []; + } } diff --git a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector.php b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector.php index 2fb69f1a066..90639a8e592 100644 --- a/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector.php +++ b/rules/TypeDeclarationDocblocks/Rector/ClassMethod/AddReturnDocblockFromMethodCallDocblockRector.php @@ -6,6 +6,7 @@ use PhpParser\Node; use PhpParser\Node\Expr\MethodCall; +use PhpParser\Node\Expr\StaticCall; use PhpParser\Node\Identifier; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Return_; @@ -116,14 +117,16 @@ public function refactor(Node $node): ?Node } $onlyReturnWithExpr = $this->returnNodeFinder->findOnlyReturnWithExpr($node); - if (! $onlyReturnWithExpr instanceof Return_ || ! $onlyReturnWithExpr->expr instanceof MethodCall) { + if (! $onlyReturnWithExpr instanceof Return_ || (! $onlyReturnWithExpr->expr instanceof MethodCall && ! $onlyReturnWithExpr->expr instanceof StaticCall)) { return null; } $returnedMethodCall = $onlyReturnWithExpr->expr; // skip doctrine connection calls, as to generic and not helpful - $callerType = $this->getType($returnedMethodCall->var); + $callerType = $this->getType( + $returnedMethodCall instanceof MethodCall ? $returnedMethodCall->var : $returnedMethodCall->class + ); if ($callerType instanceof ObjectType && $callerType->isInstanceOf(DoctrineClass::CONNECTION)->yes()) { return null; } From 9b259ba5e60eda02a5b8794bb3e71235732598d1 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 2 Jan 2026 23:16:16 +0000 Subject: [PATCH 2/2] [ci-review] Rector Rectify --- src/Config/Level/TypeDeclarationDocblocksLevel.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Config/Level/TypeDeclarationDocblocksLevel.php b/src/Config/Level/TypeDeclarationDocblocksLevel.php index 290faf6d756..62b7581ecf0 100644 --- a/src/Config/Level/TypeDeclarationDocblocksLevel.php +++ b/src/Config/Level/TypeDeclarationDocblocksLevel.php @@ -21,7 +21,6 @@ use Rector\TypeDeclarationDocblocks\Rector\ClassMethod\AddReturnDocblockForCommonObjectDenominatorRector; use Rector\TypeDeclarationDocblocks\Rector\ClassMethod\AddReturnDocblockForDimFetchArrayFromAssignsRector; use Rector\TypeDeclarationDocblocks\Rector\ClassMethod\AddReturnDocblockForJsonArrayRector; -use Rector\TypeDeclarationDocblocks\Rector\ClassMethod\AddReturnDocblockFromMethodCallDocblockRector; use Rector\TypeDeclarationDocblocks\Rector\ClassMethod\DocblockGetterReturnArrayFromPropertyDocblockVarRector; use Rector\TypeDeclarationDocblocks\Rector\ClassMethod\DocblockReturnArrayFromDirectArrayInstanceRector;