diff --git a/src/services/goToDefinition.ts b/src/services/goToDefinition.ts index d91dc63d92ee9..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) && 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 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", });