PHPCSStandards / PHP_CodeSniffer

PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.
BSD 3-Clause "New" or "Revised" License
906 stars 55 forks source link

Generic/DisallowYodaConditions: add code coverage ignore annotation for untestable line #525

Open rodrigoprimo opened 4 months ago

rodrigoprimo commented 4 months ago

Description

This PR adds the @codeCoverageIgnoreStart/@codeCoverageIgnoreEnd PHPUnit annotations to ignore, for the purposes of code coverage, a line that can't be tested. I considered doing this initially when I worked on improving code coverage for this sniff in #465, but I wrongly assumed that was not an option due to the Squiz.Commenting.InlineComment.InvalidEndChar error (which is part of the standard used by PHPCS).

What I failed to notice back then is that I was adding the annotation below a comment, and this triggers the error:

// Shouldn't be possible but may happen if external sniffs are using this method.
// @codeCoverageIgnoreStart

Adding the annotation before the comment as it is done in this PR does not trigger the error because the Squiz.Commenting.InlineComment sniff will only trigger the InvalidEndChar error if the first character of the comment is a letter.

I also considered using return true; // @codeCoverageIgnore, but this is not an option because it triggers Squiz.Commenting.PostStatementComment.Found.

Related issues/external references

Part of #146

Types of changes

PR checklist

rodrigoprimo commented 2 months ago

Here is the issue: https://github.com/PHPCSStandards/PHP_CodeSniffer/issues/560