tryExecuteClassFunction method

Future<ASTValue?> tryExecuteClassFunction(
  1. String namespace,
  2. String className,
  3. String functionName, [
  4. List? positionalParameters,
])

Tries to execute a class function with variations of positionalParameters.

Implementation

Future<ASTValue?> tryExecuteClassFunction(
  String namespace,
  String className,
  String functionName, [
  List? positionalParameters,
]) async {
  positionalParameters ??= [];

  if (await getClassMethod(
        namespace,
        className,
        functionName,
        positionalParameters,
      ) !=
      null) {
    return await executeClassMethod(
      namespace,
      className,
      functionName,
      positionalParameters: positionalParameters,
    );
  } else if (await getClassMethod(namespace, className, functionName, [
        positionalParameters,
      ]) !=
      null) {
    return await executeClassMethod(
      namespace,
      className,
      functionName,
      positionalParameters: [positionalParameters],
    );
  } else if (await getClassMethod(namespace, className, functionName, [
        ASTTypeArray.instanceOfString,
      ]) !=
      null) {
    return await executeClassMethod(
      namespace,
      className,
      functionName,
      positionalParameters: [positionalParameters.map((e) => '$e').toList()],
    );
  } else if (await getClassMethod(namespace, className, functionName, [
        ASTTypeArray.instanceOfDynamic,
      ]) !=
      null) {
    return await executeClassMethod(
      namespace,
      className,
      functionName,
      positionalParameters: [positionalParameters],
    );
  }
  return null;
}