All notable changes are documented in this file using the Keep a CHANGELOG principles.
CodeUnitFindingVisitor does not support DNF types?v=%s URLs in the HTML report to avoid cache issuesthrow as executablereturn with multiline constant expression must only contain the last lineis_file() callsopen_basedir\r (CR, 0x0d) EOL characters are not handled correctlyreturn [ is not recognized as executablematch keyword were not recognized as executable correctlySebastianBergmann\CodeCoverage\ProcessedCodeCoverageData to SebastianBergmann\CodeCoverage\Data\ProcessedCodeCoverageData (this class is marked as @internal and not covered by the backward compatibility promise, but it is (still) used directly by PHPUnit)SebastianBergmann\CodeCoverage\RawCodeCoverageData to SebastianBergmann\CodeCoverage\Data\RawCodeCoverageData (this class is marked as @internal and not covered by the backward compatibility promise, but it is (still) used directly by PHPUnit)ArrayDim, Cast, and MethodCall nodes are now considered when determining whether a line of code is executable or notfilemtime() to determine cache hit/missdeclare(strict_types=1) marked as uncoveredCoveredFileAnalyser and UncoveredFileAnalyser have been combined to FileAnalyserCodeUnitFindingVisitor::enterNode() so that Symfony's DebugClassLoader does not trigger a deprecation warningCodeUnitFindingVisitor does not handle enum type introduced in PHP 8.1XDEBUG_MODE environment variable is not handled correctlyXDEBUG_MODE environment variablenikic/php-parserSebastianBergmann\CodeCoverage\Exception now correctly extends \ThrowableT_FN constant is used on PHP 7.3 where it is not availableSebastianBergmann\CodeCoverage\Driver\Selector::forLineCoverage() and SebastianBergmann\CodeCoverage\Driver\Selector::forLineAndPathCoverage() have been addedSebastianBergmann\CodeCoverage\Driver\Driver::forLineCoverage() and SebastianBergmann\CodeCoverage\Driver\Driver::forLineAndPathCoverage() are marked as internalSebastianBergmann\CodeCoverage\Driver\Driver::forLineCoverage() and SebastianBergmann\CodeCoverage\Driver\Driver::forLineAndPathCoverage() are now deprecatedPHP Warning: Use of undefined constant T_MATCHSebastianBergmann\CodeCoverage::start() is called for the first time and processUncoveredFiles is set to trueSebastianBergmann\CodeCoverage::start() is called for the first time and processUncoveredFiles is set to true::class constant are not coveredSebastianBergmann\CodeCoverage::cacheDirectory() method for querying where the cache writes its filesSebastianBergmann\CodeCoverage::cacheStaticAnalysis(string $cacheDirectory) method for enabling the cache; it will write its files to $directorySebastianBergmann\CodeCoverage::doNotCacheStaticAnalysis method for disabling the cacheSebastianBergmann\CodeCoverage::cachesStaticAnalysis() method for querying whether the cache is enabledSebastianBergmann\CodeCoverage\StaticAnalysis\CacheWarmer::warmCache() method for warming the cacheSebastianBergmann\CodeCoverage\Driver\Driver::forLineCoverage() for selecting the best available driver for line coverageSebastianBergmann\CodeCoverage\Driver\Driver::forLineAndPathCoverage() for selecting the best available driver for path coverageSebastianBergmann\CodeCoverage\Filter::addDirectoryToWhitelist() has been renamed to SebastianBergmann\CodeCoverage\Filter::includeDirectory()SebastianBergmann\CodeCoverage\Filter::addFilesToWhitelist() has been renamed to SebastianBergmann\CodeCoverage\Filter::includeFiles()SebastianBergmann\CodeCoverage\Filter::addFileToWhitelist() has been renamed to SebastianBergmann\CodeCoverage\Filter::includeFile()SebastianBergmann\CodeCoverage\Filter::removeDirectoryFromWhitelist() has been renamed to SebastianBergmann\CodeCoverage\Filter::excludeDirectory()SebastianBergmann\CodeCoverage\Filter::removeFileFromWhitelist() has been renamed to SebastianBergmann\CodeCoverage\Filter::excludeFile()SebastianBergmann\CodeCoverage\Filter::isFiltered() has been renamed to SebastianBergmann\CodeCoverage\Filter::isExcluded()SebastianBergmann\CodeCoverage\Filter::getWhitelist() has been renamed to SebastianBergmann\CodeCoverage\Filter::files()CodeCoverage::__construct() are no longer optionalSebastianBergmann\CodeCoverage\CodeCoverage::setCacheTokens() and SebastianBergmann\CodeCoverage\CodeCoverage::getCacheTokens() have been removedSebastianBergmann\CodeCoverage\CodeCoverage::setCheckForUnintentionallyCoveredCode() has been removed, please use SebastianBergmann\CodeCoverage\CodeCoverage::enableCheckForUnintentionallyCoveredCode() or SebastianBergmann\CodeCoverage\CodeCoverage::disableCheckForUnintentionallyCoveredCode() insteadSebastianBergmann\CodeCoverage\CodeCoverage::setSubclassesExcludedFromUnintentionallyCoveredCodeCheck() has been removed, please use SebastianBergmann\CodeCoverage\CodeCoverage::excludeSubclassesOfThisClassFromUnintentionallyCoveredCodeCheck() insteadSebastianBergmann\CodeCoverage\CodeCoverage::setAddUncoveredFilesFromWhitelist() has been removed, please use SebastianBergmann\CodeCoverage\CodeCoverage::includeUncoveredFiles() or SebastianBergmann\CodeCoverage\CodeCoverage::excludeUncoveredFiles() insteadSebastianBergmann\CodeCoverage\CodeCoverage::setProcessUncoveredFiles() has been removed, please use SebastianBergmann\CodeCoverage\CodeCoverage::processUncoveredFiles() or SebastianBergmann\CodeCoverage\CodeCoverage::doNotProcessUncoveredFiles() insteadSebastianBergmann\CodeCoverage\CodeCoverage::setIgnoreDeprecatedCode() has been removed, please use SebastianBergmann\CodeCoverage\CodeCoverage::ignoreDeprecatedCode() or SebastianBergmann\CodeCoverage\CodeCoverage::doNotIgnoreDeprecatedCode() insteadSebastianBergmann\CodeCoverage\CodeCoverage::setDisableIgnoredLines() has been removed, please use SebastianBergmann\CodeCoverage\CodeCoverage::enableAnnotationsForIgnoringCode() or SebastianBergmann\CodeCoverage\CodeCoverage::disableAnnotationsForIgnoringCode() insteadSebastianBergmann\CodeCoverage\CodeCoverage::setCheckForMissingCoversAnnotation() has been removedSebastianBergmann\CodeCoverage\CodeCoverage::setCheckForUnexecutedCoveredCode() has been removedSebastianBergmann\CodeCoverage\CodeCoverage::setForceCoversAnnotation() has been removedSebastianBergmann\CodeCoverage\Filter::hasWhitelist() has been removed, please use SebastianBergmann\CodeCoverage\Filter::isEmpty() insteadSebastianBergmann\CodeCoverage\Filter::getWhitelistedFiles() has been removedSebastianBergmann\CodeCoverage\Filter::setWhitelistedFiles() has been removed$_SERVER['REQUEST_TIME'] because the test(ed) code might unset itcomposer.json from ^7.2 to >=7.2 to allow installation of this version of this library on PHP 8. However, this version of this library does not work on PHP 8. PHPUnit 8.5, which uses this version of this library, does not call into this library and instead shows a message that code coverage functionality is not available for PHPUnit 8.5 on PHP 8.XDEBUG_MODE environment variableuse function statements are not ignoredTypeError when directory name is a numberTypeError in PHP reporterTypeError when whitelisted file does not exist