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) {