From abd4eca2a071694a2ba8075916867d9f4dc3600a Mon Sep 17 00:00:00 2001 From: tjjfvi <44031566+tjjfvi@users.noreply.github.com> Date: Mon, 12 Jul 2021 13:19:19 -0700 Subject: [PATCH 1/2] Fix getChildCount/At methods in EndOfFileTokens Before, they were hardcoded to return `0` and `undefined!`, respectively, but that is inaccurate for `EndOfFileToken`s with attached jsdoc. --- src/services/services.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index e0877625e9385..dc1651a6fdacd 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -259,11 +259,11 @@ namespace ts { } public getChildCount(): number { - return 0; + return this.getChildren().length; } - public getChildAt(): Node { - return undefined!; // TODO: GH#18217 + public getChildAt(index: number): Node { + return this.getChildren()[index]; } public getChildren(): Node[] { From 946d39cc6f8b6e604954cd7812078f99f76a73f8 Mon Sep 17 00:00:00 2001 From: tjjfvi Date: Wed, 14 Jul 2021 01:36:01 -0700 Subject: [PATCH 2/2] Add tests for getChild* methods on EndOfFileTokens --- src/testRunner/unittests/publicApi.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/testRunner/unittests/publicApi.ts b/src/testRunner/unittests/publicApi.ts index e1400a9992c9e..883b979f9c72e 100644 --- a/src/testRunner/unittests/publicApi.ts +++ b/src/testRunner/unittests/publicApi.ts @@ -171,3 +171,14 @@ var x }); assert.equal(5, kids.length); }); + +describe("unittests:: Public APIs:: getChild* methods on EndOfFileToken with JSDoc", () => { + const content = ` +/** jsdoc comment attached to EndOfFileToken */ +`; + const sourceFile = ts.createSourceFile("/file.ts", content, ts.ScriptTarget.ESNext, /*setParentNodes*/ true); + const endOfFileToken = sourceFile.getChildren()[1]; + assert.equal(endOfFileToken.getChildren().length, 1); + assert.equal(endOfFileToken.getChildCount(), 1); + assert.notEqual(endOfFileToken.getChildAt(0), /*expected*/ undefined); +});