From bd3a27ed5219e94cb83401b125aee923d19aaf4d Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Tue, 12 Dec 2017 16:11:37 -0800 Subject: [PATCH 1/2] Clear the module resolution cache when new @types appear --- src/server/editorServices.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index a5b09c6a63f..b147a5c3e92 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -547,9 +547,11 @@ namespace ts.server { } switch (response.kind) { case ActionSet: + project.resolutionCache.clear(); this.typingsCache.updateTypingsForProject(response.projectName, response.compilerOptions, response.typeAcquisition, response.unresolvedImports, response.typings); break; case ActionInvalidate: + project.resolutionCache.clear(); this.typingsCache.deleteTypingsForProject(response.projectName); break; } From 9e122d030586dadbaf41f60a93c85816a027bbd7 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Tue, 12 Dec 2017 17:22:41 -0800 Subject: [PATCH 2/2] Fix test --- src/harness/unittests/typingsInstaller.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/harness/unittests/typingsInstaller.ts b/src/harness/unittests/typingsInstaller.ts index cb2d350744c..f7820434469 100644 --- a/src/harness/unittests/typingsInstaller.ts +++ b/src/harness/unittests/typingsInstaller.ts @@ -1009,7 +1009,7 @@ namespace ts.projectSystem { installer.installAll(/*expectedCount*/ 1); }); - it("cached unresolved typings are not recomputed if program structure did not change", () => { + it("should recompute resolutions after typings are installed", () => { const host = createServerHost([]); const session = createSession(host); const f = { @@ -1051,7 +1051,7 @@ namespace ts.projectSystem { session.executeCommand(changeRequest); host.checkTimeoutQueueLengthAndRun(2); // This enqueues the updategraph and refresh inferred projects const version2 = proj.getCachedUnresolvedImportsPerFile_TestOnly().getVersion(); - assert.equal(version1, version2, "set of unresolved imports should not change"); + assert.notEqual(version1, version2, "set of unresolved imports should change"); }); });