From 97641e7c3c335421cfb2a7222258f2697eaba095 Mon Sep 17 00:00:00 2001 From: Jason Ramsay Date: Tue, 13 Dec 2016 16:24:14 -0800 Subject: [PATCH] NavigateTo is not working correctly for declarations in IIFEs Fix: visit the node's children even when the function declaration name is undefined --- src/services/services.ts | 3 +-- tests/cases/fourslash/navigateToIIFE.ts | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 tests/cases/fourslash/navigateToIIFE.ts diff --git a/src/services/services.ts b/src/services/services.ts index 7ad02de56e..cf6df71d45 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -592,9 +592,8 @@ namespace ts { else { declarations.push(functionDeclaration); } - - forEachChild(node, visit); } + forEachChild(node, visit); break; case SyntaxKind.ClassDeclaration: diff --git a/tests/cases/fourslash/navigateToIIFE.ts b/tests/cases/fourslash/navigateToIIFE.ts new file mode 100644 index 0000000000..69632e5f1e --- /dev/null +++ b/tests/cases/fourslash/navigateToIIFE.ts @@ -0,0 +1,19 @@ +/// + +// @Filename: file1.ts +/////*1*/(function () { +//// "use strict"; +//// function onResume() { +//// }; +////} )(); +// @Filename: file2.ts +/////*2*/class EventManager { +//// public onResume(name: string) { } +////} +////class MyOtherEventManager { +//// public onResume(name: string) { } +////} +verify.navigationItemsListCount(3, "onResume"); +verify.navigationItemsListCount(1, "onResume", undefined, test.marker("1").fileName); +verify.navigationItemsListContains("onResume", "function", "onResume", "exact", test.marker("1").fileName); +verify.navigationItemsListCount(2, "onResume", undefined, test.marker("2").fileName);