Skip to content

Commit a9aae86

Browse files
committed
Method Scope::getAnonymousFunctionReflection() always returns ClosureType
1 parent 5a9471a commit a9aae86

File tree

6 files changed

+13
-14
lines changed

6 files changed

+13
-14
lines changed

src/Analyser/DirectInternalScopeFactory.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
use PHPStan\Php\PhpVersion;
1111
use PHPStan\Reflection\AttributeReflectionFactory;
1212
use PHPStan\Reflection\InitializerExprTypeResolver;
13-
use PHPStan\Reflection\ParametersAcceptor;
1413
use PHPStan\Reflection\Php\PhpFunctionFromParserNodeReflection;
1514
use PHPStan\Reflection\ReflectionProvider;
1615
use PHPStan\Rules\Properties\PropertyReflectionFinder;
16+
use PHPStan\Type\ClosureType;
1717

1818
final class DirectInternalScopeFactory implements InternalScopeFactory
1919
{
@@ -51,7 +51,7 @@ public function create(
5151
array $nativeExpressionTypes = [],
5252
array $conditionalExpressions = [],
5353
array $inClosureBindScopeClasses = [],
54-
?ParametersAcceptor $anonymousFunctionReflection = null,
54+
?ClosureType $anonymousFunctionReflection = null,
5555
bool $inFirstLevelStatement = true,
5656
array $currentlyAssignedExpressions = [],
5757
array $currentlyAllowedUndefinedExpressions = [],

src/Analyser/InternalScopeFactory.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
use PHPStan\Reflection\FunctionReflection;
66
use PHPStan\Reflection\MethodReflection;
77
use PHPStan\Reflection\ParameterReflection;
8-
use PHPStan\Reflection\ParametersAcceptor;
98
use PHPStan\Reflection\Php\PhpFunctionFromParserNodeReflection;
9+
use PHPStan\Type\ClosureType;
1010

1111
interface InternalScopeFactory
1212
{
@@ -29,7 +29,7 @@ public function create(
2929
array $nativeExpressionTypes = [],
3030
array $conditionalExpressions = [],
3131
array $inClosureBindScopeClasses = [],
32-
?ParametersAcceptor $anonymousFunctionReflection = null,
32+
?ClosureType $anonymousFunctionReflection = null,
3333
bool $inFirstLevelStatement = true,
3434
array $currentlyAssignedExpressions = [],
3535
array $currentlyAllowedUndefinedExpressions = [],

src/Analyser/LazyInternalScopeFactory.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
use PHPStan\Php\PhpVersion;
1212
use PHPStan\Reflection\AttributeReflectionFactory;
1313
use PHPStan\Reflection\InitializerExprTypeResolver;
14-
use PHPStan\Reflection\ParametersAcceptor;
1514
use PHPStan\Reflection\Php\PhpFunctionFromParserNodeReflection;
1615
use PHPStan\Reflection\ReflectionProvider;
1716
use PHPStan\Rules\Properties\PropertyReflectionFinder;
17+
use PHPStan\Type\ClosureType;
1818

1919
#[GenerateFactory(interface: InternalScopeFactoryFactory::class, resultType: LazyInternalScopeFactory::class)]
2020
final class LazyInternalScopeFactory implements InternalScopeFactory
@@ -43,7 +43,7 @@ public function create(
4343
array $nativeExpressionTypes = [],
4444
array $conditionalExpressions = [],
4545
array $inClosureBindScopeClasses = [],
46-
?ParametersAcceptor $anonymousFunctionReflection = null,
46+
?ClosureType $anonymousFunctionReflection = null,
4747
bool $inFirstLevelStatement = true,
4848
array $currentlyAssignedExpressions = [],
4949
array $currentlyAllowedUndefinedExpressions = [],

src/Analyser/MutatingScope.php

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@
8484
use PHPStan\Reflection\Php\PhpMethodFromParserNodeReflection;
8585
use PHPStan\Reflection\PropertyReflection;
8686
use PHPStan\Reflection\ReflectionProvider;
87-
use PHPStan\Reflection\TrivialParametersAcceptor;
8887
use PHPStan\Rules\Properties\PropertyReflectionFinder;
8988
use PHPStan\ShouldNotHappenException;
9089
use PHPStan\TrinaryLogic;
@@ -237,7 +236,7 @@ public function __construct(
237236
private array $nativeExpressionTypes = [],
238237
private array $conditionalExpressions = [],
239238
private array $inClosureBindScopeClasses = [],
240-
private ?ParametersAcceptor $anonymousFunctionReflection = null,
239+
private ?ClosureType $anonymousFunctionReflection = null,
241240
private bool $inFirstLevelStatement = true,
242241
private array $currentlyAssignedExpressions = [],
243242
private array $currentlyAllowedUndefinedExpressions = [],
@@ -754,7 +753,7 @@ public function isInAnonymousFunction(): bool
754753
}
755754

756755
/** @api */
757-
public function getAnonymousFunctionReflection(): ?ParametersAcceptor
756+
public function getAnonymousFunctionReflection(): ?ClosureType
758757
{
759758
return $this->anonymousFunctionReflection;
760759
}
@@ -3900,7 +3899,7 @@ private function enterAnonymousFunctionWithoutReflection(
39003899
array_merge($this->getNativeConstantTypes(), $nativeTypes),
39013900
[],
39023901
$this->inClosureBindScopeClasses,
3903-
new TrivialParametersAcceptor(),
3902+
new ClosureType(),
39043903
true,
39053904
[],
39063905
[],
@@ -4027,7 +4026,7 @@ private function enterArrowFunctionWithoutReflection(Expr\ArrowFunction $arrowFu
40274026
$arrowFunctionScope->nativeExpressionTypes,
40284027
$arrowFunctionScope->conditionalExpressions,
40294028
$arrowFunctionScope->inClosureBindScopeClasses,
4030-
new TrivialParametersAcceptor(),
4029+
new ClosureType(),
40314030
true,
40324031
[],
40334032
[],

src/Analyser/NodeScopeResolver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4931,7 +4931,7 @@ private function processArrowFunctionNode(
49314931
$passedToType,
49324932
));
49334933
$arrowFunctionType = $arrowFunctionScope->getAnonymousFunctionReflection();
4934-
if (!$arrowFunctionType instanceof ClosureType) {
4934+
if ($arrowFunctionType === null) {
49354935
throw new ShouldNotHappenException();
49364936
}
49374937
$nodeCallback(new InArrowFunctionNode($arrowFunctionType, $expr), $arrowFunctionScope);

src/Analyser/Scope.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
use PHPStan\Reflection\MethodReflection;
1717
use PHPStan\Reflection\NamespaceAnswerer;
1818
use PHPStan\Reflection\ParameterReflection;
19-
use PHPStan\Reflection\ParametersAcceptor;
2019
use PHPStan\Reflection\Php\PhpFunctionFromParserNodeReflection;
2120
use PHPStan\TrinaryLogic;
21+
use PHPStan\Type\ClosureType;
2222
use PHPStan\Type\Type;
2323
use PHPStan\Type\TypeWithClassName;
2424

@@ -98,7 +98,7 @@ public function getIterableValueType(Type $iteratee): Type;
9898
*/
9999
public function isInAnonymousFunction(): bool;
100100

101-
public function getAnonymousFunctionReflection(): ?ParametersAcceptor;
101+
public function getAnonymousFunctionReflection(): ?ClosureType;
102102

103103
public function getAnonymousFunctionReturnType(): ?Type;
104104

0 commit comments

Comments
 (0)