diff options
-rw-r--r-- | clang-tools-extra/clangd/CodeComplete.cpp | 4 | ||||
-rw-r--r-- | clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/clang-tools-extra/clangd/CodeComplete.cpp b/clang-tools-extra/clangd/CodeComplete.cpp index 9f1e296c62d..68205f8ca47 100644 --- a/clang-tools-extra/clangd/CodeComplete.cpp +++ b/clang-tools-extra/clangd/CodeComplete.cpp @@ -361,6 +361,10 @@ struct CompletionRecorder : public CodeCompleteConsumer { (Result.Availability == CXAvailability_NotAvailable || Result.Availability == CXAvailability_NotAccessible)) continue; + // Destructor completion is rarely useful, and works inconsistently. + // (s.^ completes ~string, but s.~st^ is an error). + if (dyn_cast_or_null<CXXDestructorDecl>(Result.Declaration)) + continue; Results.push_back(Result); } } diff --git a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp index 40005509176..5528fcbe7ba 100644 --- a/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp +++ b/clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp @@ -461,7 +461,7 @@ TEST(CompletionTest, NoDuplicates) { {cls("Adapter")}); // Make sure there are no duplicate entries of 'Adapter'. - EXPECT_THAT(Results.items, ElementsAre(Named("Adapter"), Named("~Adapter"))); + EXPECT_THAT(Results.items, ElementsAre(Named("Adapter"))); } TEST(CompletionTest, ScopedNoIndex) { |