diff --git a/src/PHPStanAnalyser.php b/src/PHPStanAnalyser.php index 2820243..d06199d 100644 --- a/src/PHPStanAnalyser.php +++ b/src/PHPStanAnalyser.php @@ -8,6 +8,7 @@ use PhpParser\Node; use PHPStan\Analyser\Analyser; use PHPStan\Analyser\FileAnalyser; +use PHPStan\Analyser\IgnoreErrorExtensionProvider; use PHPStan\Analyser\LocalIgnoresProcessor; use PHPStan\Analyser\NodeScopeResolver; use PHPStan\Analyser\RuleErrorTransformer; @@ -144,14 +145,26 @@ public static function make(Container $container, array $rules, array $collector ); } - $fileAnalyser = new FileAnalyser( - $scopeFactory, - $nodeScopeResolver, - $container->getService('defaultAnalysisParser'), // @phpstan-ignore-line - $container->getByType(DependencyResolver::class), - new RuleErrorTransformer, - $container->getByType(LocalIgnoresProcessor::class), - ); + if ($version !== null && version_compare($version, '2.1.7', '>=')) { + $fileAnalyser = new FileAnalyser( + $scopeFactory, + $nodeScopeResolver, + $container->getService('defaultAnalysisParser'), // @phpstan-ignore-line + $container->getByType(DependencyResolver::class), + new IgnoreErrorExtensionProvider($container), + new RuleErrorTransformer, + $container->getByType(LocalIgnoresProcessor::class), + ); + } else { + $fileAnalyser = new FileAnalyser( + $scopeFactory, + $nodeScopeResolver, + $container->getService('defaultAnalysisParser'), // @phpstan-ignore-line + $container->getByType(DependencyResolver::class), + new RuleErrorTransformer, + $container->getByType(LocalIgnoresProcessor::class), + ); + } return new Analyser($fileAnalyser, $ruleRegistry, $collectorRegistry, $nodeScopeResolver, 9_999_999_999_999); }