summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-04-06 20:02:15 +0000
committerDouglas Gregor <dgregor@apple.com>2010-04-06 20:02:15 +0000
commit2f880e47ca32d007d7e9e5ff5efa05f5c3432744 (patch)
tree8f1cd2712bdcd03b2d0e8f07986a49de760ddca0
parent2aefcb2e8b8b37529807945b3ecedda76e75c831 (diff)
downloadclang-2f880e47ca32d007d7e9e5ff5efa05f5c3432744.tar.gz
clang-2f880e47ca32d007d7e9e5ff5efa05f5c3432744.tar.bz2
clang-2f880e47ca32d007d7e9e5ff5efa05f5c3432744.tar.xz
Only prove macros as code-completion results when we're in a case
statement or for ordinary names. This means that we won't show macros when completing, e.g., member expressions such as "p->". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100555 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Sema/SemaCodeComplete.cpp20
-rw-r--r--test/CodeCompletion/macros.c4
2 files changed, 1 insertions, 23 deletions
diff --git a/lib/Sema/SemaCodeComplete.cpp b/lib/Sema/SemaCodeComplete.cpp
index 49a32a6bdd..20621fdb6b 100644
--- a/lib/Sema/SemaCodeComplete.cpp
+++ b/lib/Sema/SemaCodeComplete.cpp
@@ -2077,10 +2077,6 @@ void Sema::CodeCompleteMemberReferenceExpr(Scope *S, ExprTy *BaseE,
Results.ExitScope();
- // Add macros
- if (CodeCompleter->includeMacros())
- AddMacroResults(PP, Results);
-
// Hand off the results found for code completion.
HandleCodeCompleteResults(this, CodeCompleter, Results.data(),Results.size());
}
@@ -2115,8 +2111,6 @@ void Sema::CodeCompleteTag(Scope *S, unsigned TagSpec) {
CodeCompletionDeclConsumer Consumer(Results, CurContext);
LookupVisibleDecls(S, LookupTagName, Consumer);
- if (CodeCompleter->includeMacros())
- AddMacroResults(PP, Results);
HandleCodeCompleteResults(this, CodeCompleter, Results.data(),Results.size());
}
@@ -2194,7 +2188,7 @@ void Sema::CodeCompleteCase(Scope *S) {
CurContext, 0, false);
}
Results.ExitScope();
-
+
if (CodeCompleter->includeMacros())
AddMacroResults(PP, Results);
HandleCodeCompleteResults(this, CodeCompleter, Results.data(),Results.size());
@@ -2309,8 +2303,6 @@ void Sema::CodeCompleteQualifiedId(Scope *S, const CXXScopeSpec &SS,
if (!Results.empty() && NNS->isDependent())
Results.AddResult("template");
- if (CodeCompleter->includeMacros())
- AddMacroResults(PP, Results);
HandleCodeCompleteResults(this, CodeCompleter, Results.data(),Results.size());
}
@@ -2331,8 +2323,6 @@ void Sema::CodeCompleteUsing(Scope *S) {
LookupVisibleDecls(S, LookupOrdinaryName, Consumer);
Results.ExitScope();
- if (CodeCompleter->includeMacros())
- AddMacroResults(PP, Results);
HandleCodeCompleteResults(this, CodeCompleter, Results.data(),Results.size());
}
@@ -2347,8 +2337,6 @@ void Sema::CodeCompleteUsingDirective(Scope *S) {
CodeCompletionDeclConsumer Consumer(Results, CurContext);
LookupVisibleDecls(S, LookupOrdinaryName, Consumer);
Results.ExitScope();
- if (CodeCompleter->includeMacros())
- AddMacroResults(PP, Results);
HandleCodeCompleteResults(this, CodeCompleter, Results.data(),Results.size());
}
@@ -2383,8 +2371,6 @@ void Sema::CodeCompleteNamespaceDecl(Scope *S) {
Results.ExitScope();
}
- if (CodeCompleter->includeMacros())
- AddMacroResults(PP, Results);
HandleCodeCompleteResults(this, CodeCompleter, Results.data(),Results.size());
}
@@ -2396,8 +2382,6 @@ void Sema::CodeCompleteNamespaceAliasDecl(Scope *S) {
ResultBuilder Results(*this, &ResultBuilder::IsNamespaceOrAlias);
CodeCompletionDeclConsumer Consumer(Results, CurContext);
LookupVisibleDecls(S, LookupOrdinaryName, Consumer);
- if (CodeCompleter->includeMacros())
- AddMacroResults(PP, Results);
HandleCodeCompleteResults(this, CodeCompleter, Results.data(),Results.size());
}
@@ -2424,8 +2408,6 @@ void Sema::CodeCompleteOperatorName(Scope *S) {
AddTypeSpecifierResults(getLangOptions(), Results);
Results.ExitScope();
- if (CodeCompleter->includeMacros())
- AddMacroResults(PP, Results);
HandleCodeCompleteResults(this, CodeCompleter, Results.data(),Results.size());
}
diff --git a/test/CodeCompletion/macros.c b/test/CodeCompletion/macros.c
index 6330d25172..0758bbf768 100644
--- a/test/CodeCompletion/macros.c
+++ b/test/CodeCompletion/macros.c
@@ -19,11 +19,7 @@ void test(struct Point *p) {
// RUN: %clang_cc1 -include-pch %t -fsyntax-only -code-completion-macros -code-completion-at=%s:12:14 %s -o - | FileCheck -check-prefix=CC1 %s
// RUN: %clang_cc1 -include-pch %t -fsyntax-only -code-completion-macros -code-completion-at=%s:14:9 %s -o - | FileCheck -check-prefix=CC2 %s
- // CC1: BAR(<#X#>, <#Y#>)
// CC1: color
- // CC1: FOO
- // CC1: IDENTITY(<#X#>)
- // CC1: WIBBLE
// CC1: x
// CC1: y
// CC1: z