diff --git a/src/Fixer/Annotation/RemovePropertyVariableNameDescriptionFixer.php b/src/Fixer/Annotation/RemovePropertyVariableNameDescriptionFixer.php index 5746d291..2a0f48a4 100644 --- a/src/Fixer/Annotation/RemovePropertyVariableNameDescriptionFixer.php +++ b/src/Fixer/Annotation/RemovePropertyVariableNameDescriptionFixer.php @@ -24,6 +24,12 @@ final class RemovePropertyVariableNameDescriptionFixer extends AbstractSymplifyF */ private const ERROR_MESSAGE = 'Remove useless "$variable" from @var tag'; + /** + * @var string + * @see https://regex101.com/r/2PxeKF/1 + */ + private const VAR_REGEX = '#@(?:psalm-|phpstan-)?var#'; + private readonly PropertyNameResolver $propertyNameResolver; public function __construct( @@ -73,11 +79,11 @@ public function fix(SplFileInfo $fileInfo, Tokens $tokens): void $docblockLines = explode("\n", $originalDocContent); foreach ($docblockLines as $key => $docblockLine) { - if (! str_contains($docblockLine, '@var')) { + if (! str_ends_with($docblockLine, ' ' . $propertyName)) { continue; } - if (! str_ends_with($docblockLine, ' ' . $propertyName)) { + if (! preg_match(self::VAR_REGEX, $docblockLine)) { continue; } diff --git a/tests/Fixer/Annotation/RemovePropertyVariableNameDescriptionFixer/Fixture/phpstan_annotation.php.inc b/tests/Fixer/Annotation/RemovePropertyVariableNameDescriptionFixer/Fixture/phpstan_annotation.php.inc new file mode 100644 index 00000000..b0bc5e02 --- /dev/null +++ b/tests/Fixer/Annotation/RemovePropertyVariableNameDescriptionFixer/Fixture/phpstan_annotation.php.inc @@ -0,0 +1,27 @@ + +----- + diff --git a/tests/Fixer/Annotation/RemovePropertyVariableNameDescriptionFixer/Fixture/psalm_annotation.php.inc b/tests/Fixer/Annotation/RemovePropertyVariableNameDescriptionFixer/Fixture/psalm_annotation.php.inc new file mode 100644 index 00000000..ebd996ad --- /dev/null +++ b/tests/Fixer/Annotation/RemovePropertyVariableNameDescriptionFixer/Fixture/psalm_annotation.php.inc @@ -0,0 +1,27 @@ + +----- +