nodeFactory = $nodeFactory; } /** * @template TCallLike as MethodCall|New_|StaticCall * * @param TCallLike $callLike * @param array $constantMap * @return TCallLike */ public function replaceArgOnPosition(CallLike $callLike, int $argPosition, string $className, array $constantMap) { $args = $callLike->getArgs(); if (!isset($args[$argPosition])) { return null; } $arg = $args[$argPosition]; if (!$arg->value instanceof String_ && !$arg->value instanceof LNumber) { return null; } $scalar = $arg->value; $constantName = $constantMap[$scalar->value] ?? null; if ($constantName === null) { return null; } $arg->value = $this->nodeFactory->createClassConstFetch($className, $constantName); return $callLike; } }