From 95494efe50a9b9deaeafb7372704590b079269ae Mon Sep 17 00:00:00 2001 From: Klaus Meinhardt Date: Wed, 8 Aug 2018 16:58:35 +0200 Subject: [PATCH] fix commonPrefix handling --- src/compiler/moduleNameResolver.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/compiler/moduleNameResolver.ts b/src/compiler/moduleNameResolver.ts index f93f2d7eb64..b3ff0951166 100644 --- a/src/compiler/moduleNameResolver.ts +++ b/src/compiler/moduleNameResolver.ts @@ -407,18 +407,17 @@ namespace ts { // directory: /a/b/c/d/e // resolvedFileName: /a/b/foo.d.ts const commonPrefix = getCommonPrefix(path, resolvedFileName); + if (commonPrefix === undefined) { + return; + } let current = path; - while (true) { + while (current !== commonPrefix) { const parent = getDirectoryPath(current); if (parent === current || directoryPathMap.has(parent)) { break; } directoryPathMap.set(parent, result); current = parent; - - if (current === commonPrefix) { - break; - } } } @@ -434,6 +433,10 @@ namespace ts { i++; } + if (i === directory.length && resolutionDirectory.length > i && resolutionDirectory[i] === directorySeparator) { + return directory; + } + // find last directory separator before position i const sep = directory.lastIndexOf(directorySeparator, i); if (sep < 0) {