From 9aa60f27eb3aac082b3f05d97946160c3bd6a6ea Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 25 Jun 2018 11:33:47 -0700 Subject: [PATCH] goToDefinition: Don't add duplicate definitions for PropertyAssignment and ArrowFunction at `m: () => {}` (#24995) * goToDefinition: Don't add duplicate definitions for PropertyAssignment and ArrowFunction at `m: () => {}` * Just use !isCallLikeExpression --- src/services/goToDefinition.ts | 2 +- tests/cases/fourslash/goToDefinitionSignatureAlias.ts | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/services/goToDefinition.ts b/src/services/goToDefinition.ts index d91dc63d92e..7060ffad612 100644 --- a/src/services/goToDefinition.ts +++ b/src/services/goToDefinition.ts @@ -99,7 +99,7 @@ namespace ts.GoToDefinition { */ function symbolMatchesSignature(s: Symbol, calledDeclaration: SignatureDeclaration) { return s === calledDeclaration.symbol || s === calledDeclaration.symbol.parent || - isVariableDeclaration(calledDeclaration.parent) && s === calledDeclaration.parent.symbol; + !isCallLikeExpression(calledDeclaration.parent) && s === calledDeclaration.parent.symbol; } export function getReferenceAtPosition(sourceFile: SourceFile, position: number, program: Program): { fileName: string, file: SourceFile } | undefined { diff --git a/tests/cases/fourslash/goToDefinitionSignatureAlias.ts b/tests/cases/fourslash/goToDefinitionSignatureAlias.ts index 3657ebfd0d6..01880be9a33 100644 --- a/tests/cases/fourslash/goToDefinitionSignatureAlias.ts +++ b/tests/cases/fourslash/goToDefinitionSignatureAlias.ts @@ -14,6 +14,9 @@ ////[|/*useI*/i|](); ////[|/*useJ*/j|](); +////const o = { m: /*m*/() => 0 }; +////o.[|/*useM*/m|](); + verify.goToDefinition({ useF: "f", useG: ["g", "f"], @@ -21,4 +24,5 @@ verify.goToDefinition({ useI: "i", useJ: ["j", "i"], + useM: "m", });