diff --git a/src/compiler/types.ts b/src/compiler/types.ts index aa2ca3b4ba8..c063370bcc8 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -766,7 +766,7 @@ module ts { } export enum SymbolFlags { - FunctionScopedVariable = 0x00000001, // Variable (var) or parameter + FunctionScopedVariable = 0x00000001, // Variable (var) or parameter Property = 0x00000002, // Property or enum member EnumMember = 0x00000004, // Enum member Function = 0x00000008, // Function diff --git a/src/services/services.ts b/src/services/services.ts index d853d06d68e..3100b99885a 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -3836,7 +3836,7 @@ module ts { if (symbol.getFlags() && (SymbolFlags.Property | SymbolFlags.Method)) { var privateDeclaration = forEach(symbol.getDeclarations(), d => (d.flags & NodeFlags.Private) ? d : undefined); if (privateDeclaration) { - return privateDeclaration.parent; + return getAncestor(privateDeclaration, SyntaxKind.ClassDeclaration); } } diff --git a/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts b/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts new file mode 100644 index 00000000000..6686a771b34 --- /dev/null +++ b/tests/cases/fourslash/findAllRefsOnPrivateParameterProperty1.ts @@ -0,0 +1,18 @@ +/// + +////class ABCD { +//// constructor(private x: number, public y: number, private [|z|]: number) { +//// } +//// +//// func() { +//// return this.[|z|]; +//// } +////} + +test.ranges().forEach(r => { + goTo.position(r.start); + + test.ranges().forEach(range => { + verify.referencesAtPositionContains(range); + }); +});