From 9b4fcae0fe20dcdc889c30c125c1bbd5c0a45d34 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Mon, 11 Aug 2025 19:20:55 +0200 Subject: [PATCH] PHP 8.4 | Squiz/VariableComment: add support for abstract properties If a property uses the `abstract` modifier keyword, the property docblock (providing there is one) would never be found, leading to false positives. Fixed now. Includes tests. --- .../Squiz/Sniffs/Commenting/VariableCommentSniff.php | 1 + .../Squiz/Tests/Commenting/VariableCommentUnitTest.inc | 7 +++++++ .../Tests/Commenting/VariableCommentUnitTest.inc.fixed | 7 +++++++ 3 files changed, 15 insertions(+) diff --git a/src/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php b/src/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php index afb1be03c5..055c41604d 100644 --- a/src/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php +++ b/src/Standards/Squiz/Sniffs/Commenting/VariableCommentSniff.php @@ -36,6 +36,7 @@ public function processMemberVar(File $phpcsFile, $stackPtr) T_STATIC => T_STATIC, T_READONLY => T_READONLY, T_FINAL => T_FINAL, + T_ABSTRACT => T_ABSTRACT, T_WHITESPACE => T_WHITESPACE, T_STRING => T_STRING, T_NS_SEPARATOR => T_NS_SEPARATOR, diff --git a/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc b/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc index bddb2d178a..87f8b567b6 100644 --- a/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc +++ b/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc @@ -486,3 +486,10 @@ class AsymVisibility { */ private(set) protected int $hasDocblockC; } + +abstract class PHP84AbstractProperties { + /** + * @var Type + */ + abstract Type $hasDocblock {get;} +} diff --git a/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc.fixed b/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc.fixed index 2a40e3a070..5c9e263efa 100644 --- a/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc.fixed +++ b/src/Standards/Squiz/Tests/Commenting/VariableCommentUnitTest.inc.fixed @@ -486,3 +486,10 @@ class AsymVisibility { */ private(set) protected int $hasDocblockC; } + +abstract class PHP84AbstractProperties { + /** + * @var Type + */ + abstract Type $hasDocblock {get;} +}