Skip to content

Commit

Permalink
Merge branch '9.2'
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastianbergmann committed Feb 17, 2022
2 parents 8c95e20 + fdcd42a commit 4d416a2
Show file tree
Hide file tree
Showing 31 changed files with 362 additions and 439 deletions.
11 changes: 7 additions & 4 deletions .psalm/baseline.xml
Expand Up @@ -166,22 +166,25 @@
<code>createElementNS</code>
</PossiblyNullReference>
</file>
<file src="src/StaticAnalysis/CachingCoveredFileAnalyser.php">
<NullableReturnStatement occurrences="5">
<file src="src/StaticAnalysis/CachingFileAnalyser.php">
<NullableReturnStatement occurrences="6">
<code>$this-&gt;cache[$filename]['classesIn']</code>
<code>$this-&gt;cache[$filename]['executableLinesIn']</code>
<code>$this-&gt;cache[$filename]['functionsIn']</code>
<code>$this-&gt;cache[$filename]['ignoredLinesFor']</code>
<code>$this-&gt;cache[$filename]['linesOfCodeFor']</code>
<code>$this-&gt;cache[$filename]['traitsIn']</code>
</NullableReturnStatement>
<PossiblyNullArrayAccess occurrences="5">
<PossiblyNullArrayAccess occurrences="6">
<code>$this-&gt;cache[$filename]['classesIn']</code>
<code>$this-&gt;cache[$filename]['executableLinesIn']</code>
<code>$this-&gt;cache[$filename]['functionsIn']</code>
<code>$this-&gt;cache[$filename]['ignoredLinesFor']</code>
<code>$this-&gt;cache[$filename]['linesOfCodeFor']</code>
<code>$this-&gt;cache[$filename]['traitsIn']</code>
</PossiblyNullArrayAccess>
<PossiblyUndefinedArrayOffset occurrences="5">
<PossiblyUndefinedArrayOffset occurrences="6">
<code>$this-&gt;cache[$filename]</code>
<code>$this-&gt;cache[$filename]</code>
<code>$this-&gt;cache[$filename]</code>
<code>$this-&gt;cache[$filename]</code>
Expand Down
4 changes: 4 additions & 0 deletions ChangeLog.md
Expand Up @@ -16,6 +16,10 @@ All notable changes are documented in this file using the [Keep a CHANGELOG](htt

## [9.2.11] - 2022-MM-DD

### Changed

* `CoveredFileAnalyser` and `UncoveredFileAnalyser` have been combined to `FileAnalyser`

### Fixed

* [#889](https://github.com/sebastianbergmann/php-code-coverage/issues/889): Code Coverage depends on autoload order
Expand Down
53 changes: 15 additions & 38 deletions src/CodeCoverage.php
Expand Up @@ -28,12 +28,9 @@
use SebastianBergmann\CodeCoverage\Driver\Driver;
use SebastianBergmann\CodeCoverage\Node\Builder;
use SebastianBergmann\CodeCoverage\Node\Directory;
use SebastianBergmann\CodeCoverage\StaticAnalysis\CachingCoveredFileAnalyser;
use SebastianBergmann\CodeCoverage\StaticAnalysis\CachingUncoveredFileAnalyser;
use SebastianBergmann\CodeCoverage\StaticAnalysis\CoveredFileAnalyser;
use SebastianBergmann\CodeCoverage\StaticAnalysis\ParsingCoveredFileAnalyser;
use SebastianBergmann\CodeCoverage\StaticAnalysis\ParsingUncoveredFileAnalyser;
use SebastianBergmann\CodeCoverage\StaticAnalysis\UncoveredFileAnalyser;
use SebastianBergmann\CodeCoverage\StaticAnalysis\CachingFileAnalyser;
use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser;
use SebastianBergmann\CodeCoverage\StaticAnalysis\ParsingFileAnalyser;
use SebastianBergmann\CodeUnitReverseLookup\Wizard;

/**
Expand Down Expand Up @@ -68,9 +65,7 @@ final class CodeCoverage
*/
private array $parentClassesExcludedFromUnintentionallyCoveredCodeCheck = [];

private ?CoveredFileAnalyser $coveredFileAnalyser = null;

private ?UncoveredFileAnalyser $uncoveredFileAnalyser = null;
private ?FileAnalyser $analyser = null;

private ?string $cacheDirectory = null;

Expand All @@ -87,7 +82,7 @@ public function __construct(Driver $driver, Filter $filter)
*/
public function getReport(): Directory
{
return (new Builder($this->coveredFileAnalyser()))->build($this);
return (new Builder($this->analyser()))->build($this);
}

/**
Expand Down Expand Up @@ -404,7 +399,7 @@ private function applyExecutableLinesFilter(RawCodeCoverageData $data): void
foreach (array_keys($data->lineCoverage()) as $filename) {
$data->keepLineCoverageDataOnlyForLines(
$filename,
$this->uncoveredFileAnalyser()->executableLinesIn($filename)
$this->analyser()->executableLinesIn($filename)
);
}
}
Expand All @@ -418,7 +413,7 @@ private function applyIgnoredLinesFilter(RawCodeCoverageData $data): void

$data->removeCoverageDataForLines(
$filename,
$this->coveredFileAnalyser()->ignoredLinesFor($filename)
$this->analyser()->ignoredLinesFor($filename)
);
}
}
Expand All @@ -438,7 +433,7 @@ private function addUncoveredFilesFromFilter(): void
$this->append(
RawCodeCoverageData::fromUncoveredFile(
$uncoveredFile,
$this->uncoveredFileAnalyser()
$this->analyser()
),
self::UNCOVERED_FILES
);
Expand Down Expand Up @@ -552,42 +547,24 @@ private function processUnintentionallyCoveredUnits(array $unintentionallyCovere
return array_values($unintentionallyCoveredUnits);
}

private function coveredFileAnalyser(): CoveredFileAnalyser
private function analyser(): FileAnalyser
{
if ($this->coveredFileAnalyser !== null) {
return $this->coveredFileAnalyser;
if ($this->analyser !== null) {
return $this->analyser;
}

$this->coveredFileAnalyser = new ParsingCoveredFileAnalyser(
$this->analyser = new ParsingFileAnalyser(
$this->useAnnotationsForIgnoringCode,
$this->ignoreDeprecatedCode
);

if ($this->cachesStaticAnalysis()) {
$this->coveredFileAnalyser = new CachingCoveredFileAnalyser(
$this->cacheDirectory,
$this->coveredFileAnalyser
);
}

return $this->coveredFileAnalyser;
}

private function uncoveredFileAnalyser(): UncoveredFileAnalyser
{
if ($this->uncoveredFileAnalyser !== null) {
return $this->uncoveredFileAnalyser;
}

$this->uncoveredFileAnalyser = new ParsingUncoveredFileAnalyser;

if ($this->cachesStaticAnalysis()) {
$this->uncoveredFileAnalyser = new CachingUncoveredFileAnalyser(
$this->analyser = new CachingFileAnalyser(
$this->cacheDirectory,
$this->uncoveredFileAnalyser
$this->analyser
);
}

return $this->uncoveredFileAnalyser;
return $this->analyser;
}
}
16 changes: 8 additions & 8 deletions src/Node/Builder.php
Expand Up @@ -21,18 +21,18 @@
use function substr;
use SebastianBergmann\CodeCoverage\CodeCoverage;
use SebastianBergmann\CodeCoverage\ProcessedCodeCoverageData;
use SebastianBergmann\CodeCoverage\StaticAnalysis\CoveredFileAnalyser;
use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser;

/**
* @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage
*/
final class Builder
{
private CoveredFileAnalyser $coveredFileAnalyser;
private FileAnalyser $analyser;

public function __construct(CoveredFileAnalyser $coveredFileAnalyser)
public function __construct(FileAnalyser $analyser)
{
$this->coveredFileAnalyser = $coveredFileAnalyser;
$this->analyser = $analyser;
}

public function build(CodeCoverage $coverage): Directory
Expand Down Expand Up @@ -70,10 +70,10 @@ private function addItems(Directory $root, array $items, array $tests): void
$value['lineCoverage'],
$value['functionCoverage'],
$tests,
$this->coveredFileAnalyser->classesIn($filename),
$this->coveredFileAnalyser->traitsIn($filename),
$this->coveredFileAnalyser->functionsIn($filename),
$this->coveredFileAnalyser->linesOfCodeFor($filename)
$this->analyser->classesIn($filename),
$this->analyser->traitsIn($filename),
$this->analyser->functionsIn($filename),
$this->analyser->linesOfCodeFor($filename)
)
);
}
Expand Down
6 changes: 3 additions & 3 deletions src/RawCodeCoverageData.php
Expand Up @@ -19,7 +19,7 @@
use function in_array;
use function range;
use SebastianBergmann\CodeCoverage\Driver\Driver;
use SebastianBergmann\CodeCoverage\StaticAnalysis\UncoveredFileAnalyser;
use SebastianBergmann\CodeCoverage\StaticAnalysis\FileAnalyser;

/**
* @internal This class is not covered by the backward compatibility promise for phpunit/php-code-coverage
Expand Down Expand Up @@ -59,11 +59,11 @@ public static function fromXdebugWithPathCoverage(array $rawCoverage): self
return new self($lineCoverage, $functionCoverage);
}

public static function fromUncoveredFile(string $filename, UncoveredFileAnalyser $uncoveredFileAnalyser): self
public static function fromUncoveredFile(string $filename, FileAnalyser $analyser): self
{
$lineCoverage = [];

foreach ($uncoveredFileAnalyser->executableLinesIn($filename) as $line) {
foreach ($analyser->executableLinesIn($filename) as $line) {
$lineCoverage[$line] = Driver::LINE_NOT_EXECUTED;
}

Expand Down
82 changes: 0 additions & 82 deletions src/StaticAnalysis/Cache.php

This file was deleted.

14 changes: 3 additions & 11 deletions src/StaticAnalysis/CacheWarmer.php
Expand Up @@ -15,24 +15,16 @@ final class CacheWarmer
{
public function warmCache(string $cacheDirectory, bool $useAnnotationsForIgnoringCode, bool $ignoreDeprecatedCode, Filter $filter): void
{
$coveredFileAnalyser = new CachingCoveredFileAnalyser(
$analyser = new CachingFileAnalyser(
$cacheDirectory,
new ParsingCoveredFileAnalyser(
new ParsingFileAnalyser(
$useAnnotationsForIgnoringCode,
$ignoreDeprecatedCode
)
);

$uncoveredFileAnalyser = new CachingUncoveredFileAnalyser(
$cacheDirectory,
new ParsingUncoveredFileAnalyser
);

foreach ($filter->files() as $file) {
$coveredFileAnalyser->process($file);

/* @noinspection UnusedFunctionResultInspection */
$uncoveredFileAnalyser->executableLinesIn($file);
$analyser->process($file);
}
}
}

0 comments on commit 4d416a2

Please sign in to comment.