[cfe-commits] r94109 - /cfe/trunk/include/clang/AST/UnresolvedSet.h

John McCall rjmccall at apple.com
Thu Jan 21 14:59:41 PST 2010


Author: rjmccall
Date: Thu Jan 21 16:59:41 2010
New Revision: 94109

URL: http://llvm.org/viewvc/llvm-project?rev=94109&view=rev
Log:
Due to local reversions and re-patching, I accidentally had multiple copies
of the 'payload' in this header.


Modified:
    cfe/trunk/include/clang/AST/UnresolvedSet.h

Modified: cfe/trunk/include/clang/AST/UnresolvedSet.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/UnresolvedSet.h?rev=94109&r1=94108&r2=94109&view=diff

==============================================================================
--- cfe/trunk/include/clang/AST/UnresolvedSet.h (original)
+++ cfe/trunk/include/clang/AST/UnresolvedSet.h Thu Jan 21 16:59:41 2010
@@ -209,154 +209,3 @@
 } // namespace clang
 
 #endif
-//===-- UnresolvedSet.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 defines the UnresolvedSet class, which is used to store
-//  collections of declarations in the AST.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_CLANG_AST_UNRESOLVEDSET_H
-#define LLVM_CLANG_AST_UNRESOLVEDSET_H
-
-#include <iterator>
-#include <llvm/ADT/PointerIntPair.h>
-
-namespace clang {
-
-class NamedDecl;
-
-/// The iterator over UnresolvedSets.  Serves as both the const and
-/// non-const iterator.
-class UnresolvedSetIterator {
-
-  typedef llvm::PointerIntPair<NamedDecl*, 2> DeclEntry;
-  typedef llvm::SmallVectorImpl<DeclEntry> DeclsTy;
-  typedef DeclsTy::const_iterator IteratorTy;
-
-  IteratorTy ir;
-
-  friend class UnresolvedSetImpl;
-  explicit UnresolvedSetIterator(DeclsTy::iterator ir) : ir(ir) {}
-  explicit UnresolvedSetIterator(DeclsTy::const_iterator ir) : ir(ir) {}
-public:
-  UnresolvedSetIterator() {}
-
-  typedef std::iterator_traits<IteratorTy>::difference_type difference_type;
-  typedef NamedDecl *value_type;
-  typedef NamedDecl **pointer;
-  typedef NamedDecl *reference;
-  typedef std::iterator_traits<IteratorTy>::iterator_category iterator_category;
-
-  NamedDecl *getDecl() const { return ir->getPointer(); }
-  AccessSpecifier getAccess() const { return AccessSpecifier(ir->getInt()); }
-
-  NamedDecl *operator*() const { return getDecl(); }
-  
-  UnresolvedSetIterator &operator++() { ++ir; return *this; }
-  UnresolvedSetIterator operator++(int) { return UnresolvedSetIterator(ir++); }
-  UnresolvedSetIterator &operator--() { --ir; return *this; }
-  UnresolvedSetIterator operator--(int) { return UnresolvedSetIterator(ir--); }
-
-  UnresolvedSetIterator &operator+=(difference_type d) {
-    ir += d; return *this;
-  }
-  UnresolvedSetIterator operator+(difference_type d) const {
-    return UnresolvedSetIterator(ir + d);
-  }
-  UnresolvedSetIterator &operator-=(difference_type d) {
-    ir -= d; return *this;
-  }
-  UnresolvedSetIterator operator-(difference_type d) const {
-    return UnresolvedSetIterator(ir - d);
-  }
-  value_type operator[](difference_type d) const { return *(*this + d); }
-
-  difference_type operator-(const UnresolvedSetIterator &o) const {
-    return ir - o.ir;
-  }
-
-  bool operator==(const UnresolvedSetIterator &o) const { return ir == o.ir; }
-  bool operator!=(const UnresolvedSetIterator &o) const { return ir != o.ir; }
-  bool operator<(const UnresolvedSetIterator &o) const { return ir < o.ir; }
-  bool operator<=(const UnresolvedSetIterator &o) const { return ir <= o.ir; }
-  bool operator>=(const UnresolvedSetIterator &o) const { return ir >= o.ir; }
-  bool operator>(const UnresolvedSetIterator &o) const { return ir > o.ir; }
-};
-
-/// UnresolvedSet - A set of unresolved declarations.  This is needed
-/// in a lot of places, but isn't really worth breaking into its own
-/// header right now.
-class UnresolvedSetImpl {
-  typedef UnresolvedSetIterator::DeclEntry DeclEntry;
-  typedef UnresolvedSetIterator::DeclsTy DeclsTy;
-
-  // Don't allow direct construction, and only permit subclassing by
-  // UnresolvedSet.
-private:
-  template <unsigned N> friend class UnresolvedSet;
-  UnresolvedSetImpl() {}
-  UnresolvedSetImpl(const UnresolvedSetImpl &) {}
-
-public:
-  // We don't currently support assignment through this iterator, so we might
-  // as well use the same implementation twice.
-  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(NamedDecl *D) {
-    addDecl(D, AS_none);
-  }
-
-  void addDecl(NamedDecl *D, AccessSpecifier AS) {
-    decls().push_back(DeclEntry(D, AS));
-  }
-
-  bool replace(const NamedDecl* Old, NamedDecl *New) {
-    for (DeclsTy::iterator I = decls().begin(), E = decls().end(); I != E; ++I)
-      if (I->getPointer() == Old)
-        return (I->setPointer(New), true);
-    return false;
-  }
-
-  bool empty() const { return decls().empty(); }
-  unsigned size() const { return decls().size(); }
-
-  void append(iterator I, iterator E) {
-    decls().append(I.ir, E.ir);
-  }
-
-private:
-  // These work because the only permitted subclass is UnresolvedSetImpl
-
-  DeclsTy &decls() {
-    return *reinterpret_cast<DeclsTy*>(this);
-  }
-  const DeclsTy &decls() const {
-    return *reinterpret_cast<const DeclsTy*>(this);
-  }
-};
-
-/// A set of unresolved declarations 
-template <unsigned InlineCapacity> class UnresolvedSet :
-    public UnresolvedSetImpl {
-  llvm::SmallVector<UnresolvedSetImpl::DeclEntry, InlineCapacity> Decls;
-};
-
-  
-} // namespace clang
-
-#endif





More information about the cfe-commits mailing list