From 986532d36bcef004a41581036e3dcea9341bd9d1 Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 11 Jun 2018 08:43:17 -0700 Subject: [PATCH] Fix bug: In findAllReferences, don't crash on static method missing body (#24814) --- src/services/findAllReferences.ts | 18 ++++++++++-------- .../cases/fourslash/findAllRefsDeclareClass.ts | 7 +++++++ 2 files changed, 17 insertions(+), 8 deletions(-) create mode 100644 tests/cases/fourslash/findAllRefsDeclareClass.ts diff --git a/src/services/findAllReferences.ts b/src/services/findAllReferences.ts index 394e487e2f0..e40a1f28161 100644 --- a/src/services/findAllReferences.ts +++ b/src/services/findAllReferences.ts @@ -1035,14 +1035,16 @@ namespace ts.FindAllReferences.Core { if (!(isMethodOrAccessor(member) && hasModifier(member, ModifierFlags.Static))) { continue; } - member.body!.forEachChild(function cb(node) { - if (node.kind === SyntaxKind.ThisKeyword) { - addRef(node); - } - else if (!isFunctionLike(node)) { - node.forEachChild(cb); - } - }); + if (member.body) { + member.body.forEachChild(function cb(node) { + if (node.kind === SyntaxKind.ThisKeyword) { + addRef(node); + } + else if (!isFunctionLike(node)) { + node.forEachChild(cb); + } + }); + } } } diff --git a/tests/cases/fourslash/findAllRefsDeclareClass.ts b/tests/cases/fourslash/findAllRefsDeclareClass.ts new file mode 100644 index 00000000000..9ef813634a5 --- /dev/null +++ b/tests/cases/fourslash/findAllRefsDeclareClass.ts @@ -0,0 +1,7 @@ +/// + +////declare class [|{| "isWriteAccess": true, "isDefinition": true |}C|] { +//// static m(): void; +////} + +verify.singleReferenceGroup("class C");