Skip to content

Commit 9c60d07

Browse files
committed
Support AlternativeNodeCallbackRequest in GeneratorYieldSendTypeExtension
1 parent 013e021 commit 9c60d07

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

build/PHPStan/Build/GeneratorYieldSendTypeExtension.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace PHPStan\Build;
44

55
use PhpParser\Node\Expr;
6+
use PHPStan\Analyser\Generator\AlternativeNodeCallbackRequest;
67
use PHPStan\Analyser\Generator\ExprAnalysisRequest;
78
use PHPStan\Analyser\Generator\ExprAnalysisResult;
89
use PHPStan\Analyser\Generator\NodeCallbackRequest;
@@ -51,6 +52,9 @@ public function getType(Expr $expr, Scope $scope): ?Type
5152
if ((new ObjectType(NodeCallbackRequest::class))->isSuperTypeOf($valueType)->yes()) {
5253
return new NullType();
5354
}
55+
if ((new ObjectType(AlternativeNodeCallbackRequest::class))->isSuperTypeOf($valueType)->yes()) {
56+
return new NullType();
57+
}
5458

5559
return null;
5660
}

tests/PHPStan/Analyser/nsrt/gnsr-yield-in-generator-ns.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public function doFoo(): Generator
1717
assertType(StmtAnalysisResult::class, yield new StmtAnalysisRequest());
1818
assertType(StmtAnalysisResult::class, yield new StmtsAnalysisRequest());
1919
assertType('null', yield new NodeCallbackRequest());
20+
assertType('null', yield new AlternativeNodeCallbackRequest());
2021
}
2122

2223
}

0 commit comments

Comments
 (0)