void ClassStatement::getAllParents(AnalysisResultPtr ar, std::vector<std::string> &names) { if (!m_parent.empty()) { ClassScopePtr cls = ar->findClass(m_parent); if (cls) { if (!cls->isRedeclaring()) { cls->getAllParents(ar, names); } names.push_back(m_parent); } } if (m_base) { vector<string> bases; m_base->getStrings(bases); for (unsigned int i = 0; i < bases.size(); i++) { ClassScopePtr cls = ar->findClass(bases[i]); if (cls) { if (!cls->isRedeclaring()) { cls->getAllParents(ar, names); } names.push_back(bases[i]); } } } }
void InterfaceStatement::getAllParents(AnalysisResultConstPtr ar, std::vector<std::string> &names) { vector<string> bases; if (m_base) { m_base->getStrings(bases); for (unsigned int i = 0; i < bases.size(); i++) { ClassScopePtr cls = ar->findClass(bases[i]); if (cls) { cls->getAllParents(ar, names); names.push_back(cls->getOriginalName()); } } } }