From 3cfc530a3e1dd3e56e302140e1dbef3c8e7740b0 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Tue, 31 Oct 2023 18:46:37 +0100 Subject: [PATCH] File::addMessage(): do not ignore `Internal` errors when scanning selectively When either the `--sniffs=...` CLI parameter is used, or the `--exclude=...` CLI parameter, the `File::addMessage()` method bows out when an error is passed which is not for one of the selected sniffs/is for one of the excluded sniffs. Unfortunately, this "bowing out" did not take `Internal` errors into account, meaning those were now hidden, while those should _always_ be thrown as they generally inform the end-user of something seriously wrong (mixed line endings/no code found etc). Fixed now. Includes updating three test files to allow for seeing internal errors. --- src/Files/File.php | 1 + .../Generic/Tests/PHP/BacktickOperatorUnitTest.php | 4 ++-- .../Tests/PHP/DisallowAlternativePHPTagsUnitTest.php | 8 ++++++++ .../Generic/Tests/PHP/DisallowShortOpenTagUnitTest.php | 7 +++++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/Files/File.php b/src/Files/File.php index 03ed0c14aa..984de785bd 100644 --- a/src/Files/File.php +++ b/src/Files/File.php @@ -879,6 +879,7 @@ protected function addMessage($error, $message, $line, $column, $code, $data, $s // Filter out any messages for sniffs that shouldn't have run // due to the use of the --sniffs command line argument. if ($includeAll === false + && $parts[0] !== 'Internal' && ((empty($this->configCache['sniffs']) === false && in_array(strtolower($listenerCode), $this->configCache['sniffs'], true) === false) || (empty($this->configCache['exclude']) === false diff --git a/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.php b/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.php index f3e8cfd537..515a572bbd 100644 --- a/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.php +++ b/src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.php @@ -43,8 +43,8 @@ public function getErrorList() */ public function getWarningList() { - // Warning about incorrect annotation will be shown on line 1 once PR #3915 would be merged. - return []; + // Warning about incorrect annotation. + return [1 => 1]; }//end getWarningList() diff --git a/src/Standards/Generic/Tests/PHP/DisallowAlternativePHPTagsUnitTest.php b/src/Standards/Generic/Tests/PHP/DisallowAlternativePHPTagsUnitTest.php index be242c781d..cef051b481 100644 --- a/src/Standards/Generic/Tests/PHP/DisallowAlternativePHPTagsUnitTest.php +++ b/src/Standards/Generic/Tests/PHP/DisallowAlternativePHPTagsUnitTest.php @@ -56,7 +56,15 @@ public function getErrorList($testFile='') public function getWarningList($testFile='') { if ($testFile === 'DisallowAlternativePHPTagsUnitTest.2.inc') { + // Check if the Internal.NoCodeFound error can be expected on line 1. + $option = (bool) ini_get('short_open_tag'); + $line1 = 1; + if ($option === true) { + $line1 = 0; + } + return [ + 1 => $line1, 2 => 1, 3 => 1, 4 => 1, diff --git a/src/Standards/Generic/Tests/PHP/DisallowShortOpenTagUnitTest.php b/src/Standards/Generic/Tests/PHP/DisallowShortOpenTagUnitTest.php index 3edda9a567..625122984d 100644 --- a/src/Standards/Generic/Tests/PHP/DisallowShortOpenTagUnitTest.php +++ b/src/Standards/Generic/Tests/PHP/DisallowShortOpenTagUnitTest.php @@ -88,7 +88,14 @@ public function getWarningList($testFile='') case 'DisallowShortOpenTagUnitTest.1.inc': return []; case 'DisallowShortOpenTagUnitTest.3.inc': + // Check if the Internal.NoCodeFound error can be expected on line 1. + $option = (bool) ini_get('short_open_tag'); + $line1 = 1; + if ($option === true) { + $line1 = 0; + } return [ + 1 => $line1, 3 => 1, 6 => 1, 11 => 1,