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