Skip to content

Commit 49d8157

Browse files
committed
ensure that sys is not used outside tsc.ts
1 parent f55b5ef commit 49d8157

File tree

9 files changed

+21
-18
lines changed

9 files changed

+21
-18
lines changed

Jakefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ var compilerSources = [
4343

4444
var servicesSources = [
4545
"core.ts",
46-
"sys.ts",
4746
"types.ts",
4847
"scanner.ts",
4948
"parser.ts",

src/compiler/core.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -509,12 +509,6 @@ module ts {
509509
return pathLen > extLen && path.substr(pathLen - extLen, extLen) === extension;
510510
}
511511

512-
export function getCanonicalFileName(fileName: string): string {
513-
// if underlying system can distinguish between two files whose names differs only in cases then file name already in canonical form.
514-
// otherwise use toLowerCase as a canonical form.
515-
return sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase();
516-
}
517-
518512
export interface ObjectAllocator {
519513
getNodeConstructor(kind: SyntaxKind): new () => Node;
520514
getSymbolConstructor(): new (flags: SymbolFlags, name: string) => Symbol;

src/compiler/emitter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ module ts {
290290
}
291291
else {
292292
// Empty string - make sure we write empty line
293-
writer.writeLiteral(sys.newLine);
293+
writer.writeLiteral(newLine);
294294
}
295295
}
296296

src/compiler/parser.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/// <reference path="sys.ts"/>
21
/// <reference path="types.ts"/>
32
/// <reference path="core.ts"/>
43
/// <reference path="scanner.ts"/>

src/compiler/tsc.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,12 @@ module ts {
137137
var currentDirectory: string;
138138
var existingDirectories: Map<boolean> = {};
139139

140+
function getCanonicalFileName(fileName: string): string {
141+
// if underlying system can distinguish between two files whose names differs only in cases then file name already in canonical form.
142+
// otherwise use toLowerCase as a canonical form.
143+
return sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase();
144+
}
145+
140146
function getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile {
141147
try {
142148
var text = sys.readFile(filename, options.charset);
@@ -323,6 +329,7 @@ module ts {
323329
function compile(commandLine: ParsedCommandLine, compilerHost: CompilerHost) {
324330
var parseStart = new Date().getTime();
325331
var program = createProgram(commandLine.filenames, commandLine.options, compilerHost);
332+
326333
var bindStart = new Date().getTime();
327334
var errors = program.getDiagnostics();
328335
if (errors.length) {

src/harness/fourslash.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1893,9 +1893,9 @@ module FourSlash {
18931893
fourslashSourceFile = fourslashSourceFile || ts.createSourceFile(tsFn, Harness.IO.readFile(tsFn), ts.ScriptTarget.ES5, /*version*/ "0", /*isOpen*/ false);
18941894

18951895
var files: { [filename: string]: ts.SourceFile; } = {};
1896-
files[ts.getCanonicalFileName(fourslashFilename)] = fourslashSourceFile;
1897-
files[ts.getCanonicalFileName(fileName)] = ts.createSourceFile(fileName, content, ts.ScriptTarget.ES5, /*version*/ "0", /*isOpen*/ false);
1898-
files[ts.getCanonicalFileName(Harness.Compiler.defaultLibFileName)] = Harness.Compiler.defaultLibSourceFile;
1896+
files[Harness.Compiler.getCanonicalFileName(fourslashFilename)] = fourslashSourceFile;
1897+
files[Harness.Compiler.getCanonicalFileName(fileName)] = ts.createSourceFile(fileName, content, ts.ScriptTarget.ES5, /*version*/ "0", /*isOpen*/ false);
1898+
files[Harness.Compiler.getCanonicalFileName(Harness.Compiler.defaultLibFileName)] = Harness.Compiler.defaultLibSourceFile;
18991899

19001900
var host = Harness.Compiler.createCompilerHost(files, (fn, contents) => result = contents);
19011901
var program = ts.createProgram([fourslashFilename, fileName], { out: "fourslashTestOutput.js" }, host);

src/harness/harness.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -534,13 +534,17 @@ module Harness {
534534
export var defaultLibFileName = 'lib.d.ts';
535535
export var defaultLibSourceFile = ts.createSourceFile(defaultLibFileName, IO.readFile(libFolder + 'lib.core.d.ts'), /*languageVersion*/ ts.ScriptTarget.ES5, /*version:*/ "0");
536536

537+
export function getCanonicalFileName(fileName: string): string {
538+
return sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase();
539+
}
540+
537541
export function createCompilerHost(filemap: { [filename: string]: ts.SourceFile; }, writeFile: (fn: string, contents: string, writeByteOrderMark:boolean) => void): ts.CompilerHost {
538542
return {
539543
getCurrentDirectory: sys.getCurrentDirectory,
540544
getCancellationToken: (): any => undefined,
541545
getSourceFile: (fn, languageVersion) => {
542-
if (Object.prototype.hasOwnProperty.call(filemap, ts.getCanonicalFileName(fn))) {
543-
return filemap[ts.getCanonicalFileName(fn)];
546+
if (Object.prototype.hasOwnProperty.call(filemap, getCanonicalFileName(fn))) {
547+
return filemap[getCanonicalFileName(fn)];
544548
} else {
545549
var lib = defaultLibFileName;
546550
if (fn === defaultLibFileName) {
@@ -552,7 +556,7 @@ module Harness {
552556
},
553557
getDefaultLibFilename: () => defaultLibFileName,
554558
writeFile: writeFile,
555-
getCanonicalFileName: ts.getCanonicalFileName,
559+
getCanonicalFileName: getCanonicalFileName,
556560
useCaseSensitiveFileNames: () => sys.useCaseSensitiveFileNames,
557561
getNewLine: ()=> sys.newLine
558562
};
@@ -729,7 +733,7 @@ module Harness {
729733
var filemap: { [name: string]: ts.SourceFile; } = {};
730734
var register = (file: { unitName: string; content: string; }) => {
731735
var filename = Path.switchToForwardSlashes(file.unitName);
732-
filemap[ts.getCanonicalFileName(filename)] = ts.createSourceFile(filename, file.content, options.target, /*version:*/ "0");
736+
filemap[getCanonicalFileName(filename)] = ts.createSourceFile(filename, file.content, options.target, /*version:*/ "0");
733737
};
734738
inputFiles.forEach(register);
735739
otherFiles.forEach(register);

src/harness/projectsRunner.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ class ProjectRunner extends RunnerBase {
187187
getDefaultLibFilename: () => "lib.d.ts",
188188
writeFile: writeFile,
189189
getCurrentDirectory: getCurrentDirectory,
190-
getCanonicalFileName: ts.getCanonicalFileName,
190+
getCanonicalFileName: Harness.Compiler.getCanonicalFileName,
191191
useCaseSensitiveFileNames: () => sys.useCaseSensitiveFileNames,
192192
getNewLine: () => sys.newLine
193193
};

src/services/core/diagnosticCore.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ module TypeScript {
120120
// TODO: We need to expose an extensibility point on our hosts to have them tell us what
121121
// they want the newline string to be. That way we can get the correct result regardless
122122
// of which host we use
123-
return sys.newLine ? sys.newLine : "\r\n";
123+
return "\r\n";
124124
}
125125

126126
function getLargestIndex(diagnostic: string): number {

0 commit comments

Comments
 (0)