Skip to content

Commit 205fdd1

Browse files
authored
Wrap entrypoints into IIFE to protect their variables (#5366)
* Wrap entrypoints into IIFE to protect their variables Fixes #5359 * Add tests for Psalm variable isolation * Capture environment before registering autoloader
1 parent 0a4ad57 commit 205fdd1

15 files changed

Lines changed: 1552 additions & 1428 deletions

src/Psalm/IssueBuffer.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
use function sprintf;
2424
use Psalm\Internal\Analyzer\IssueData;
2525
use Psalm\Internal\Analyzer\ProjectAnalyzer;
26+
use Psalm\Internal\ExecutionEnvironment\BuildInfoCollector;
2627
use Psalm\Issue\CodeIssue;
2728
use Psalm\Issue\UnusedPsalmSuppress;
2829
use Psalm\Report\CheckstyleReport;
@@ -440,6 +441,7 @@ public static function addIssues(array $issues_data): void
440441
*/
441442
public static function finish(
442443
ProjectAnalyzer $project_analyzer,
444+
BuildInfoCollector $build_info_collector,
443445
bool $is_full,
444446
float $start_time,
445447
bool $add_stats = false,
@@ -542,7 +544,7 @@ function (IssueData $d1, IssueData $d2) : int {
542544
}
543545

544546
$source_control_info = null;
545-
$build_info = (new \Psalm\Internal\ExecutionEnvironment\BuildInfoCollector($_SERVER))->collect();
547+
$build_info = $build_info_collector->collect();
546548

547549
if ($codebase->config->eventDispatcher->after_analysis
548550
|| $codebase->config->eventDispatcher->legacy_after_analysis

0 commit comments

Comments
 (0)