squizlabs / PHP_CodeSniffer

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

Squiz.Commenting.FunctionCommentThrowTag.WrongNumber not triggered if no throw statement in function body #3899

Open smileBeda opened 1 year ago

smileBeda commented 1 year ago

Bug Description

Squiz.Commenting.FunctionCommentThrowTag.WrongNumber is only triggered if at least one throw is present in the function body, and a wrong number of @throws docbloc statements is present. It is not triggered, if a wrong number of @throws docbloc statements is present but no throw statement is present in the function body.

Minimal Code Snippet

/**
 * Short Description
 *
 * @throws \AnException Comment.
 * @throws \AnotherException Comment.
 */
function check_it() {

    throw new \AnException(
        //do things
    );

}

Above will trigger the error.

However, if you do this, the error is not triggered:

/**
 * Short Description
 *
 * @throws \AnException Comment.
 * @throws \AnotherException Comment.
 */
function check_it() {

}

Error Code

Squiz.Commenting.FunctionCommentThrowTag.WrongNumber

Environment

PHP 8, WPCS 3.x, all dependencies updated to latest. No dev.