From 5db12f357f208536cb6ebe2f62bf74e677a88f70 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 10 Sep 2014 16:50:04 -0700 Subject: [PATCH] Filter private mebemers in class completions --- src/services/services.ts | 12 +++++++++++- tests/cases/fourslash/memberListOfClass.ts | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 3ca07573281..9cc6acfd5f1 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1815,7 +1815,17 @@ module ts { return undefined; } - var symbols = apparentType.getApparentProperties(); + var containingClass = getAncestor(mappedNode, SyntaxKind.ClassDeclaration); + + var symbols: Symbol[] = []; + // Filter private properties + forEach(apparentType.getApparentProperties(), symbol => { + var declaration = symbol.declarations && symbol.declarations[0]; + if (declaration && declaration.flags & NodeFlags.Private && containingClass !== declaration.parent) + return; + + symbols.push(symbol); + }); isMemberCompletion = true; getCompletionEntriesFromSymbols(symbols, activeCompletionSession); } diff --git a/tests/cases/fourslash/memberListOfClass.ts b/tests/cases/fourslash/memberListOfClass.ts index a28f568b758..137903e5aac 100644 --- a/tests/cases/fourslash/memberListOfClass.ts +++ b/tests/cases/fourslash/memberListOfClass.ts @@ -12,5 +12,5 @@ goTo.marker(); debug.printCompletionListMembers(); verify.memberListCount(2); -verify.memberListContains('pubMeth', '(): void'); +verify.memberListContains('pubMeth', '() => void'); verify.memberListContains('pubProp', 'number'); \ No newline at end of file