summaryrefslogtreecommitdiffstats
path: root/include/clang/AST/ASTUnresolvedSet.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/AST/ASTUnresolvedSet.h')
-rw-r--r--include/clang/AST/ASTUnresolvedSet.h110
1 files changed, 0 insertions, 110 deletions
diff --git a/include/clang/AST/ASTUnresolvedSet.h b/include/clang/AST/ASTUnresolvedSet.h
deleted file mode 100644
index 9078a0e..0000000
--- a/include/clang/AST/ASTUnresolvedSet.h
+++ /dev/null
@@ -1,110 +0,0 @@
-//===-- ASTUnresolvedSet.h - Unresolved sets of declarations ---*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file provides an UnresolvedSet-like class, whose contents are
-// allocated using the allocator associated with an ASTContext.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_AST_ASTUNRESOLVEDSET_H
-#define LLVM_CLANG_AST_ASTUNRESOLVEDSET_H
-
-#include "clang/AST/ASTVector.h"
-#include "clang/AST/UnresolvedSet.h"
-
-namespace clang {
-
-/// \brief An UnresolvedSet-like class which uses the ASTContext's allocator.
-class ASTUnresolvedSet {
- struct DeclsTy : ASTVector<DeclAccessPair> {
- DeclsTy() {}
- DeclsTy(ASTContext &C, unsigned N) : ASTVector<DeclAccessPair>(C, N) {}
-
- bool isLazy() const { return getTag(); }
- void setLazy(bool Lazy) { setTag(Lazy); }
- };
-
- DeclsTy Decls;
-
- friend class LazyASTUnresolvedSet;
-
-public:
- ASTUnresolvedSet() {}
- ASTUnresolvedSet(ASTContext &C, unsigned N) : Decls(C, N) {}
-
- typedef UnresolvedSetIterator iterator;
- typedef UnresolvedSetIterator const_iterator;
-
- iterator begin() { return iterator(Decls.begin()); }
- iterator end() { return iterator(Decls.end()); }
-
- const_iterator begin() const { return const_iterator(Decls.begin()); }
- const_iterator end() const { return const_iterator(Decls.end()); }
-
- void addDecl(ASTContext &C, NamedDecl *D, AccessSpecifier AS) {
- Decls.push_back(DeclAccessPair::make(D, AS), C);
- }
-
- /// Replaces the given declaration with the new one, once.
- ///
- /// \return true if the set changed
- bool replace(const NamedDecl *Old, NamedDecl *New, AccessSpecifier AS) {
- for (DeclsTy::iterator I = Decls.begin(), E = Decls.end(); I != E; ++I) {
- if (I->getDecl() == Old) {
- I->set(New, AS);
- return true;
- }
- }
- return false;
- }
-
- void erase(unsigned I) { Decls[I] = Decls.pop_back_val(); }
-
- void clear() { Decls.clear(); }
-
- bool empty() const { return Decls.empty(); }
- unsigned size() const { return Decls.size(); }
-
- void reserve(ASTContext &C, unsigned N) {
- Decls.reserve(C, N);
- }
-
- void append(ASTContext &C, iterator I, iterator E) {
- Decls.append(C, I.I, E.I);
- }
-
- DeclAccessPair &operator[](unsigned I) { return Decls[I]; }
- const DeclAccessPair &operator[](unsigned I) const { return Decls[I]; }
-};
-
-/// \brief An UnresolvedSet-like class that might not have been loaded from the
-/// external AST source yet.
-class LazyASTUnresolvedSet {
- mutable ASTUnresolvedSet Impl;
-
- void getFromExternalSource(ASTContext &C) const;
-
-public:
- ASTUnresolvedSet &get(ASTContext &C) const {
- if (Impl.Decls.isLazy())
- getFromExternalSource(C);
- return Impl;
- }
-
- void reserve(ASTContext &C, unsigned N) { Impl.reserve(C, N); }
- void addLazyDecl(ASTContext &C, uintptr_t ID, AccessSpecifier AS) {
- assert(Impl.empty() || Impl.Decls.isLazy());
- Impl.Decls.setLazy(true);
- Impl.addDecl(C, reinterpret_cast<NamedDecl*>(ID << 2), AS);
- }
-};
-
-} // namespace clang
-
-#endif
OpenPOWER on IntegriCloud