public function fix()
{
$changed = array();
$finder = $this->finder;
$finderIterator = $finder instanceof \IteratorAggregate ? $finder->getIterator() : $finder;
$fileFilteredFileIterator = new FileFilterIterator($finderIterator, $this->eventDispatcher, $this->cacheManager);
$collection = $this->linter->isAsync() ? new FileCachingLintingIterator($fileFilteredFileIterator, $this->linter) : new FileLintingIterator($fileFilteredFileIterator, $this->linter);
foreach ($collection as $file) {
$fixInfo = $this->fixFile($file, $collection->currentLintingResult());
if ($fixInfo) {
$name = $this->getFileRelativePathname($file);
$changed[$name] = $fixInfo;
}
// we do not need Tokens to still caching just fixed file - so clear the cache
Tokens::clearCache();
}
return $changed;
}