From 6fd0a60ad90f4dee04ee66bfe8c012eeb3125d1b Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Fri, 15 Jun 2018 10:57:19 -0700 Subject: [PATCH 1/2] goToDefinition: Don't add duplicate definitions for PropertyAssignment and ArrowFunction at `m: () => {}` --- 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 d91dc63d92ee9..ce9887ba412f4 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; + (isVariableDeclaration(calledDeclaration.parent) || isPropertyAssignment(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 3657ebfd0d6a8..01880be9a3321 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", }); From 115ab467f29e4c48982b05406945442454328702 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Mon, 25 Jun 2018 10:40:31 -0700 Subject: [PATCH 2/2] Just use !isCallLikeExpression --- src/services/goToDefinition.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/services/goToDefinition.ts b/src/services/goToDefinition.ts index ce9887ba412f4..7060ffad6121e 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) || isPropertyAssignment(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 {