[clang-tools-extra] r345141 - [clangd] Don't show base class versions of members as completions.
Sam McCall via cfe-commits
cfe-commits at lists.llvm.org
Wed Oct 24 06:51:44 PDT 2018
Author: sammccall
Date: Wed Oct 24 06:51:44 2018
New Revision: 345141
URL: http://llvm.org/viewvc/llvm-project?rev=345141&view=rev
Log:
[clangd] Don't show base class versions of members as completions.
Summary:
These are available via qualifiers, but signal to noise level is low.
Keep required quailifier machinery around though, for cross-ns completion.
Reviewers: ioeric
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Differential Revision: https://reviews.llvm.org/D53571
Modified:
clang-tools-extra/trunk/clangd/CodeComplete.cpp
clang-tools-extra/trunk/unittests/clangd/CodeCompleteTests.cpp
Modified: clang-tools-extra/trunk/clangd/CodeComplete.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clangd/CodeComplete.cpp?rev=345141&r1=345140&r2=345141&view=diff
==============================================================================
--- clang-tools-extra/trunk/clangd/CodeComplete.cpp (original)
+++ clang-tools-extra/trunk/clangd/CodeComplete.cpp Wed Oct 24 06:51:44 2018
@@ -728,9 +728,9 @@ struct CompletionRecorder : public CodeC
// Retain the results we might want.
for (unsigned I = 0; I < NumResults; ++I) {
auto &Result = InResults[I];
- // Drop hidden items which cannot be found by lookup after completion.
- // Exception: some items can be named by using a qualifier.
- if (Result.Hidden && (!Result.Qualifier || Result.QualifierIsInformative))
+ // Class members that are shadowed by subclasses are usually noise.
+ if (Result.Hidden && Result.Declaration &&
+ Result.Declaration->isCXXClassMember())
continue;
if (!Opts.IncludeIneligibleResults &&
(Result.Availability == CXAvailability_NotAvailable ||
Modified: clang-tools-extra/trunk/unittests/clangd/CodeCompleteTests.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/unittests/clangd/CodeCompleteTests.cpp?rev=345141&r1=345140&r2=345141&view=diff
==============================================================================
--- clang-tools-extra/trunk/unittests/clangd/CodeCompleteTests.cpp (original)
+++ clang-tools-extra/trunk/unittests/clangd/CodeCompleteTests.cpp Wed Oct 24 06:51:44 2018
@@ -381,10 +381,13 @@ TEST(CompletionTest, Qualifiers) {
void test() { Bar().^ }
)cpp");
EXPECT_THAT(Results.Completions,
- HasSubsequence(AllOf(Qualifier(""), Named("bar")),
- AllOf(Qualifier("Foo::"), Named("foo"))));
+ Contains(AllOf(Qualifier(""), Named("bar"))));
+ // Hidden members are not shown.
EXPECT_THAT(Results.Completions,
- Not(Contains(AllOf(Qualifier(""), Named("foo"))))); // private
+ Not(Contains(AllOf(Qualifier("Foo::"), Named("foo")))));
+ // Private members are not shown.
+ EXPECT_THAT(Results.Completions,
+ Not(Contains(AllOf(Qualifier(""), Named("foo")))));
}
TEST(CompletionTest, InjectedTypename) {
More information about the cfe-commits
mailing list