From 191b9750c3f7880f4b33c5c08024832068117ca0 Mon Sep 17 00:00:00 2001 From: Andy Date: Tue, 9 Jan 2018 11:22:15 -0800 Subject: [PATCH] Clear jsDocCache for reused nodes (#21099) --- src/compiler/parser.ts | 5 +++++ tests/cases/fourslash/editClearsJsDocCache.ts | 14 ++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 tests/cases/fourslash/editClearsJsDocCache.ts diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 6503e6bf421..bae9f0594ed 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1679,6 +1679,11 @@ namespace ts { return undefined; } + if ((node as JSDocContainer).jsDocCache) { + // jsDocCache may include tags from parent nodes, which might have been modified. + (node as JSDocContainer).jsDocCache = undefined; + } + return node; } diff --git a/tests/cases/fourslash/editClearsJsDocCache.ts b/tests/cases/fourslash/editClearsJsDocCache.ts new file mode 100644 index 00000000000..0ffc351300f --- /dev/null +++ b/tests/cases/fourslash/editClearsJsDocCache.ts @@ -0,0 +1,14 @@ +/// + +// @allowJs: true + +// @Filename: /a.js +/////** @type {/*type*/number} */ +////let /*x*/x; + +verify.quickInfoAt("x", "let x: number"); + +goTo.marker("type"); +edit.replace(test.markers()[0].position, "number".length, "string"); + +verify.quickInfoAt("x", "let x: string");