]> granicus.if.org Git - clang/commitdiff
simplify some code using 'continue' and the new 'isInIdentifierNamespace' predicate.
authorChris Lattner <sabre@nondot.org>
Tue, 6 Jan 2009 07:20:03 +0000 (07:20 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 6 Jan 2009 07:20:03 +0000 (07:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61799 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Sema/SemaDecl.cpp

index 5a7d07b86f75f482ceb0b92713ef6568d0177ef6..0e14150021e696e4aeb35d3e9307e88daa2d37d3 100644 (file)
@@ -282,19 +282,18 @@ Decl *Sema::LookupDecl(DeclarationName Name, unsigned NSI, Scope *S,
     // should not take long, as shadowing of names is uncommon, and
     // deep shadowing is extremely uncommon.
     for (; I != IdResolver.end(); ++I)
-      if ((*I)->getIdentifierNamespace() & NS)
+      if ((*I)->isInIdentifierNamespace(NS))
         return *I;
   } else if (LookupCtx) {
     // Perform qualified name lookup into the LookupCtx.
     // FIXME: Will need to look into base classes and such.
     DeclContext::lookup_const_iterator I, E;
     for (llvm::tie(I, E) = LookupCtx->lookup(Context, Name); I != E; ++I)
-      if ((*I)->getIdentifierNamespace() & NS) {
-        if (NamespaceNameOnly && !isa<NamespaceDecl>(*I)) {
-          // Skip non-namespace name.
-        } else {
-          return MaybeConstructOverloadSet(Context, I, E);
-        }
+      if ((*I)->isInIdentifierNamespace(NS)) {
+        // Ignore non-namespace names if we're only looking for namespaces.
+        if (NamespaceNameOnly && !isa<NamespaceDecl>(*I)) continue;
+        
+        return MaybeConstructOverloadSet(Context, I, E);
       }
   } else {
     // Name lookup for ordinary names and tag names in C++ requires
@@ -308,22 +307,22 @@ Decl *Sema::LookupDecl(DeclarationName Name, unsigned NSI, Scope *S,
       // Check whether the IdResolver has anything in this scope.
       // FIXME: The isDeclScope check could be expensive. Can we do better?
       for (; I != IEnd && S->isDeclScope(*I); ++I) {
-        if ((*I)->getIdentifierNamespace() & NS) {
-          if (NamespaceNameOnly && !isa<NamespaceDecl>(*I)) {
-            // Skip non-namespace name.
-          } else {
-            // We found something. Look for anything else in our scope
-            // with this same name and in an acceptable identifier
-            // namespace, so that we can construct an overload set if we
-            // need to.
-            IdentifierResolver::iterator LastI = I;
-            for (++LastI; LastI != IEnd; ++LastI) {
-              if (((*LastI)->getIdentifierNamespace() & NS) == 0 ||
-                  !S->isDeclScope(*LastI))
-                break;
-            }
-            return MaybeConstructOverloadSet(Context, I, LastI);
+        if ((*I)->isInIdentifierNamespace(NS)) {
+          // Ignore non-namespace names if we're only looking for namespaces.
+          if (NamespaceNameOnly && !isa<NamespaceDecl>(*I))
+            continue;
+
+          // We found something.  Look for anything else in our scope
+          // with this same name and in an acceptable identifier
+          // namespace, so that we can construct an overload set if we
+          // need to.
+          IdentifierResolver::iterator LastI = I;
+          for (++LastI; LastI != IEnd; ++LastI) {
+            if (!(*LastI)->isInIdentifierNamespace(NS) ||
+                !S->isDeclScope(*LastI))
+              break;
           }
+          return MaybeConstructOverloadSet(Context, I, LastI);
         }
       }
       
@@ -338,9 +337,10 @@ Decl *Sema::LookupDecl(DeclarationName Name, unsigned NSI, Scope *S,
         DeclContext::lookup_const_iterator I, E;
         for (llvm::tie(I, E) = Ctx->lookup(Context, Name); I != E; ++I) {
           // FIXME: Cache this result in the IdResolver
-          if ((*I)->getIdentifierNamespace() & NS) {
-            if (NamespaceNameOnly && !isa<NamespaceDecl>(*I)) {}
-            else return MaybeConstructOverloadSet(Context, I, E);
+          if ((*I)->isInIdentifierNamespace(NS)) {
+            if (NamespaceNameOnly && !isa<NamespaceDecl>(*I))
+              continue;
+            return MaybeConstructOverloadSet(Context, I, E);
           }
         }