44
55use Generator ;
66use PhpParser \Node \Expr ;
7+ use PhpParser \Node \Scalar \MagicConst \Class_ ;
8+ use PhpParser \Node \Scalar \MagicConst \Dir ;
9+ use 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 ;
713use 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<Namespace_>
27+ * @implements ExprHandler<Dir|File|Line| Namespace_|Class_|Property|Function_|Method|Trait_ >
2028 */
2129#[AutowiredService]
22- final class MagicNamespaceHandler implements ExprHandler
30+ final class MagicConstHandler implements ExprHandler
2331{
2432
2533 public function __construct (private InitializerExprTypeResolver $ initializerExprTypeResolver )
@@ -28,7 +36,17 @@ public function __construct(private InitializerExprTypeResolver $initializerExpr
2836
2937 public function supports (Expr $ expr ): bool
3038 {
31- return $ expr instanceof Namespace_;
39+ return
40+ $ expr instanceof Dir
41+ || $ expr instanceof File
42+ || $ expr instanceof Line
43+ || $ expr instanceof Namespace_
44+ || $ expr instanceof Class_
45+ || $ expr instanceof Property
46+ || $ expr instanceof Function_
47+ || $ expr instanceof Method
48+ || $ expr instanceof Trait_
49+ ;
3250 }
3351
3452 public function analyseExpr (Stmt $ stmt , Expr $ expr , GeneratorScope $ scope , ExpressionContext $ context , ?callable $ alternativeNodeCallback ): Generator
0 commit comments