1: <?php declare(strict_types = 1);
2:
3: namespace ApiGen\Analyzer;
4:
5: use ApiGen\Info\ClassLikeInfo;
6: use ApiGen\Info\ClassLikeReferenceInfo;
7: use ApiGen\Info\ErrorInfo;
8: use ApiGen\Info\FunctionInfo;
9: use ApiGen\Info\MissingInfo;
10: use ApiGen\Info\NameInfo;
11: use ApiGen\Scheduler;
12: use Symfony\Component\Console\Helper\ProgressBar;
13:
14:
15: class AnalyzeState
16: {
17: /** @var true[] indexed by [path] */
18: public array $files = [];
19:
20: /** @var MissingInfo[] indexed by [classLikeName] */
21: public array $missing = [];
22:
23: /** @var ClassLikeInfo[] indexed by [classLikeName] */
24: public array $classLikes = [];
25:
26: /** @var FunctionInfo[] indexed by [functionName] */
27: public array $functions = [];
28:
29: /** @var ErrorInfo[][] indexed by [errorKind][] */
30: public array $errors = [];
31:
32: /** @var NameInfo|null */
33: public ?NameInfo $prevName = null;
34:
35:
36: /**
37: * @param Scheduler<AnalyzeTask, array<ClassLikeInfo | FunctionInfo | ClassLikeReferenceInfo | ErrorInfo>> $scheduler
38: */
39: public function __construct(
40: public ProgressBar $progressBar,
41: public Scheduler $scheduler,
42: ) {
43: }
44: }
45: