resolve method

  1. @override
void resolve()
override

Implementation

@override
void resolve() {
  super.resolve();
  if (closure != null && classId != null && klass == null && !isField) {
    klass = closure!.closure!.memberGet(classId!, isRecursive: true);
  }
  if (klass != null) {
    if (klass!.isExternal &&
        category != FunctionCategory.getter &&
        category != FunctionCategory.setter) {
      if (isStatic || category == FunctionCategory.constructor) {
        final funcName = id != null ? '$classId.$id' : classId!;
        externalFunc = klass!.externalClass!.memberGet(funcName);
      } else {
        // for instance members, are handled within HTExternalInstance class.
      }
    }
  } else if (isExternal) {
    // free external function & external struct method are handled here.
    final funcName = classId != null ? '$classId.$id' : id!;
    externalFunc = interpreter.fetchExternalFunction(funcName);
  }
}