44
55use Generator ;
66use PhpParser \Node \Expr ;
7+ use PhpParser \Node \Scalar \MagicConst \Class_ ;
8+ use PhpParser \Node \Scalar \MagicConst \Dir ;
79use PhpParser \Node \Scalar \MagicConst \File ;
10+ use PhpParser \Node \Scalar \MagicConst \Function_ ;
11+ use PhpParser \Node \Scalar \MagicConst \Line ;
12+ use PhpParser \Node \Scalar \MagicConst \Method ;
13+ use PhpParser \Node \Scalar \MagicConst \Namespace_ ;
14+ use PhpParser \Node \Scalar \MagicConst \Property ;
15+ use PhpParser \Node \Scalar \MagicConst \Trait_ ;
816use PhpParser \Node \Stmt ;
917use PHPStan \Analyser \ExpressionContext ;
1018use PHPStan \Analyser \Generator \ExprAnalysisResult ;
1624use PHPStan \Reflection \InitializerExprTypeResolver ;
1725
1826/**
19- * @implements ExprHandler<File>
27+ * @implements ExprHandler<Dir| File|Line|Namespace_|Class_|Property|Function_|Method|Trait_ >
2028 */
2129#[AutowiredService]
22- final class MagicFileHandler implements ExprHandler
30+ final class MagicConstHandler implements ExprHandler
2331{
2432
2533 public function __construct (private InitializerExprTypeResolver $ initializerExprTypeResolver )
@@ -28,7 +36,15 @@ public function __construct(private InitializerExprTypeResolver $initializerExpr
2836
2937 public function supports (Expr $ expr ): bool
3038 {
31- return $ expr instanceof File;
39+ return $ expr instanceof Dir
40+ || $ expr instanceof File
41+ || $ expr instanceof Line
42+ || $ expr instanceof Namespace_
43+ || $ expr instanceof Class_
44+ || $ expr instanceof Property
45+ || $ expr instanceof Function_
46+ || $ expr instanceof Method
47+ || $ expr instanceof Trait_;
3248 }
3349
3450 public function analyseExpr (Stmt $ stmt , Expr $ expr , GeneratorScope $ scope , ExpressionContext $ context , ?callable $ alternativeNodeCallback ): Generator
0 commit comments