diff --git a/src/services/services.ts b/src/services/services.ts index 5d702332853..87a31943c7b 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2072,6 +2072,10 @@ module ts { var moduleType = typeChecker.getTypeOfSymbol(importSymbol); symbol = moduleType ? moduleType.symbol : undefined; } + // External module name in an ambient declaration + else if (node.parent.kind === SyntaxKind.ModuleDeclaration) { + symbol = typeChecker.getSymbolOfNode(node.parent); + } break; } diff --git a/tests/cases/fourslash/goToDefinitionExternamModuleName5.ts b/tests/cases/fourslash/goToDefinitionExternamModuleName5.ts new file mode 100644 index 00000000000..5a6596caccb --- /dev/null +++ b/tests/cases/fourslash/goToDefinitionExternamModuleName5.ts @@ -0,0 +1,10 @@ +/// + +// @Filename: a.ts +/////*2*/declare module "external/*1*/" { +//// class Foo { } +////} + +goTo.marker('1'); +goTo.definition(); +verify.caretAtMarker('2'); \ No newline at end of file