summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/clangd/CodeComplete.cpp4
-rw-r--r--clang-tools-extra/unittests/clangd/CodeCompleteTests.cpp2
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) {
OpenPOWER on IntegriCloud