Skip to content

Commit dcd9d08

Browse files
committed
fix static
1 parent e79ec00 commit dcd9d08

4 files changed

+21
-5
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
},
5353
"autoload-dev": {
5454
"psr-4": {
55-
"PHPStan\\Tests\\": "tests/"
55+
"PHPStan\\": "tests/"
5656
},
5757
"classmap": [
5858
"tests/"

src/Type/Nette/JsonDecodeDynamicReturnTypeExtension.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
final class JsonDecodeDynamicReturnTypeExtension implements DynamicStaticMethodReturnTypeExtension
2626
{
27+
2728
public function getClass(): string
2829
{
2930
return 'Nette\Utils\Json';
@@ -90,7 +91,15 @@ private function isForceArray(array $args): bool
9091
$classConstFetch = $secondArg->value;
9192

9293
if ($classConstFetch->class instanceof Name) {
93-
if ($classConstFetch->class->toString() === 'Nette\Utils\Json' && $classConstFetch->name->toString() === 'FORCE_ARRAY') {
94+
if (! $classConstFetch->name instanceof \PhpParser\Node\Identifier) {
95+
return false;
96+
}
97+
98+
if ($classConstFetch->class->toString() !== 'Nette\Utils\Json') {
99+
return false;
100+
}
101+
102+
if ($classConstFetch->name->toString() === 'FORCE_ARRAY') {
94103
return true;
95104
}
96105
}
@@ -129,4 +138,5 @@ private function resolveConstantStringType(ConstantStringType $constantStringTyp
129138

130139
return new MixedType();
131140
}
141+
132142
}

tests/Type/Nette/FormContainerValuesDynamicReturnTypeExtensionTest.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php declare(strict_types = 1);
22

3-
namespace PHPStan\Tests\Type\Nette;
3+
namespace PHPStan\Type\Nette;
44

55
use PhpParser\Node\Arg;
66
use PhpParser\Node\Expr;
@@ -13,7 +13,6 @@
1313
use PHPStan\Type\Generic\TemplateTypeMap;
1414
use PHPStan\Type\IterableType;
1515
use PHPStan\Type\MixedType;
16-
use PHPStan\Type\Nette\FormContainerValuesDynamicReturnTypeExtension;
1716
use PHPStan\Type\ObjectType;
1817
use PHPStan\Type\UnionType;
1918
use PHPStan\Type\VerbosityLevel;

tests/Type/Nette/JsonDecodeDynamicReturnTypeExtensionTest.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
<?php declare(strict_types = 1);
22

3-
namespace PHPStan\Tests\Type\Nette;
3+
namespace PHPStan\Type\Nette;
44

55
use PHPStan\Testing\TypeInferenceTestCase;
66

77
final class JsonDecodeDynamicReturnTypeExtensionTest extends TypeInferenceTestCase
88
{
9+
10+
/**
11+
* @return iterable<mixed>
12+
*/
913
public function dataAsserts(): iterable
1014
{
1115
yield from $this->gatherAssertTypes(__DIR__ . '/data/json_decode.php');
@@ -14,6 +18,8 @@ public function dataAsserts(): iterable
1418

1519
/**
1620
* @dataProvider dataAsserts()
21+
* @param string $assertType
22+
* @param string $file
1723
* @param mixed ...$args
1824
*/
1925
public function testAsserts(string $assertType, string $file, ...$args): void
@@ -28,4 +34,5 @@ public static function getAdditionalConfigFiles(): array
2834
{
2935
return [__DIR__ . '/config/json_decode_extension.neon'];
3036
}
37+
3138
}

0 commit comments

Comments
 (0)