aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema/SemaDecl.cpp
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-01-06 07:20:03 +0000
committerChris Lattner <sabre@nondot.org>2009-01-06 07:20:03 +0000
commit7bea766fc90752eb5415c40dd70fc7176383bdbc (patch)
tree220e158da84b667d113ba159dc83f67351a80afa /lib/Sema/SemaDecl.cpp
parent4f3b8f8ac2f8c89028a2f8793df0a7887df809d4 (diff)
simplify some code using 'continue' and the new 'isInIdentifierNamespace' predicate.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61799 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaDecl.cpp')
-rw-r--r--lib/Sema/SemaDecl.cpp50
1 files changed, 25 insertions, 25 deletions
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index 5a7d07b86f..0e14150021 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -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);
}
}