diff --git a/src/SniffRunner/DataCollector/SniffMetadataCollector.php b/src/SniffRunner/DataCollector/SniffMetadataCollector.php index 11fdd57d064..83f3bcdcd02 100644 --- a/src/SniffRunner/DataCollector/SniffMetadataCollector.php +++ b/src/SniffRunner/DataCollector/SniffMetadataCollector.php @@ -41,6 +41,11 @@ public function reset(): void $this->codingStandardErrors = []; } + public function resetErrors(): void + { + $this->codingStandardErrors = []; + } + public function addCodingStandardError(CodingStandardError $codingStandardError): void { $this->codingStandardErrors[] = $codingStandardError; diff --git a/src/SniffRunner/ValueObject/File.php b/src/SniffRunner/ValueObject/File.php index b38ef28558c..bcdf9e9fe8d 100644 --- a/src/SniffRunner/ValueObject/File.php +++ b/src/SniffRunner/ValueObject/File.php @@ -76,6 +76,10 @@ public function __construct( */ public function process(): void { + // Since sniffs are re-run after they do fixes, we need to clear the old + // errors to avoid duplicates. + $this->sniffMetadataCollector->resetErrors(); + $this->parse(); $this->fixer->startFile($this);