From 2bde7b0d31837b507fbc2b82b9badbaea4d6f360 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s?= Date: Fri, 31 May 2024 19:50:26 +0200 Subject: [PATCH 1/2] fix: add ParameterClosureTypeExtensionProvider argument to NodeScopeResolver --- src/PHPStanAnalyser.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/PHPStanAnalyser.php b/src/PHPStanAnalyser.php index 072156c..3c275b3 100644 --- a/src/PHPStanAnalyser.php +++ b/src/PHPStanAnalyser.php @@ -16,6 +16,7 @@ use PHPStan\DependencyInjection\Container; use PHPStan\DependencyInjection\Reflection\ClassReflectionExtensionRegistryProvider; use PHPStan\DependencyInjection\Type\DynamicThrowTypeExtensionProvider; +use PHPStan\DependencyInjection\Type\ParameterClosureTypeExtensionProvider; use PHPStan\File\FileHelper; use PHPStan\Php\PhpVersion; use PHPStan\PhpDoc\PhpDocInheritanceResolver; @@ -64,6 +65,7 @@ public static function make(Container $container, array $rules, array $collector $typeSpecifier, // @phpstan-ignore-line $container->getByType(DynamicThrowTypeExtensionProvider::class), $container->getByType(ReadWritePropertiesExtensionProvider::class), + $container->getByType(ParameterClosureTypeExtensionProvider::class), $scopeFactory, false, true, From 9008e47b7bac90ec939c752c43b0fbb569103c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s?= Date: Fri, 31 May 2024 20:29:44 +0200 Subject: [PATCH 2/2] chore: reworks code --- composer.json | 2 +- tests/Plugin.php | 35 ++++++++++++++++++----------------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/composer.json b/composer.json index 37cc311..00e369e 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "license": "MIT", "require": { "php": "^8.1", - "phpstan/phpstan": "^1.11.0", + "phpstan/phpstan": "^1.11.3", "tomasvotruba/type-coverage": "^0.2.8", "pestphp/pest-plugin": "^2.1.1" }, diff --git a/tests/Plugin.php b/tests/Plugin.php index 43c22fe..565ee9b 100644 --- a/tests/Plugin.php +++ b/tests/Plugin.php @@ -36,30 +36,31 @@ public function exit(int $code): never expect(fn () => $plugin->handleArguments(['--type-coverage', '--type-coverage-json=test.json']))->toThrow(Exception::class, 0); expect(__DIR__.'/../test.json')->toBeReadableFile(); + expect(file_get_contents(__DIR__.'/../test.json'))->json()->toMatchArray([ 'format' => 'pest', 'coverage-min' => 0, 'result' => [ [ - 'file' => 'src/PHPStanAnalyser.php', + 'file' => 'src/TestCaseForTypeCoverage.php', 'uncoveredLines' => [], 'uncoveredLinesIgnored' => [], 'percentage' => 100, ], [ - 'file' => 'src/TestCaseForTypeCoverage.php', + 'file' => 'src/Analyser.php', 'uncoveredLines' => [], 'uncoveredLinesIgnored' => [], 'percentage' => 100, ], [ - 'file' => 'src/Contracts/Logger.php', + 'file' => 'src/PHPStanAnalyser.php', 'uncoveredLines' => [], 'uncoveredLinesIgnored' => [], 'percentage' => 100, ], [ - 'file' => 'src/Plugin.php', + 'file' => 'src/Support/ConfigurationSourceDetector.php', 'uncoveredLines' => [], 'uncoveredLinesIgnored' => [], 'percentage' => 100, @@ -71,46 +72,46 @@ public function exit(int $code): never 'percentage' => 100, ], [ - 'file' => 'src/Error.php', + 'file' => 'src/Logging/JsonLogger.php', 'uncoveredLines' => [], 'uncoveredLinesIgnored' => [], 'percentage' => 100, ], [ - 'file' => 'src/Support/ConfigurationSourceDetector.php', + 'file' => 'src/Logging/NullLogger.php', 'uncoveredLines' => [], 'uncoveredLinesIgnored' => [], 'percentage' => 100, ], [ - 'file' => 'src/Analyser.php', + 'file' => 'src/Contracts/Logger.php', 'uncoveredLines' => [], 'uncoveredLinesIgnored' => [], 'percentage' => 100, ], [ - 'file' => 'src/Logging/NullLogger.php', + 'file' => 'src/Error.php', 'uncoveredLines' => [], 'uncoveredLinesIgnored' => [], 'percentage' => 100, ], [ - 'file' => 'src/Logging/JsonLogger.php', + 'file' => 'src/Plugin.php', 'uncoveredLines' => [], 'uncoveredLinesIgnored' => [], 'percentage' => 100, ], [ - 'file' => 'tests/Fixtures/Properties.php', - 'uncoveredLines' => ['pr12'], + 'file' => 'tests/Fixtures/Parameters.php', + 'uncoveredLines' => ['pa12'], 'uncoveredLinesIgnored' => [], 'percentage' => 83, ], [ - 'file' => 'tests/Fixtures/All.php', - 'uncoveredLines' => ['pr12', 'pa14', 'pa14', 'rt14'], + 'file' => 'tests/Fixtures/Properties.php', + 'uncoveredLines' => ['pr12'], 'uncoveredLinesIgnored' => [], - 'percentage' => 0, + 'percentage' => 83, ], [ 'file' => 'tests/Fixtures/ReturnType.php', @@ -119,10 +120,10 @@ public function exit(int $code): never 'percentage' => 67, ], [ - 'file' => 'tests/Fixtures/Parameters.php', - 'uncoveredLines' => ['pa12'], + 'file' => 'tests/Fixtures/All.php', + 'uncoveredLines' => ['pr12', 'pa14', 'pa14', 'rt14'], 'uncoveredLinesIgnored' => [], - 'percentage' => 83, + 'percentage' => 0, ], ], 'total' => 88.07,