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: | */ |
12: | final class ImpurePoint |
13: | { |
14: | |
15: | /** |
16: | * @param Node\Expr|Node\Stmt|VirtualNode $node |
17: | * @param ImpurePointIdentifier $identifier |
18: | */ |
19: | public function __construct( |
20: | private Scope $scope, |
21: | private Node $node, |
22: | private string $identifier, |
23: | private string $description, |
24: | private bool $certain, |
25: | ) |
26: | { |
27: | } |
28: | |
29: | public function getScope(): Scope |
30: | { |
31: | return $this->scope; |
32: | } |
33: | |
34: | /** |
35: | * @return Node\Expr|Node\Stmt|VirtualNode |
36: | */ |
37: | public function getNode() |
38: | { |
39: | return $this->node; |
40: | } |
41: | |
42: | /** |
43: | * @return ImpurePointIdentifier |
44: | */ |
45: | public function getIdentifier(): string |
46: | { |
47: | return $this->identifier; |
48: | } |
49: | |
50: | public function getDescription(): string |
51: | { |
52: | return $this->description; |
53: | } |
54: | |
55: | public function isCertain(): bool |
56: | { |
57: | return $this->certain; |
58: | } |
59: | |
60: | } |
61: |