diff --git a/src/Toolkit/Args.php b/src/Toolkit/Args.php index bdb90e4..34993e6 100644 --- a/src/Toolkit/Args.php +++ b/src/Toolkit/Args.php @@ -67,4 +67,28 @@ public function getCallArgs( fn(Union $type) => new CallArg($arg, new CodeLocation($source, $arg), $type) )); } + + /** + * @return Option + */ + public function getFirstCallArg( + MethodReturnTypeProviderEvent | + FunctionReturnTypeProviderEvent | + AfterFunctionCallAnalysisEvent | + AfterMethodCallAnalysisEvent $from, + ): Option { + return $this->getCallArgs($from)->flatMap(fn(ArrayList $args) => $args->head()); + } + + /** + * @return Option + */ + public function getFirstCallArgType( + MethodReturnTypeProviderEvent | + FunctionReturnTypeProviderEvent | + AfterFunctionCallAnalysisEvent | + AfterMethodCallAnalysisEvent $from, + ): Option { + return $this->getFirstCallArg($from)->map(fn(CallArg $arg) => $arg->type); + } }