From cf3ee681a6bd7b3ab4069a00e299a1a3b3ac35ae Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 12 Jul 2026 23:07:07 +0200 Subject: [PATCH 1/2] Match method-name docblock descriptions containing articles --- ...oveMethodNameDuplicateDescriptionFixer.php | 3 ++ .../Fixture/with_articles.php.inc | 34 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 packages/coding-standard/tests/Fixer/Annotation/RemoveMethodNameDuplicateDescriptionFixer/Fixture/with_articles.php.inc diff --git a/packages/coding-standard/src/Fixer/Annotation/RemoveMethodNameDuplicateDescriptionFixer.php b/packages/coding-standard/src/Fixer/Annotation/RemoveMethodNameDuplicateDescriptionFixer.php index 3b10e8d647..e50bc698e7 100644 --- a/packages/coding-standard/src/Fixer/Annotation/RemoveMethodNameDuplicateDescriptionFixer.php +++ b/packages/coding-standard/src/Fixer/Annotation/RemoveMethodNameDuplicateDescriptionFixer.php @@ -70,6 +70,9 @@ public function fix(SplFileInfo $fileInfo, Tokens $tokens): void $docblockLines = explode("\n", $originalDocContent); foreach ($docblockLines as $key => $docblockLine) { + // drop articles, so "Get the API helper" still duplicates getApiHelper() + $docblockLine = Regex::replace($docblockLine, '#\b(?:a|an|the)\b#i', ''); + $spacelessDocblockLine = Regex::replace($docblockLine, '#[\s\n]+#', ''); // ignore trailing sentence punctuation, e.g. "Set name." duplicates setName() diff --git a/packages/coding-standard/tests/Fixer/Annotation/RemoveMethodNameDuplicateDescriptionFixer/Fixture/with_articles.php.inc b/packages/coding-standard/tests/Fixer/Annotation/RemoveMethodNameDuplicateDescriptionFixer/Fixture/with_articles.php.inc new file mode 100644 index 0000000000..8ad42dda78 --- /dev/null +++ b/packages/coding-standard/tests/Fixer/Annotation/RemoveMethodNameDuplicateDescriptionFixer/Fixture/with_articles.php.inc @@ -0,0 +1,34 @@ + +----- + From 48c13c4d66b41c16cf5a84f1d809e28a313f0c86 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Sun, 12 Jul 2026 23:20:16 +0200 Subject: [PATCH 2/2] Skip env-dependent Rector false positive on GitlabIssue array-shape alias --- rector.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rector.php b/rector.php index 8ccac0eba2..9fe50ca25b 100644 --- a/rector.php +++ b/rector.php @@ -3,6 +3,7 @@ declare(strict_types=1); use Rector\Config\RectorConfig; +use Rector\DeadCode\Rector\ClassMethod\RemoveReturnTagIncompatibleWithNativeTypeRector; use Rector\DeadCode\Rector\ConstFetch\RemovePhpVersionIdCheckRector; use Rector\Php84\Rector\Class_\DeprecatedAnnotationToDeprecatedAttributeRector; @@ -30,6 +31,12 @@ // conditional checks RemovePhpVersionIdCheckRector::class, + // rector <= 2.5.6 misreads the @phpstan-type GitlabIssue array-shape alias + // as incompatible with the native "array" return type and strips the tag + RemoveReturnTagIncompatibleWithNativeTypeRector::class => [ + __DIR__ . '/src/Console/Output/GitlabOutputFormatter.php', + ], + DeprecatedAnnotationToDeprecatedAttributeRector::class => [ // avoid runtime reporting in output, only for the user __DIR__ . '/src/ValueObject/Option.php',