diff --git a/src/Analyser/Ignore/IgnoredError.php b/src/Analyser/Ignore/IgnoredError.php index 8f44d3cb28..565e58795b 100644 --- a/src/Analyser/Ignore/IgnoredError.php +++ b/src/Analyser/Ignore/IgnoredError.php @@ -31,19 +31,19 @@ public static function stringifyPattern($ignoredError): string if (isset($ignoredError['message'])) { $message = $ignoredError['message']; } - if (isset($ignoredError['identifier'])) { - if ($message === '') { - $message = $ignoredError['identifier']; - } else { - $message = sprintf('%s (%s)', $message, $ignoredError['identifier']); - } - } elseif (isset($ignoredError['identifiers'])) { + if (isset($ignoredError['identifiers'])) { $identifierList = implode(', ', $ignoredError['identifiers']); if ($message === '') { $message = $identifierList; } else { $message = sprintf('%s (%s)', $message, $identifierList); } + } elseif (isset($ignoredError['identifier'])) { + if ($message === '') { + $message = $ignoredError['identifier']; + } else { + $message = sprintf('%s (%s)', $message, $ignoredError['identifier']); + } } if ($message === '') { diff --git a/tests/PHPStan/Analyser/AnalyserTest.php b/tests/PHPStan/Analyser/AnalyserTest.php index 297d612c8d..84c8b68d1e 100644 --- a/tests/PHPStan/Analyser/AnalyserTest.php +++ b/tests/PHPStan/Analyser/AnalyserTest.php @@ -98,6 +98,16 @@ public function testFileWithAnIgnoredWrongIdentifier(): void $this->assertSame('Ignored error pattern wrong.identifier was not matched in reported errors.', $result[1]); } + public function testFileWithAnIgnoredWithIdentifierAndIdentifiers(): void + { + $result = $this->runAnalyser([['identifier' => 'some.identifier', 'identifiers' => ['wrong.identifiers']]], true, __DIR__ . '/data/bootstrap-error.php', false); + $this->assertCount(2, $result); + assert($result[0] instanceof Error); + $this->assertSame('Fail.', $result[0]->getMessage()); + assert(is_string($result[1])); + $this->assertSame('Ignored error pattern wrong.identifiers was not matched in reported errors.', $result[1]); + } + public function testFileWithAnIgnoredErrorMessageAndCorrectIdentifier(): void { $result = $this->runAnalyser([['message' => '#Fail\.#', 'identifier' => 'tests.alwaysFail']], true, __DIR__ . '/data/bootstrap-error.php', false);