Skip to content

Commit

Permalink
File::addMessage(): do not ignore Internal errors when scanning sel…
Browse files Browse the repository at this point in the history
…ectively

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.
  • Loading branch information
jrfnl committed Dec 6, 2023
1 parent 55cbb85 commit 188b307
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/Files/File.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 4 additions & 2 deletions src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,10 @@ public function getErrorList()
*/
public function getWarningList()
{
// Warning about incorrect annotation will be shown on line 1 once PR #3915 would be merged.
return [];
return [

Check failure on line 46 in src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.php

View workflow job for this annotation

GitHub Actions / PHP: 7.4

Multi-line array contains a single value; use single-line array instead

Check failure on line 46 in src/Standards/Generic/Tests/PHP/BacktickOperatorUnitTest.php

View workflow job for this annotation

GitHub Actions / PHP: 7.4

Multi-line array contains a single value; use single-line array instead
// Warning about incorrect annotation.
1 => 1,
];

}//end getWarningList()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 188b307

Please sign in to comment.