resolve method

  1. @override
void resolve({
  1. bool resolveType = true,
})
override

Implementation

@override
void resolve({bool resolveType = true}) {
  if (_functionResolved) return;

  super.resolve();
  if (closure != null && classId != null && klass == null && !isField) {
    klass = closure!.closure!.memberGet(classId!, isRecursive: true);
  }

  if (isExternal) {
    if (klass != null) {
      if (klass!.isExternal) {
        if (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 {
        resolveExternal();
      }
    } else {
      resolveExternal();
    }
  }

  _functionResolved = true;
}