List<Operator> inheritedOperators

Source

List<Operator> get inheritedOperators {
  if (_inheritedOperators != null) return _inheritedOperators;
  Map<String, ExecutableElement> cmap =
      library.inheritanceManager.getMembersInheritedFromClasses(element);
  Map<String, ExecutableElement> imap =
      library.inheritanceManager.getMembersInheritedFromInterfaces(element);
  operators.forEach((operator) {
    cmap.remove(operator.element.name);
    imap.remove(operator.element.name);
  });
  _inheritedOperators = [];
  Map<String, ExecutableElement> values = {};

  bool _isInheritedOperator(ExecutableElement value) {
    if (value != null &&
        value is MethodElement &&
        !value.isPrivate &&
        value.isOperator &&
        value.enclosingElement != null) {
      return true;
    }
    return false;
  }

  for (String key in imap.keys) {
    ExecutableElement value = imap[key];
    if (_isInheritedOperator(value)) {
      values.putIfAbsent(value.name, () => value);
    }
  }

  for (String key in cmap.keys) {
    ExecutableElement value = cmap[key];
    if (_isInheritedOperator(value)) {
      values.putIfAbsent(value.name, () => value);
    }
  }

  for (ExecutableElement value in values.values) {
    if (!package.isDocumented(value.enclosingElement)) {
      Operator o =
          new ModelElement.from(value, library, enclosingClass: this);
      _inheritedOperators.add(o);
      _genPageOperators.add(o);
    } else {
      _inheritedOperators
          .add(new ModelElement.from(value, library, enclosingClass: this));
    }
  }

  _inheritedOperators.sort(byName);

  return _inheritedOperators;
}