Skip to content

Commit 3e3c2bb

Browse files
drewmtondrejmirtes
authored andcommitted
Cover unit enum defaults in analyser integration test
1 parent 8ac2637 commit 3e3c2bb

3 files changed

Lines changed: 34 additions & 4 deletions

File tree

‎tests/PHPStan/Analyser/AnalyserIntegrationTest.php‎

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
use Bug4288\MyClass;
66
use Bug4713\Service;
77
use ExtendingKnownClassWithCheck\Foo;
8+
use PHPStan\DependencyInjection\Container;
9+
use PHPStan\DependencyInjection\ContainerFactory;
10+
use PHPStan\File\FileHelper;
811
use PHPStan\Reflection\InitializerExprContext;
912
use PHPStan\Reflection\InitializerExprTypeResolver;
1013
use PHPStan\Reflection\SignatureMap\SignatureMapProvider;
@@ -19,6 +22,7 @@
1922
use function count;
2023
use function extension_loaded;
2124
use function sprintf;
25+
use function sys_get_temp_dir;
2226
use const PHP_VERSION_ID;
2327

2428
#[CoversNothing]
@@ -1834,16 +1838,32 @@ public function testBug15520(): void
18341838
}
18351839
}
18361840

1841+
public function testBug15380(): void
1842+
{
1843+
$containerFactory = new ContainerFactory(__DIR__);
1844+
$container = $containerFactory->create(sys_get_temp_dir() . '/phpstan-tests', [
1845+
__DIR__ . '/data/bug-15380.neon',
1846+
], []);
1847+
1848+
try {
1849+
$errors = $this->runAnalyse(__DIR__ . '/data/bug-15380.php', null, $container);
1850+
$this->assertNoErrors($errors);
1851+
} finally {
1852+
self::getContainer();
1853+
}
1854+
}
1855+
18371856
/**
18381857
* @param string[]|null $allAnalysedFiles
18391858
* @return list<Error>
18401859
*/
1841-
private function runAnalyse(string $file, ?array $allAnalysedFiles = null): array
1860+
private function runAnalyse(string $file, ?array $allAnalysedFiles = null, ?Container $container = null): array
18421861
{
1843-
$file = $this->getFileHelper()->normalizePath($file);
1862+
$container ??= self::getContainer();
1863+
$file = $container->getByType(FileHelper::class)->normalizePath($file);
18441864

1845-
$analyser = self::getContainer()->getByType(Analyser::class);
1846-
$finalizer = self::getContainer()->getByType(AnalyserResultFinalizer::class);
1865+
$analyser = $container->getByType(Analyser::class);
1866+
$finalizer = $container->getByType(AnalyserResultFinalizer::class);
18471867
$errors = $finalizer->finalize(
18481868
$analyser->analyse([$file], null, null, true, $allAnalysedFiles),
18491869
false,
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
includes:
2+
- ../../../../conf/config.level8.neon
3+
- ../../../../conf/bleedingEdge.neon
4+
- ../../../../src/Testing/TestCase.neon
5+
6+
parameters:
7+
phpVersion: 80500
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?php
2+
3+
echo round(1.5);

0 commit comments

Comments
 (0)