/** * Collects the subclasses and current mro of this type in mroCollector. If this type has * subclasses C and D, and D has a subclass E current mroCollector will equal [C, C.__mro__, D, * D.__mro__, E, E.__mro__] after this call. */ private void mro_subclasses(List<Object> mroCollector) { for (WeakReference<PyType> ref : subclasses) { PyType subtype = ref.get(); if (subtype == null) { continue; } mroCollector.add(subtype); mroCollector.add(subtype.mro); subtype.mro_internal(); subtype.mro_subclasses(mroCollector); } }
base = newBase; mro_internal(); mro_subclasses(savedSubMros); for (PyObject saved : savedBases) { if (saved instanceof PyType) {