From bb8890472a7792f4254498a921a657e05df20ad1 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Wed, 9 Apr 2025 07:49:48 +0200 Subject: [PATCH] Squiz/DocCommentAlignment: add support for final classes and final properties If a class or property used the `final` keyword, the docblock would not be recognized as one which needed examining. Fixed now. Includes tests. --- .../Sniffs/Commenting/DocCommentAlignmentSniff.php | 1 + .../Commenting/DocCommentAlignmentUnitTest.inc | 13 +++++++++++++ .../DocCommentAlignmentUnitTest.inc.fixed | 13 +++++++++++++ .../Commenting/DocCommentAlignmentUnitTest.php | 7 +++++++ 4 files changed, 34 insertions(+) diff --git a/src/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php b/src/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php index 453ff89c16..332de5660b 100644 --- a/src/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php +++ b/src/Standards/Squiz/Sniffs/Commenting/DocCommentAlignmentSniff.php @@ -72,6 +72,7 @@ public function process(File $phpcsFile, $stackPtr) T_PROTECTED => true, T_STATIC => true, T_ABSTRACT => true, + T_FINAL => true, T_PROPERTY => true, T_OBJECT => true, T_PROTOTYPE => true, diff --git a/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc b/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc index d95acd2ce1..af7614efda 100644 --- a/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc +++ b/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc @@ -101,3 +101,16 @@ enum Suits: string * Example with no errors. **************************************************************************/ function example() {} + +/** + * Some info about the class here. + */ +final class FinalClassWithFinalProp +{ + /** + *Some info about the property here. + * + * @var int + */ + final $property = 10; +} diff --git a/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc.fixed b/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc.fixed index ea6488a02b..9f664922f4 100644 --- a/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc.fixed +++ b/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.inc.fixed @@ -101,3 +101,16 @@ enum Suits: string * Example with no errors. **************************************************************************/ function example() {} + +/** + * Some info about the class here. + */ +final class FinalClassWithFinalProp +{ + /** + * Some info about the property here. + * + * @var int + */ + final $property = 10; +} diff --git a/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.php b/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.php index a1ab9c3278..eb9d7543e6 100644 --- a/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.php +++ b/src/Standards/Squiz/Tests/Commenting/DocCommentAlignmentUnitTest.php @@ -56,6 +56,13 @@ public function getErrorList($testFile='') $errors[91] = 1; $errors[95] = 1; $errors[96] = 1; + + $errors[106] = 1; + $errors[107] = 1; + $errors[111] = 2; + $errors[112] = 1; + $errors[113] = 1; + $errors[114] = 1; } return $errors;