From 92d7293342b40169523f35d0f6438127af79a16a Mon Sep 17 00:00:00 2001 From: Almenon Date: Sun, 30 Sep 2018 08:31:21 -0700 Subject: [PATCH 1/4] forceConsistentCasingInFileNames does not need to be specified anymore it is now on by default. See #17542 --- src/testRunner/unittests/moduleResolution.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/testRunner/unittests/moduleResolution.ts b/src/testRunner/unittests/moduleResolution.ts index a3ebf4f84a7e2..38e2d7df2a77c 100644 --- a/src/testRunner/unittests/moduleResolution.ts +++ b/src/testRunner/unittests/moduleResolution.ts @@ -588,7 +588,7 @@ export = C; "/a/b/c.ts": `/// `, "/a/b/d.ts": "var x" }); - test(files, { module: ModuleKind.AMD, forceConsistentCasingInFileNames: true }, "/a/b", /*useCaseSensitiveFileNames*/ false, ["c.ts", "d.ts"], [1149]); + test(files, { module: ModuleKind.AMD }, "/a/b", /*useCaseSensitiveFileNames*/ false, ["c.ts", "d.ts"], [1149]); }); it("should fail when two files used in program differ only in casing (imports)", () => { @@ -596,7 +596,7 @@ export = C; "/a/b/c.ts": `import {x} from "D"`, "/a/b/d.ts": "export var x" }); - test(files, { module: ModuleKind.AMD, forceConsistentCasingInFileNames: true }, "/a/b", /*useCaseSensitiveFileNames*/ false, ["c.ts", "d.ts"], [1149]); + test(files, { module: ModuleKind.AMD }, "/a/b", /*useCaseSensitiveFileNames*/ false, ["c.ts", "d.ts"], [1149]); }); it("should fail when two files used in program differ only in casing (imports, relative module names)", () => { @@ -604,7 +604,7 @@ export = C; "moduleA.ts": `import {x} from "./ModuleB"`, "moduleB.ts": "export var x" }); - test(files, { module: ModuleKind.CommonJS, forceConsistentCasingInFileNames: true }, "", /*useCaseSensitiveFileNames*/ false, ["moduleA.ts", "moduleB.ts"], [1149]); + test(files, { module: ModuleKind.CommonJS }, "", /*useCaseSensitiveFileNames*/ false, ["moduleA.ts", "moduleB.ts"], [1149]); }); it("should fail when two files exist on disk that differs only in casing", () => { @@ -622,7 +622,7 @@ export = C; "moduleB.ts": `import a = require("./moduleC")`, "moduleC.ts": "export var x" }); - test(files, { module: ModuleKind.CommonJS, forceConsistentCasingInFileNames: true }, "", /*useCaseSensitiveFileNames*/ false, ["moduleA.ts", "moduleB.ts", "moduleC.ts"], [1149, 1149]); + test(files, { module: ModuleKind.CommonJS }, "", /*useCaseSensitiveFileNames*/ false, ["moduleA.ts", "moduleB.ts", "moduleC.ts"], [1149, 1149]); }); it("should fail when module names in 'require' calls has inconsistent casing and current directory has uppercase chars", () => { @@ -635,7 +635,7 @@ import a = require("./moduleA"); import b = require("./moduleB"); ` }); - test(files, { module: ModuleKind.CommonJS, forceConsistentCasingInFileNames: true }, "/a/B/c", /*useCaseSensitiveFileNames*/ false, ["moduleD.ts"], [1149]); + test(files, { module: ModuleKind.CommonJS }, "/a/B/c", /*useCaseSensitiveFileNames*/ false, ["moduleD.ts"], [1149]); }); it("should not fail when module names in 'require' calls has consistent casing and current directory has uppercase chars", () => { const files = createMapFromTemplate({ @@ -647,7 +647,7 @@ import a = require("./moduleA"); import b = require("./moduleB"); ` }); - test(files, { module: ModuleKind.CommonJS, forceConsistentCasingInFileNames: true }, "/a/B/c", /*useCaseSensitiveFileNames*/ false, ["moduleD.ts"], []); + test(files, { module: ModuleKind.CommonJS }, "/a/B/c", /*useCaseSensitiveFileNames*/ false, ["moduleD.ts"], []); }); }); From 65daa261b7fcf6d8228275022c8dca1ad5ac1559 Mon Sep 17 00:00:00 2001 From: Almenon Date: Sun, 30 Sep 2018 08:59:50 -0700 Subject: [PATCH 2/4] #17542 enabling case sensitivty by default This implements #17542 enable forceConsistentCasingInFileNames by default which fixes cross-platform compatability issues due to typescript not reporting different cases as an error in windows. Making change in right repo & branch this time >_< --- src/compiler/program.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 44eae36d65470..03c5e90529c31 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -2049,7 +2049,11 @@ namespace ts { const file = filesByName.get(path); // try to check if we've already seen this file but with a different casing in path // NOTE: this only makes sense for case-insensitive file systems, and only on files which are not redirected - if (file && options.forceConsistentCasingInFileNames) { + + //default to true + const forceCasing = options.forceConsistentCasingInFileNames || options.forceConsistentCasingInFileNames==null + + if (file && forceCasing) { let inputName = fileName; const checkedName = file.fileName; const isRedirect = toPath(checkedName) !== toPath(inputName); From 31ab96f2dd3f12662c458bdf888506c886932a90 Mon Sep 17 00:00:00 2001 From: Almenon Date: Sun, 30 Sep 2018 09:28:52 -0700 Subject: [PATCH 3/4] making linter changes --- src/compiler/program.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 03c5e90529c31..d4dbd4bc1a51c 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -2049,9 +2049,9 @@ namespace ts { const file = filesByName.get(path); // try to check if we've already seen this file but with a different casing in path // NOTE: this only makes sense for case-insensitive file systems, and only on files which are not redirected - - //default to true - const forceCasing = options.forceConsistentCasingInFileNames || options.forceConsistentCasingInFileNames==null + + // default to true + const forceCasing = options.forceConsistentCasingInFileNames || options.forceConsistentCasingInFileNames === null || options.forceConsistentCasingInFileNames === undefined; if (file && forceCasing) { let inputName = fileName; From 42461e1948037905bd74f1073a780e56aa7c3a23 Mon Sep 17 00:00:00 2001 From: Almenon Date: Thu, 24 Jan 2019 17:46:35 -0800 Subject: [PATCH 4/4] get rid of null check options.forceConsistentCasingInFileNames can't be null here --- src/compiler/program.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index d4dbd4bc1a51c..eeebb1ef260f5 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -2051,7 +2051,7 @@ namespace ts { // NOTE: this only makes sense for case-insensitive file systems, and only on files which are not redirected // default to true - const forceCasing = options.forceConsistentCasingInFileNames || options.forceConsistentCasingInFileNames === null || options.forceConsistentCasingInFileNames === undefined; + const forceCasing = options.forceConsistentCasingInFileNames || options.forceConsistentCasingInFileNames === undefined; if (file && forceCasing) { let inputName = fileName;