Skip to content

Commit 1b0dcb2

Browse files
authored
Bump to PHPStan ^2.1.33, add back ArrayMapArgVisitor (#7719)
* Bump to PHPStan ^2.1.33, add back ArrayMapArgVisitor * add back return by array shape test * add test for skip all strings in array_map()
1 parent 23c63d7 commit 1b0dcb2

File tree

5 files changed

+58
-6
lines changed

5 files changed

+58
-6
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
namespace Rector\Tests\Php81\Rector\FuncCall\NullToStrictStringFuncCallArgRector\Fixture;
4+
5+
final class SkipArrayOfStringsOnArrayMap
6+
{
7+
public function foo(string $name)
8+
{
9+
$parts = explode('_', $name);
10+
return implode(
11+
'',
12+
array_map(
13+
fn ($part): string =>
14+
strtolower($part),
15+
$parts
16+
)
17+
);
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
3+
namespace Rector\Tests\TypeDeclaration\Rector\ArrowFunction\AddArrowFunctionReturnTypeRector\Fixture;
4+
5+
class ReturnByArrayShapeType
6+
{
7+
/**
8+
* @param array<int, array{bar: int}> $values
9+
*/
10+
private function foo(array $values): void
11+
{
12+
$bars = array_map(fn($value) => $value['bar'], $values);
13+
}
14+
}
15+
16+
?>
17+
-----
18+
<?php
19+
20+
namespace Rector\Tests\TypeDeclaration\Rector\ArrowFunction\AddArrowFunctionReturnTypeRector\Fixture;
21+
22+
class ReturnByArrayShapeType
23+
{
24+
/**
25+
* @param array<int, array{bar: int}> $values
26+
*/
27+
private function foo(array $values): void
28+
{
29+
$bars = array_map(fn($value): int => $value['bar'], $values);
30+
}
31+
}
32+
33+
?>

rules/CodingStyle/Rector/Enum_/EnumCaseToPascalCaseRector.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,9 +208,9 @@ private function convertToPascalCase(string $name): string
208208
fn ($part): string =>
209209
// If part is all uppercase, convert to ucfirst(strtolower())
210210
// If part is already mixed or PascalCase, keep as is except ucfirst
211-
ctype_upper((string) $part)
212-
? ucfirst(strtolower((string) $part))
213-
: ucfirst((string) $part),
211+
ctype_upper($part)
212+
? ucfirst(strtolower($part))
213+
: ucfirst($part),
214214
$parts
215215
)
216216
);

rules/TypeDeclaration/Rector/FuncCall/AddArrowFunctionParamArrayWhereDimFetchRector.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
use PhpParser\Node\Expr\Instanceof_;
1313
use PhpParser\Node\Expr\Variable;
1414
use PhpParser\Node\Identifier;
15-
use PhpParser\Node\Scalar\String_;
1615
use PHPStan\Type\ArrayType;
1716
use Rector\PhpParser\Node\BetterNodeFinder;
1817
use Rector\Rector\AbstractRector;
@@ -149,8 +148,7 @@ private function resolveDimFetchVariableNames(Closure|ArrowFunction $closureExpr
149148
if ($arrayDimFetch->var instanceof Variable) {
150149
$type = $this->nodeTypeResolver->getNativeType($arrayDimFetch->var);
151150

152-
// skip string values
153-
if (! $arrayDimFetch->dim instanceof String_ && ($type->isString()->yes() || $type->isString()->maybe())) {
151+
if ($type->isString()->yes()) {
154152
continue;
155153
}
156154

src/DependencyInjection/PHPStan/PHPStanContainerMemento.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
use PHPStan\DependencyInjection\MemoizingContainer;
88
use PHPStan\DependencyInjection\Nette\NetteContainer;
99
use PHPStan\Parser\AnonymousClassVisitor;
10+
use PHPStan\Parser\ArrayMapArgVisitor;
1011
use PHPStan\Parser\RichParser;
1112
use PHPStan\Parser\VariadicFunctionsVisitor;
1213
use PHPStan\Parser\VariadicMethodsVisitor;
@@ -42,6 +43,7 @@ public static function removeRichVisitors(RichParser $richParser): void
4243
$container->findServiceNamesByType(AnonymousClassVisitor::class)[0] => true,
4344
$container->findServiceNamesByType(VariadicFunctionsVisitor::class)[0] => true,
4445
$container->findServiceNamesByType(VariadicMethodsVisitor::class)[0] => true,
46+
$container->findServiceNamesByType(ArrayMapArgVisitor::class)[0] => true,
4547
];
4648

4749
$tags[RichParser::VISITOR_SERVICE_TAG] = $nodeVisitorsToKeep;

0 commit comments

Comments
 (0)