List<Class> inheritanceChain

Source

List<Class> get inheritanceChain {
  if (_inheritanceChain == null) {
    _inheritanceChain = [];
    _inheritanceChain.add(this);
    _inheritanceChain
        .addAll(mixinsRaw.reversed.map((e) => (e.returnElement as Class)));

    /// Caching should make this recursion a little less painful.
    for (Class c in superChainRaw.map((e) => (e.returnElement as Class))) {
      _inheritanceChain.addAll(c.inheritanceChain);
    }
  }
  return _inheritanceChain.toList(growable: false);
}