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;
}