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;
}