[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 llvm-svn: 345141
This commit is contained in:
parent
52a11b5662
commit
e8437cbf5e
|
@ -728,9 +728,9 @@ struct CompletionRecorder : public CodeCompleteConsumer {
|
|||
// 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 ||
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue