void ClassScope::setStaticDynamic(AnalysisResultConstPtr ar) { for (FunctionScopePtrVec::const_iterator iter = m_functionsVec.begin(); iter != m_functionsVec.end(); ++iter) { FunctionScopePtr fs = *iter; if (fs->isStatic()) fs->setDynamic(); } if (!m_parent.empty()) { if (derivesFromRedeclaring() == Derivation::Redeclaring) { const ClassScopePtrVec &parents = ar->findRedeclaredClasses(m_parent); for (ClassScopePtr cl: parents) { cl->setStaticDynamic(ar); } } else { ClassScopePtr parent = ar->findClass(m_parent); if (parent) { parent->setStaticDynamic(ar); } } } }
void ClassScope::setDynamic(AnalysisResultConstPtr ar, const std::string &name) { StringToFunctionScopePtrMap::const_iterator iter = m_functions.find(name); if (iter != m_functions.end()) { FunctionScopePtr fs = iter->second; fs->setDynamic(); } else if (!m_parent.empty()) { if (derivesFromRedeclaring() == Derivation::Redeclaring) { const ClassScopePtrVec &parents = ar->findRedeclaredClasses(m_parent); for (ClassScopePtr cl: parents) { cl->setDynamic(ar, name); } } else { ClassScopePtr parent = ar->findClass(m_parent); if (parent) { parent->setDynamic(ar, name); } } } }