]> granicus.if.org Git - clang/commitdiff
[C++11] Replacing DeclContext iterators lookups_begin() and lookups_end() with iterat...
authorAaron Ballman <aaron@aaronballman.com>
Fri, 14 Mar 2014 15:28:49 +0000 (15:28 +0000)
committerAaron Ballman <aaron@aaronballman.com>
Fri, 14 Mar 2014 15:28:49 +0000 (15:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203933 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/AST/DeclBase.h
include/clang/AST/DeclLookups.h
lib/Sema/SemaLookup.cpp

index 475ea01ae85170b83eccbac58c48f6e7904ba515..6dc5598a8576937da17740cca27cfba982621434 100644 (file)
@@ -1577,6 +1577,11 @@ public:
   /// of looking up every possible name.
   class all_lookups_iterator;
 
+  typedef llvm::iterator_range<all_lookups_iterator> lookups_range;
+
+  lookups_range lookups() const;
+  lookups_range noload_lookups() const;
+
   /// \brief Iterators over all possible lookups within this context.
   all_lookups_iterator lookups_begin() const;
   all_lookups_iterator lookups_end() const;
index c16975a3307ff3db7025fe6c5053eb86e6d363b7..ce1f1b46bbbb557fc62c790a3732c1ef8afdfc20 100644 (file)
@@ -68,6 +68,10 @@ public:
   }
 };
 
+inline DeclContext::lookups_range DeclContext::lookups() const {
+  return lookups_range(lookups_begin(), lookups_end());
+}
+
 inline DeclContext::all_lookups_iterator DeclContext::lookups_begin() const {
   DeclContext *Primary = const_cast<DeclContext*>(this)->getPrimaryContext();
   if (Primary->hasExternalVisibleStorage())
@@ -86,6 +90,10 @@ inline DeclContext::all_lookups_iterator DeclContext::lookups_end() const {
   return all_lookups_iterator();
 }
 
+inline DeclContext::lookups_range DeclContext::noload_lookups() const {
+  return lookups_range(noload_lookups_begin(), noload_lookups_end());
+}
+
 inline
 DeclContext::all_lookups_iterator DeclContext::noload_lookups_begin() const {
   DeclContext *Primary = const_cast<DeclContext*>(this)->getPrimaryContext();
index c05de38dd80ff555388fca519dea17f8c215777d..77da08f8caa41660a3b0211e1cb8e761bf0bc01c 100644 (file)
@@ -3063,13 +3063,9 @@ static void LookupVisibleDecls(DeclContext *Ctx, LookupResult &Result,
     Result.getSema().ForceDeclarationOfImplicitMembers(Class);
 
   // Enumerate all of the results in this context.
-  for (DeclContext::all_lookups_iterator L = Ctx->lookups_begin(),
-                                      LEnd = Ctx->lookups_end();
-       L != LEnd; ++L) {
-    DeclContext::lookup_result R = *L;
-    for (DeclContext::lookup_iterator I = R.begin(), E = R.end(); I != E;
-         ++I) {
-      if (NamedDecl *ND = dyn_cast<NamedDecl>(*I)) {
+  for (const auto &R : Ctx->lookups()) {
+    for (auto *I : R) {
+      if (NamedDecl *ND = dyn_cast<NamedDecl>(I)) {
         if ((ND = Result.getAcceptableDecl(ND))) {
           Consumer.FoundDecl(ND, Visited.checkHidden(ND), Ctx, InBaseClass);
           Visited.add(ND);