[PATCH] D53192: [clangd] Do not query index for new name completions.
Kadir Cetinkaya via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Oct 23 06:58:33 PDT 2018
kadircet updated this revision to Diff 170634.
kadircet marked 2 inline comments as done.
kadircet added a comment.
- Address comments.
Repository:
rCTE Clang Tools Extra
https://reviews.llvm.org/D53192
Files:
clangd/CodeComplete.cpp
clangd/index/SymbolCollector.cpp
unittests/clangd/CodeCompleteTests.cpp
Index: unittests/clangd/CodeCompleteTests.cpp
===================================================================
--- unittests/clangd/CodeCompleteTests.cpp
+++ unittests/clangd/CodeCompleteTests.cpp
@@ -2175,6 +2175,15 @@
AllOf(Qualifier("nx::"), Named("Clangd2"))));
}
+TEST(CompletionTest, NoCompletionsForNewNames) {
+ clangd::CodeCompleteOptions Opts;
+ Opts.AllScopes = true;
+ auto Results = completions(R"cpp(
+ void f() { int n^ }
+ )cpp",
+ {cls("naber"), cls("nx::foo")}, Opts);
+ EXPECT_THAT(Results.Completions, UnorderedElementsAre());
+}
} // namespace
} // namespace clangd
} // namespace clang
Index: clangd/index/SymbolCollector.cpp
===================================================================
--- clangd/index/SymbolCollector.cpp
+++ clangd/index/SymbolCollector.cpp
@@ -551,8 +551,8 @@
// We use the primary template, as clang does during code completion.
CodeCompletionResult SymbolCompletion(&getTemplateOrThis(ND), 0);
const auto *CCS = SymbolCompletion.CreateCodeCompletionString(
- *ASTCtx, *PP, CodeCompletionContext::CCC_Name, *CompletionAllocator,
- *CompletionTUInfo,
+ *ASTCtx, *PP, CodeCompletionContext::CCC_ExistingName,
+ *CompletionAllocator, *CompletionTUInfo,
/*IncludeBriefComments*/ false);
std::string Signature;
std::string SnippetSuffix;
Index: clangd/CodeComplete.cpp
===================================================================
--- clangd/CodeComplete.cpp
+++ clangd/CodeComplete.cpp
@@ -625,28 +625,31 @@
case CodeCompletionContext::CCC_ObjCProtocolName:
case CodeCompletionContext::CCC_Namespace:
case CodeCompletionContext::CCC_Type:
- case CodeCompletionContext::CCC_Name: // FIXME: why does ns::^ give this?
- case CodeCompletionContext::CCC_PotentiallyQualifiedName:
case CodeCompletionContext::CCC_ParenthesizedExpression:
case CodeCompletionContext::CCC_ObjCInterfaceName:
case CodeCompletionContext::CCC_ObjCCategoryName:
+ case CodeCompletionContext::CCC_ExistingName:
+ case CodeCompletionContext::CCC_PotentiallyQualifiedExistingName:
return true;
- case CodeCompletionContext::CCC_Other: // Be conservative.
case CodeCompletionContext::CCC_OtherWithMacros:
case CodeCompletionContext::CCC_DotMemberAccess:
case CodeCompletionContext::CCC_ArrowMemberAccess:
case CodeCompletionContext::CCC_ObjCPropertyAccess:
case CodeCompletionContext::CCC_MacroName:
case CodeCompletionContext::CCC_MacroNameUse:
case CodeCompletionContext::CCC_PreprocessorExpression:
case CodeCompletionContext::CCC_PreprocessorDirective:
- case CodeCompletionContext::CCC_NaturalLanguage:
case CodeCompletionContext::CCC_SelectorName:
case CodeCompletionContext::CCC_TypeQualifiers:
case CodeCompletionContext::CCC_ObjCInstanceMessage:
case CodeCompletionContext::CCC_ObjCClassMessage:
case CodeCompletionContext::CCC_IncludedFile:
+ // FIXME: Provide identifier based completions for the following contexts:
+ case CodeCompletionContext::CCC_Other: // Be conservative.
+ case CodeCompletionContext::CCC_NaturalLanguage:
case CodeCompletionContext::CCC_Recovery:
+ case CodeCompletionContext::CCC_NewName:
+ case CodeCompletionContext::CCC_PotentiallyQualifiedNewName:
return false;
}
llvm_unreachable("unknown code completion context");
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D53192.170634.patch
Type: text/x-patch
Size: 3391 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20181023/6b64a782/attachment.bin>
More information about the cfe-commits
mailing list