diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-09-18 15:37:17 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-09-18 15:37:17 +0000 |
commit | 374929f7e88f6c7a96382b3eb4201b721c418372 (patch) | |
tree | 8dd77ae50ba6f302b6ce1bf80c127095d7f3c35b /lib/Sema/SemaCXXScopeSpec.cpp | |
parent | 9df3fafe8b0a67969608151778e13ff3f21d70f1 (diff) |
Implement code completion for tags, e.g., code completion after "enum"
will provide the names of various enumerations currently
visible. Introduced filtering of code-completion results when we build
the result set, so that we can identify just the kinds of declarations
we want.
This implementation is incomplete for C++, since we don't consider
that the token after the tag keyword could start a
nested-name-specifier.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82222 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaCXXScopeSpec.cpp')
-rw-r--r-- | lib/Sema/SemaCXXScopeSpec.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/Sema/SemaCXXScopeSpec.cpp b/lib/Sema/SemaCXXScopeSpec.cpp index 759b56ced2..60661f147e 100644 --- a/lib/Sema/SemaCXXScopeSpec.cpp +++ b/lib/Sema/SemaCXXScopeSpec.cpp @@ -260,7 +260,7 @@ Sema::CXXScopeTy *Sema::ActOnCXXGlobalScopeSpecifier(Scope *S, /// \brief Determines whether the given declaration is an valid acceptable /// result for name lookup of a nested-name-specifier. -bool isAcceptableNestedNameSpecifier(ASTContext &Context, NamedDecl *SD) { +bool Sema::isAcceptableNestedNameSpecifier(NamedDecl *SD) { if (!SD) return false; @@ -307,7 +307,7 @@ NamedDecl *Sema::FindFirstQualifierInScope(Scope *S, NestedNameSpecifier *NNS) { assert(!Found.isAmbiguous() && "Cannot handle ambiguities here yet"); NamedDecl *Result = Found; - if (isAcceptableNestedNameSpecifier(Context, Result)) + if (isAcceptableNestedNameSpecifier(Result)) return Result; return 0; @@ -406,7 +406,7 @@ Sema::CXXScopeTy *Sema::BuildCXXNestedNameSpecifier(Scope *S, // FIXME: Deal with ambiguities cleanly. NamedDecl *SD = Found; - if (isAcceptableNestedNameSpecifier(Context, SD)) { + if (isAcceptableNestedNameSpecifier(SD)) { if (!ObjectType.isNull() && !ObjectTypeSearchedInScope) { // C++ [basic.lookup.classref]p4: // [...] If the name is found in both contexts, the @@ -425,7 +425,7 @@ Sema::CXXScopeTy *Sema::BuildCXXNestedNameSpecifier(Scope *S, // FIXME: Handle ambiguities in FoundOuter! NamedDecl *OuterDecl = FoundOuter; - if (isAcceptableNestedNameSpecifier(Context, OuterDecl) && + if (isAcceptableNestedNameSpecifier(OuterDecl) && OuterDecl->getCanonicalDecl() != SD->getCanonicalDecl() && (!isa<TypeDecl>(OuterDecl) || !isa<TypeDecl>(SD) || !Context.hasSameType( |