varTagRemover = $varTagRemover; $this->phpDocInfoFactory = $phpDocInfoFactory; } public function getRuleDefinition() : RuleDefinition { return new RuleDefinition('Remove unused @var annotation for properties', [new CodeSample(<<<'CODE_SAMPLE' final class SomeClass { /** * @var string */ public string $name = 'name'; } CODE_SAMPLE , <<<'CODE_SAMPLE' final class SomeClass { public string $name = 'name'; } CODE_SAMPLE )]); } /** * @return array> */ public function getNodeTypes() : array { return [Property::class]; } /** * @param Property $node */ public function refactor(Node $node) : ?Node { $phpDocInfo = $this->phpDocInfoFactory->createFromNodeOrEmpty($node); $hasChanged = $this->varTagRemover->removeVarTagIfUseless($phpDocInfo, $node); if (!$hasChanged) { return null; } return $node; } }