getTypeOrNullDefault static method

NopListener? getTypeOrNullDefault(
  1. Type t,
  2. NopListener owner
)

Implementation

static NopListener? getTypeOrNullDefault(Type t, NopListener owner) {
  t = GetTypePointers.getAlias(t);

  NopListener? listener = owner._subNopListeners[t];
  listener ??= owner._attachNopListeners[t];
  if (listener == null) {
    listener = owner.handle?.findTypeListener(t);
    if (owner._dependenceTree.isNotEmpty) {
      listener ??= GetTypePointers.defaultFindNopListener(
          t, owner._dependenceTree.first);
    }
    if (listener != null) {
      owner.addListener(t, listener);
      assert(owner.scope.index >= listener.scope.index);
    }
  }

  return listener;
}