argsAnalyzer = $argsAnalyzer; } public function getRuleDefinition() : RuleDefinition { return new RuleDefinition('unwrap sprintf() with one argument', [new CodeSample(<<<'CODE_SAMPLE' echo sprintf('value'); CODE_SAMPLE , <<<'CODE_SAMPLE' echo 'value'; CODE_SAMPLE )]); } /** * @return array> */ public function getNodeTypes() : array { return [FuncCall::class]; } /** * @param FuncCall $node */ public function refactor(Node $node) : ?Node { if (!$this->isName($node, 'sprintf')) { return null; } if (\count($node->args) > 1) { return null; } if (!$this->argsAnalyzer->isArgInstanceInArgsPosition($node->args, 0)) { return null; } /** @var Arg $firstArg */ $firstArg = $node->args[0]; if ($firstArg->unpack) { return null; } return $firstArg->value; } }