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