Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ final class OverrideDummyArrayParam
/**
* @param array $items
*/
public function run(array &$items)
private function run(array &$items)
{
$items[] = 'John';
}
Expand All @@ -24,7 +24,7 @@ final class OverrideDummyArrayParam
/**
* @param string[] $items
*/
public function run(array &$items)
private function run(array &$items)
{
$items[] = 'John';
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace Rector\Tests\TypeDeclarationDocblocks\Rector\ClassMethod\AddParamArray

final class SkipDimFetchAssignDeep
{
public function run(array &$items)
private function run(array &$items)
{
$items[][] = 'John';
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace Rector\Tests\TypeDeclarationDocblocks\Rector\ClassMethod\AddParamArray

final class SkipMultipleAssigns
{
public function run(array &$items)
private function run(array &$items)
{
$items[] = 'John';
$items[] = 1000;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

namespace Rector\Tests\TypeDeclarationDocblocks\Rector\ClassMethod\AddParamArrayDocblockFromAssignsParamToParamReferenceRector\Fixture;

final class SkipNonPrivateMethod
{
protected function addMobileData(array &$data): void
{
$data[] = 'value';
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace Rector\Tests\TypeDeclarationDocblocks\Rector\ClassMethod\AddParamArray

final class SomeClass
{
public function run(array &$items)
private function run(array &$items)
{
$items[] = 'John';
}
Expand All @@ -21,7 +21,7 @@ final class SomeClass
/**
* @param string[] $items
*/
public function run(array &$items)
private function run(array &$items)
{
$items[] = 'John';
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public function getRuleDefinition(): RuleDefinition
<<<'CODE_SAMPLE'
final class SomeClass
{
public function run(array &$names): void
private function run(array &$names): void
{
$names[] = 'John';
}
Expand All @@ -52,7 +52,7 @@ final class SomeClass
/**
* @param string[] $names
*/
public function run(array &$names): void
private function run(array &$names): void
{
$names[] = 'John';
}
Expand Down Expand Up @@ -83,6 +83,11 @@ public function refactor(Node $node): ?Node
return null;
}

// a by-ref param type is invariant in PHPStan; narrowing it below array breaks callers passing a plain array, which are invisible for a non-private method
if (! $node->isPrivate()) {
return null;
}

$phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node);

foreach ($node->getParams() as $param) {
Expand Down
Loading