From 5bc803d7da2f0d9a5aab68c38b20d764e3c81551 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 d3d2a41e5d5..b10ca156de1 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -541,9 +541,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 7ec2573dff26f9fcb2b1e4acbdd6b07db3638478 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 3c8f6a491a1..0bd694994b3 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"); }); });