Skip to content

Commit b9c0999

Browse files
authored
Thread host.useCaseSensitiveFileNames through program and node builder into specifier generation (#37170)
1 parent 0c5878d commit b9c0999

10 files changed

+71
-5
lines changed

src/compiler/checker.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4049,6 +4049,7 @@ namespace ts {
40494049
getSourceFiles: () => host.getSourceFiles(),
40504050
getCurrentDirectory: maybeBind(host, host.getCurrentDirectory),
40514051
getProbableSymlinks: maybeBind(host, host.getProbableSymlinks),
4052+
useCaseSensitiveFileNames: maybeBind(host, host.useCaseSensitiveFileNames)
40524053
} : undefined },
40534054
encounteredError: false,
40544055
visitedTypes: undefined,

src/compiler/program.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -968,7 +968,8 @@ namespace ts {
968968
forEachResolvedProjectReference,
969969
isSourceOfProjectReferenceRedirect,
970970
emitBuildInfo,
971-
getProbableSymlinks
971+
getProbableSymlinks,
972+
useCaseSensitiveFileNames: () => host.useCaseSensitiveFileNames(),
972973
};
973974

974975
verifyCompilerOptions();

src/compiler/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3174,8 +3174,8 @@ namespace ts {
31743174
}
31753175

31763176
// TODO: This should implement TypeCheckerHost but that's an internal type.
3177-
export interface Program extends ScriptReferenceHost {
3178-
3177+
export interface Program extends ScriptReferenceHost, ModuleSpecifierResolutionHost {
3178+
getCurrentDirectory(): string;
31793179
/**
31803180
* Get a list of root file names that were passed to a 'createProgram'
31813181
*/

tests/baselines/reference/api/tsserverlibrary.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1924,7 +1924,8 @@ declare namespace ts {
19241924
/** @throws OperationCanceledException if isCancellationRequested is true */
19251925
throwIfCancellationRequested(): void;
19261926
}
1927-
export interface Program extends ScriptReferenceHost {
1927+
export interface Program extends ScriptReferenceHost, ModuleSpecifierResolutionHost {
1928+
getCurrentDirectory(): string;
19281929
/**
19291930
* Get a list of root file names that were passed to a 'createProgram'
19301931
*/

tests/baselines/reference/api/typescript.d.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1924,7 +1924,8 @@ declare namespace ts {
19241924
/** @throws OperationCanceledException if isCancellationRequested is true */
19251925
throwIfCancellationRequested(): void;
19261926
}
1927-
export interface Program extends ScriptReferenceHost {
1927+
export interface Program extends ScriptReferenceHost, ModuleSpecifierResolutionHost {
1928+
getCurrentDirectory(): string;
19281929
/**
19291930
* Get a list of root file names that were passed to a 'createProgram'
19301931
*/
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
C:/foo/bar/Baz/src/sample.ts(1,10): error TS2724: Module '"./utils.js"' has no exported member 'exit'. Did you mean 'exist'?
2+
3+
4+
==== C:/foo/bar/Baz/src/utils.ts (0 errors) ====
5+
export function exist() {}
6+
==== C:/foo/bar/Baz/src/sample.ts (1 errors) ====
7+
import { exit } from "./utils.js";
8+
~~~~
9+
!!! error TS2724: Module '"./utils.js"' has no exported member 'exit'. Did you mean 'exist'?
10+
!!! related TS2728 C:/foo/bar/Baz/src/utils.ts:1:17: 'exist' is declared here.
11+
12+
exit()
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//// [tests/cases/compiler/missingMemberErrorHasShortPath.ts] ////
2+
3+
//// [utils.ts]
4+
export function exist() {}
5+
//// [sample.ts]
6+
import { exit } from "./utils.js";
7+
8+
exit()
9+
10+
//// [utils.js]
11+
"use strict";
12+
exports.__esModule = true;
13+
exports.exist = void 0;
14+
function exist() { }
15+
exports.exist = exist;
16+
//// [sample.js]
17+
"use strict";
18+
exports.__esModule = true;
19+
var utils_js_1 = require("./utils.js");
20+
utils_js_1.exit();
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
=== C:/foo/bar/Baz/src/utils.ts ===
2+
export function exist() {}
3+
>exist : Symbol(exist, Decl(utils.ts, 0, 0))
4+
5+
=== C:/foo/bar/Baz/src/sample.ts ===
6+
import { exit } from "./utils.js";
7+
>exit : Symbol(exit, Decl(sample.ts, 0, 8))
8+
9+
exit()
10+
>exit : Symbol(exit, Decl(sample.ts, 0, 8))
11+
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
=== C:/foo/bar/Baz/src/utils.ts ===
2+
export function exist() {}
3+
>exist : () => void
4+
5+
=== C:/foo/bar/Baz/src/sample.ts ===
6+
import { exit } from "./utils.js";
7+
>exit : any
8+
9+
exit()
10+
>exit() : any
11+
>exit : any
12+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// @useCaseSensitiveFileNames: false
2+
// @filename: C:/foo/bar/Baz/src/utils.ts
3+
export function exist() {}
4+
// @filename: C:/foo/bar/Baz/src/sample.ts
5+
import { exit } from "./utils.js";
6+
7+
exit()

0 commit comments

Comments
 (0)