argsAnalyzer = $argsAnalyzer; } public function createFromFuncCall(FuncCall $funcCall, bool $isPositive) : ?StrStartsWith { if (!$this->argsAnalyzer->isArgsInstanceInArgsPositions($funcCall->args, [0, 1])) { return null; } /** @var Arg $firstArg */ $firstArg = $funcCall->args[0]; $haystack = $firstArg->value; /** @var Arg $secondArg */ $secondArg = $funcCall->args[1]; $needle = $secondArg->value; return new StrStartsWith($funcCall, $haystack, $needle, $isPositive); } }