1: | <?php declare(strict_types = 1); |
2: | |
3: | namespace PHPStan\Analyser; |
4: | |
5: | use PhpParser\Node; |
6: | use PHPStan\Node\VirtualNode; |
7: | |
8: | /** |
9: | * @phpstan-type ImpurePointIdentifier = 'echo'|'die'|'exit'|'propertyAssign'|'propertyAssignByRef'|'propertyUnset'|'methodCall'|'new'|'functionCall'|'include'|'require'|'print'|'eval'|'superglobal'|'yield'|'yieldFrom'|'static'|'global'|'betweenPhpTags' |
10: | * @api |
11: | * @final |
12: | */ |
13: | class ImpurePoint |
14: | { |
15: | |
16: | /** |
17: | * @param Node\Expr|Node\Stmt|VirtualNode $node |
18: | * @param ImpurePointIdentifier $identifier |
19: | */ |
20: | public function __construct( |
21: | private Scope $scope, |
22: | private Node $node, |
23: | private string $identifier, |
24: | private string $description, |
25: | private bool $certain, |
26: | ) |
27: | { |
28: | } |
29: | |
30: | public function getScope(): Scope |
31: | { |
32: | return $this->scope; |
33: | } |
34: | |
35: | /** |
36: | * @return Node\Expr|Node\Stmt|VirtualNode |
37: | */ |
38: | public function getNode() |
39: | { |
40: | return $this->node; |
41: | } |
42: | |
43: | /** |
44: | * @return ImpurePointIdentifier |
45: | */ |
46: | public function getIdentifier(): string |
47: | { |
48: | return $this->identifier; |
49: | } |
50: | |
51: | public function getDescription(): string |
52: | { |
53: | return $this->description; |
54: | } |
55: | |
56: | public function isCertain(): bool |
57: | { |
58: | return $this->certain; |
59: | } |
60: | |
61: | } |
62: |