From 9e00693163e7198f694161be62c92a7dd94b479e Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 17 Sep 2014 17:28:03 -0700 Subject: [PATCH] respond to code review comments --- src/services/services.ts | 8 ++++++-- .../fourslash/completionListPrivateMembers2.ts | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 tests/cases/fourslash/completionListPrivateMembers2.ts diff --git a/src/services/services.ts b/src/services/services.ts index 1d9da5d93cc..163414a1fc2 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1844,7 +1844,11 @@ module ts { function isVisibleWithinClassDeclaration(symbol: Symbol, containingClass: Declaration): boolean { var declaration = symbol.declarations && symbol.declarations[0]; - return !(declaration && (declaration.flags & NodeFlags.Private) && containingClass !== declaration.parent); + if (declaration && (declaration.flags & NodeFlags.Private)) { + var declarationClass = getAncestor(declaration, SyntaxKind.ClassDeclaration); + return containingClass === declarationClass; + } + return true; } function filterContextualMembersList(contextualMemberSymbols: Symbol[], existingMembers: Declaration[]): Symbol[] { @@ -1966,7 +1970,7 @@ module ts { } var type = typeInfoResolver.getTypeOfNode(mappedNode); - var apparentType: ApparentType = type && typeInfoResolver.getApparentType(type); + var apparentType = type && typeInfoResolver.getApparentType(type); if (apparentType) { // Filter private properties forEach(apparentType.getApparentProperties(), symbol => { diff --git a/tests/cases/fourslash/completionListPrivateMembers2.ts b/tests/cases/fourslash/completionListPrivateMembers2.ts new file mode 100644 index 00000000000..1b19d042cbe --- /dev/null +++ b/tests/cases/fourslash/completionListPrivateMembers2.ts @@ -0,0 +1,17 @@ +/// + +////class Foo { +//// private y; +//// constructor(private x) {} +//// method() { this./*1*/; } +////} +////var f:Foo; +////f./*2*/ + +goTo.marker("1"); +verify.memberListContains("y"); +verify.memberListContains("x"); + +goTo.marker("2"); +verify.not.memberListContains("x"); +verify.not.memberListContains("y"); \ No newline at end of file