List<Class> inheritance

Source

List<Class> get inheritance {
  List<Class> inheritance = [];
  inheritance.addAll((enclosingElement as Class).inheritanceChain);
  if (!inheritance.contains(definingEnclosingElement) &&
      definingEnclosingElement != null) {
    // TODO(jcollins-g): Why does this happen?
    inheritance.add(definingEnclosingElement);
  }
  // TODO(jcollins-g): Sometimes, we don't get Object added on.  Why?
  if (inheritance.last != package.objectElement &&
      package.objectElement != null) inheritance.add(package.objectElement);
  return inheritance;
}