void DeclarationBuilder::visitEnumDeclaration(IEnumDeclaration *node) { DUChainWriteLocker lock; Declaration *e = openDeclaration<Declaration>(node->getName(), node); e->setKind(Declaration::Type); lock.unlock(); DeclarationBuilderBase::visitEnumDeclaration(node); lock.lock(); e->setInternalContext(lastContext()); //e->setAbstractType(lastType()); closeDeclaration(); }
void DeclarationBuilder::visitModule(IModule *node) { if(node->getModuleDeclaration()) { if(node->getModuleDeclaration()->getComment()) setComment(node->getModuleDeclaration()->getComment()); DUChainWriteLocker lock; auto m_thisPackage = identifierForNode(node->getModuleDeclaration()->getModuleName()); KDevelop::RangeInRevision range = editorFindRange(node->getModuleDeclaration()->getModuleName(), node->getModuleDeclaration()->getModuleName()); Declaration *packageDeclaration = openDeclaration<Declaration>(m_thisPackage, range); packageDeclaration->setKind(Declaration::Namespace); openContext(node, editorFindRange(node, 0), DUContext::Namespace, m_thisPackage); packageDeclaration->setInternalContext(currentContext()); lock.unlock(); DeclarationBuilderBase::visitModule(node); closeContext(); closeDeclaration(); topContext()->updateImportsCache(); } }