From d8fb8a967f2d8fab7f46bc379947c67446ff2a4b Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 2 Feb 2015 20:06:33 -0800 Subject: [PATCH 01/39] Remove unused NonCachingDocumentRegistry --- src/harness/harnessLanguageService.ts | 28 --------------------------- 1 file changed, 28 deletions(-) diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 1d442822866..47fe720f094 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -94,34 +94,6 @@ module Harness.LanguageService { } } - export class NonCachingDocumentRegistry implements ts.DocumentRegistry { - public static Instance: ts.DocumentRegistry = new NonCachingDocumentRegistry(); - - public acquireDocument( - fileName: string, - compilationSettings: ts.CompilerOptions, - scriptSnapshot: ts.IScriptSnapshot, - version: string): ts.SourceFile { - var sourceFile = ts.createSourceFile(fileName, scriptSnapshot.getText(0, scriptSnapshot.getLength()), compilationSettings.target); - sourceFile.version = version; - return sourceFile; - } - - public updateDocument( - document: ts.SourceFile, - fileName: string, - compilationSettings: ts.CompilerOptions, - scriptSnapshot: ts.IScriptSnapshot, - version: string, - textChangeRange: ts.TextChangeRange - ): ts.SourceFile { - return ts.updateLanguageServiceSourceFile(document, scriptSnapshot, version, textChangeRange); - } - - public releaseDocument(fileName: string, compilationSettings: ts.CompilerOptions): void { - // no op since this class doesn't cache anything - } - } export class TypeScriptLS implements ts.LanguageServiceShimHost { private ls: ts.LanguageServiceShim = null; From f56e7ea743277f7ae6588c98fc44cd0297d136a8 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 2 Feb 2015 20:23:54 -0800 Subject: [PATCH 02/39] Add a new scriptSnapshot and use the shim as a wrapper --- src/harness/harnessLanguageService.ts | 37 +++++++++++++++++++-------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 47fe720f094..6eab17957e9 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -1,5 +1,6 @@ /// /// +/// module Harness.LanguageService { export class ScriptInfo { @@ -54,15 +55,10 @@ module Harness.LanguageService { } } - class ScriptSnapshotShim implements ts.ScriptSnapshotShim { - private lineMap: number[] = null; - private textSnapshot: string; - private version: number; - - constructor(private scriptInfo: ScriptInfo) { - this.textSnapshot = scriptInfo.content; - this.version = scriptInfo.version; - } + class ScriptSnapshot implements ts.IScriptSnapshot { + public textSnapshot: string; public version: number; + constructor(public scriptInfo: ScriptInfo) { + this.textSnapshot = scriptInfo.content; this.version = scriptInfo.version; } public getText(start: number, end: number): string { return this.textSnapshot.substring(start, end); @@ -72,9 +68,28 @@ module Harness.LanguageService { return this.textSnapshot.length; } + public getChangeRange(oldScript: ts.IScriptSnapshot): ts.TextChangeRange { + var oldShim = oldScript; + return this.scriptInfo.getTextChangeRangeBetweenVersions(oldShim.version, this.version); + } + } + + class ScriptSnapshotShim implements ts.ScriptSnapshotShim { + constructor(public scriptSnapshot: ScriptSnapshot) { + } + + public getText(start: number, end: number): string { + return this.scriptSnapshot.getText(start, end); + } + + public getLength(): number { + return this.scriptSnapshot.getLength(); + } + public getChangeRange(oldScript: ts.ScriptSnapshotShim): string { var oldShim = oldScript; - var range = this.scriptInfo.getTextChangeRangeBetweenVersions(oldShim.version, this.version); + + var range = this.scriptSnapshot.getChangeRange(oldShim.scriptSnapshot); if (range === null) { return null; } @@ -194,7 +209,7 @@ module Harness.LanguageService { public getScriptSnapshot(fileName: string): ts.ScriptSnapshotShim { if (this.contains(fileName)) { - return new ScriptSnapshotShim(this.getScriptInfo(fileName)); + return new ScriptSnapshotShim(new ScriptSnapshot(this.getScriptInfo(fileName))); } return undefined; } From c3bf36e78300e46424fdee5697b1485a108f4ad9 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 3 Feb 2015 12:40:37 -0800 Subject: [PATCH 03/39] Add missing definition to shims --- src/services/shims.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/services/shims.ts b/src/services/shims.ts index c9f33914e09..e917323efe7 100644 --- a/src/services/shims.ts +++ b/src/services/shims.ts @@ -89,6 +89,7 @@ module ts { getCompilerOptionsDiagnostics(): string; getSyntacticClassifications(fileName: string, start: number, length: number): string; + getSemanticClassifications(fileName: string, start: number, length: number): string; getCompletionsAtPosition(fileName: string, position: number): string; getCompletionEntryDetails(fileName: string, position: number, entryName: string): string; From 7a4a8107dd5d934acd743ef7b75494bf40ebf229 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 3 Feb 2015 12:41:12 -0800 Subject: [PATCH 04/39] Add reference to base runner --- src/harness/harness.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 79defabadeb..52884744535 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -19,6 +19,7 @@ /// /// /// +/// declare var require: any; declare var process: any; From 4c06838d608c831921c274632db2112a2bec74a6 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 3 Feb 2015 17:28:16 -0800 Subject: [PATCH 05/39] Add new Adaptor layer on top of Harness Language Service --- src/harness/harnessLanguageService.ts | 335 +++++++++++++++++++++++++- 1 file changed, 329 insertions(+), 6 deletions(-) diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 6eab17957e9..9316ef813c6 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -75,7 +75,7 @@ module Harness.LanguageService { } class ScriptSnapshotShim implements ts.ScriptSnapshotShim { - constructor(public scriptSnapshot: ScriptSnapshot) { + constructor(public scriptSnapshot: ts.IScriptSnapshot) { } public getText(start: number, end: number): string { @@ -109,6 +109,334 @@ module Harness.LanguageService { } } + export interface LanugageServiceAdaptor { + getHost(): LanguageServiceAdaptorHost; + getLanguageService(): ts.LanguageService; + getClassifier(): ts.Classifier; + getPreProcessedFileInfo(filename: string, fileContents: string): ts.PreProcessedFileInfo; + } + + class LanguageServiceHostBase { + protected fileNameToScript: ts.Map = {}; + + constructor(protected cancellationToken: ts.CancellationToken = CancellationToken.None, + protected settings = ts.getDefaultCompilerOptions()) { + + } + + public getFilenames(): string[] { + var fileNames: string[] = []; + ts.forEachKey(this.fileNameToScript,(fileName) => { fileNames.push(fileName); }); + return fileNames; + } + + public getScriptInfo(fileName: string): ScriptInfo { + return ts.lookUp(this.fileNameToScript, fileName); + } + + public addScript(fileName: string, content: string): void { + this.fileNameToScript[fileName] = new ScriptInfo(fileName, content); + } + + public updateScript(fileName: string, content: string) { + var script = this.getScriptInfo(fileName); + if (script !== null) { + script.updateContent(content); + return; + } + + this.addScript(fileName, content); + } + + public editScript(fileName: string, minChar: number, limChar: number, newText: string) { + var script = this.getScriptInfo(fileName); + if (script !== null) { + script.editContent(minChar, limChar, newText); + return; + } + + throw new Error("No script with name '" + fileName + "'"); + } + + /** + * @param line 1 based index + * @param col 1 based index + */ + public lineColToPosition(fileName: string, line: number, col: number): number { + var script: ScriptInfo = this.fileNameToScript[fileName]; + assert.isNotNull(script); + assert.isTrue(line >= 1); + assert.isTrue(col >= 1); + + return ts.getPositionFromLineAndCharacter(script.lineMap, line, col); + } + + /** + * @param line 0 based index + * @param col 0 based index + */ + public positionToZeroBasedLineCol(fileName: string, position: number): ts.LineAndCharacter { + var script: ScriptInfo = this.fileNameToScript[fileName]; + assert.isNotNull(script); + + var result = ts.getLineAndCharacterOfPosition(script.lineMap, position); + + assert.isTrue(result.line >= 1); + assert.isTrue(result.character >= 1); + return { line: result.line - 1, character: result.character - 1 }; + } + } + + export interface LanguageServiceAdaptorHost extends LanguageServiceHostBase { + } + + /// Native adabtor + class NativeLanguageServiceHost extends LanguageServiceHostBase implements ts.LanguageServiceHost { + getCompilationSettings(): ts.CompilerOptions { return this.settings; } + getCancellationToken(): ts.CancellationToken { return this.cancellationToken; } + getCurrentDirectory(): string { return ""; } + getDefaultLibFilename(): string { return ""; } + getScriptFileNames(): string[] { return this.getFilenames(); } + getScriptSnapshot(filename: string): ts.IScriptSnapshot { + var script = this.getScriptInfo(filename); + return script ? new ScriptSnapshot(script) : undefined; + } + getScriptVersion(filename: string): string { + var script = this.getScriptInfo(filename); + return script ? script.version.toString() : undefined; + } + log(s: string): void { } + trace(s: string): void { } + error(s: string): void { } + } + + export class NativeLanugageServiceAdaptor implements LanugageServiceAdaptor { + private host: NativeLanguageServiceHost; + constructor(cancellationToken?: ts.CancellationToken, options?: ts.CompilerOptions) { + this.host = new NativeLanguageServiceHost(cancellationToken, options); + } + getHost() { return this.host; } + getLanguageService(): ts.LanguageService { return ts.createLanguageService(this.host); } + getClassifier(): ts.Classifier { return ts.createClassifier(); } + getPreProcessedFileInfo(filename: string, fileContents: string): ts.PreProcessedFileInfo { return ts.preProcessFile(fileContents); } + } + + /// Shim adabtor + class ShimLanguageServiceHost extends LanguageServiceHostBase implements ts.LanguageServiceShimHost { + private nativeHost: NativeLanguageServiceHost; + constructor(cancellationToken?: ts.CancellationToken, options?: ts.CompilerOptions) { + super(cancellationToken, options); + this.nativeHost = new NativeLanguageServiceHost(cancellationToken, options); + } + + getFilenames(): string[] { return this.nativeHost.getFilenames(); } + getScriptInfo(fileName: string): ScriptInfo { return this.nativeHost.getScriptInfo(fileName); } + addScript(fileName: string, content: string): void { this.nativeHost.addScript(fileName, content); } + updateScript(fileName: string, content: string): void { return this.nativeHost.updateScript(fileName, content); } + editScript(fileName: string, minChar: number, limChar: number, newText: string): void { this.nativeHost.editScript(fileName, minChar, limChar, newText); } + lineColToPosition(fileName: string, line: number, col: number): number { return this.nativeHost.lineColToPosition(fileName, line, col); } + positionToZeroBasedLineCol(fileName: string, position: number): ts.LineAndCharacter { return this.nativeHost.positionToZeroBasedLineCol(fileName, position); } + + getCompilationSettings(): string { return JSON.stringify(this.nativeHost.getCompilationSettings()); } + getCancellationToken(): ts.CancellationToken { return this.nativeHost.getCancellationToken(); } + getCurrentDirectory(): string { return this.nativeHost.getCurrentDirectory(); } + getDefaultLibFilename(): string { return this.nativeHost.getDefaultLibFilename(); } + getScriptFileNames(): string { return JSON.stringify(this.nativeHost.getScriptFileNames()); } + getScriptSnapshot(filename: string): ts.ScriptSnapshotShim { + var nativeScriptSnapshot = this.nativeHost.getScriptSnapshot(filename); + return nativeScriptSnapshot && new ScriptSnapshotShim(nativeScriptSnapshot); + } + getScriptVersion(filename: string): string { return this.nativeHost.getScriptVersion(filename); } + getLocalizedDiagnosticMessages(): string { return JSON.stringify({}); } + log(s: string): void { this.nativeHost.log(s); } + trace(s: string): void { this.nativeHost.trace(s); } + error(s: string): void { this.nativeHost.error(s); } + } + + class ClassifierShimProxy implements ts.Classifier { + constructor(private shim: ts.ClassifierShim) { } + getClassificationsForLine(text: string, lexState: ts.EndOfLineState, classifyKeywordsInGenerics?: boolean): ts.ClassificationResult { + var result = this.shim.getClassificationsForLine(text, lexState, classifyKeywordsInGenerics).split('\n'); + var entries: ts.ClassificationInfo[] = []; + var i = 0; + var position = 0; + + for (; i < result.length - 1; i += 2) { + var t = entries[i / 2] = { + length: parseInt(result[i]), + classification: parseInt(result[i + 1]) + }; + + assert.isTrue(t.length > 0, "Result length should be greater than 0, got :" + t.length); + position += t.length; + } + var finalLexState = parseInt(result[result.length - 1]); + + assert.equal(position, text.length, "Expected cumulative length of all entries to match the length of the source. expected: " + text.length + ", but got: " + position); + + return { + finalLexState, + entries + }; + } + } + + function unwrappJSONCallResult(result: string): any { + var parsedResult = JSON.parse(result); + if (parsedResult.error) { + throw new Error("Language Service Shim Error: " + JSON.stringify(parsedResult.error)); + } + else if (parsedResult.canceled) { + throw new ts.OperationCanceledException(); + } + return parsedResult.result; + } + + class LanguageServiceShimProxy implements ts.LanguageService { + constructor(private shim: ts.LanguageServiceShim) { } + private unwrappJSONCallResult(result: string): any { + var parsedResult = JSON.parse(result); + if (parsedResult.error) { + throw new Error("Language Service Shim Error: " + JSON.stringify(parsedResult.error)); + } + return parsedResult.result; + } + cleanupSemanticCache(): void { + this.shim.cleanupSemanticCache(); + } + getSyntacticDiagnostics(fileName: string): ts.Diagnostic[] { + return unwrappJSONCallResult(this.shim.getSyntacticDiagnostics(fileName)); + } + getSemanticDiagnostics(fileName: string): ts.Diagnostic[] { + return unwrappJSONCallResult(this.shim.getSemanticDiagnostics(fileName)); + } + getCompilerOptionsDiagnostics(): ts.Diagnostic[] { + return unwrappJSONCallResult(this.shim.getCompilerOptionsDiagnostics()); + } + getSyntacticClassifications(fileName: string, span: ts.TextSpan): ts.ClassifiedSpan[] { + return unwrappJSONCallResult(this.shim.getSyntacticClassifications(fileName, span.start, span.length)); + } + getSemanticClassifications(fileName: string, span: ts.TextSpan): ts.ClassifiedSpan[] { + return unwrappJSONCallResult(this.shim.getSemanticClassifications(fileName, span.start, span.length)); + } + getCompletionsAtPosition(fileName: string, position: number): ts.CompletionInfo { + return unwrappJSONCallResult(this.shim.getCompletionsAtPosition(fileName, position)); + } + getCompletionEntryDetails(fileName: string, position: number, entryName: string): ts.CompletionEntryDetails { + return unwrappJSONCallResult(this.shim.getCompletionEntryDetails(fileName, position, entryName)); + } + getQuickInfoAtPosition(fileName: string, position: number): ts.QuickInfo { + return unwrappJSONCallResult(this.shim.getQuickInfoAtPosition(fileName, position)); + } + getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): ts.TextSpan { + return unwrappJSONCallResult(this.shim.getNameOrDottedNameSpan(fileName, startPos, endPos)); + } + getBreakpointStatementAtPosition(fileName: string, position: number): ts.TextSpan { + return unwrappJSONCallResult(this.shim.getBreakpointStatementAtPosition(fileName, position)); + } + getSignatureHelpItems(fileName: string, position: number): ts.SignatureHelpItems { + return unwrappJSONCallResult(this.shim.getSignatureHelpItems(fileName, position)); + } + getRenameInfo(fileName: string, position: number): ts.RenameInfo { + return unwrappJSONCallResult(this.shim.getRenameInfo(fileName, position)); + } + findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): ts.RenameLocation[] { + return unwrappJSONCallResult(this.shim.findRenameLocations(fileName, position, findInStrings, findInComments)); + } + getDefinitionAtPosition(fileName: string, position: number): ts.DefinitionInfo[] { + return unwrappJSONCallResult(this.shim.getDefinitionAtPosition(fileName, position)); + } + getReferencesAtPosition(fileName: string, position: number): ts.ReferenceEntry[] { + return unwrappJSONCallResult(this.shim.getReferencesAtPosition(fileName, position)); + } + getOccurrencesAtPosition(fileName: string, position: number): ts.ReferenceEntry[] { + return unwrappJSONCallResult(this.shim.getOccurrencesAtPosition(fileName, position)); + } + getNavigateToItems(searchValue: string): ts.NavigateToItem[] { + return unwrappJSONCallResult(this.shim.getNavigateToItems(searchValue)); + } + getNavigationBarItems(fileName: string): ts.NavigationBarItem[] { + return unwrappJSONCallResult(this.shim.getNavigationBarItems(fileName)); + } + getOutliningSpans(fileName: string): ts.OutliningSpan[] { + return unwrappJSONCallResult(this.shim.getOutliningSpans(fileName)); + } + getTodoComments(fileName: string, descriptors: ts.TodoCommentDescriptor[]): ts.TodoComment[] { + return unwrappJSONCallResult(this.shim.getTodoComments(fileName, JSON.stringify(descriptors))); + } + getBraceMatchingAtPosition(fileName: string, position: number): ts.TextSpan[] { + return unwrappJSONCallResult(this.shim.getBraceMatchingAtPosition(fileName, position)); + } + getIndentationAtPosition(fileName: string, position: number, options: ts.EditorOptions): number { + return unwrappJSONCallResult(this.shim.getIndentationAtPosition(fileName, position, JSON.stringify(options))); + } + getFormattingEditsForRange(fileName: string, start: number, end: number, options: ts.FormatCodeOptions): ts.TextChange[] { + return unwrappJSONCallResult(this.shim.getFormattingEditsForRange(fileName, start, end, JSON.stringify(options))); + } + getFormattingEditsForDocument(fileName: string, options: ts.FormatCodeOptions): ts.TextChange[] { + return unwrappJSONCallResult(this.shim.getFormattingEditsForDocument(fileName, JSON.stringify(options))); + } + getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: ts.FormatCodeOptions): ts.TextChange[] { + return unwrappJSONCallResult(this.shim.getFormattingEditsAfterKeystroke(fileName, position, key, JSON.stringify(options))); + } + getEmitOutput(fileName: string): ts.EmitOutput { + return unwrappJSONCallResult(this.shim.getEmitOutput(fileName)); + } + getProgram(): ts.Program { + throw new Error("Program can not be marshalled accross the shim layer."); + } + getSourceFile(filename: string): ts.SourceFile { + throw new Error("SourceFile can not be marshalled accross the shim layer."); + } + dispose(): void { this.shim.dispose({}); } + } + + export class ShimLanugageServiceAdaptor implements LanugageServiceAdaptor { + private host: ShimLanguageServiceHost; + private factory: ts.TypeScriptServicesFactory; + constructor(cancellationToken?: ts.CancellationToken, options?: ts.CompilerOptions) { + this.host = new ShimLanguageServiceHost(cancellationToken, options); + this.factory = new TypeScript.Services.TypeScriptServicesFactory(); + } + getHost() { return this.host; } + getLanguageService(): ts.LanguageService { return new LanguageServiceShimProxy(this.factory.createLanguageServiceShim(this.host)); } + getClassifier(): ts.Classifier { return new ClassifierShimProxy(this.factory.createClassifierShim(this.host)); } + getPreProcessedFileInfo(filename: string, fileContents: string): ts.PreProcessedFileInfo { + var shimResult: { + referencedFiles: ts.IFileReference[]; + importedFiles: ts.IFileReference[]; + isLibFile: boolean; + }; + + var coreServicesShim = this.factory.createCoreServicesShim(this.host); + shimResult = unwrappJSONCallResult(coreServicesShim.getPreProcessedFileInfo(filename, ts.ScriptSnapshot.fromString(fileContents))); + + var convertResult: ts.PreProcessedFileInfo = { + referencedFiles: [], + importedFiles: [], + isLibFile: shimResult.isLibFile + }; + + ts.forEach(shimResult.referencedFiles, refFile => { + convertResult.referencedFiles.push({ + filename: refFile.path, + pos: refFile.position, + end: refFile.position + refFile.length + }); + }); + + ts.forEach(shimResult.importedFiles, importedFile => { + convertResult.importedFiles.push({ + filename: importedFile.path, + pos: importedFile.position, + end: importedFile.position + importedFile.length + }); + }); + + return convertResult; + } + } + export class TypeScriptLS implements ts.LanguageServiceShimHost { private ls: ts.LanguageServiceShim = null; @@ -129,11 +457,6 @@ module Harness.LanguageService { return "TypeScriptLS"; } - public addFile(fileName: string) { - var code = Harness.IO.readFile(fileName); - this.addScript(fileName, code); - } - private getScriptInfo(fileName: string): ScriptInfo { return ts.lookUp(this.fileNameToScript, fileName); } From 5aca35e35f978e3387e9724492029d52272b7f31 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 3 Feb 2015 17:28:33 -0800 Subject: [PATCH 06/39] Move unit tests to use the new adaptors --- .../cases/unittests/services/colorization.ts | 91 ++++++------------- 1 file changed, 26 insertions(+), 65 deletions(-) diff --git a/tests/cases/unittests/services/colorization.ts b/tests/cases/unittests/services/colorization.ts index 20038800a3e..b744b65608b 100644 --- a/tests/cases/unittests/services/colorization.ts +++ b/tests/cases/unittests/services/colorization.ts @@ -1,84 +1,47 @@ /// /// -interface Classification { - position: number; - length: number; - class: ts.TokenClass; -} - -interface ClassiferResult { - tuples: Classification[]; - finalEndOfLineState: ts.EndOfLineState; -} - interface ClassificationEntry { value: any; - class: ts.TokenClass; + classification: ts.TokenClass; } describe('Colorization', function () { - var mytypescriptLS = new Harness.LanguageService.TypeScriptLS(); - var myclassifier = mytypescriptLS.getClassifier(); + // Use the shim adaptor to ensure test coverage of the shim layer for the classifier + var languageServiceAdabtor = new Harness.LanguageService.ShimLanugageServiceAdaptor(); + var classifier = languageServiceAdabtor.getClassifier(); - function getLexicalClassifications(code: string, initialEndOfLineState: ts.EndOfLineState = ts.EndOfLineState.Start): ClassiferResult { - var classResult = myclassifier.getClassificationsForLine(code, initialEndOfLineState).split('\n'); - var tuples: Classification[] = []; - var i = 0; - var position = 0; - - for (; i < classResult.length - 1; i += 2) { - var t = tuples[i / 2] = { - position: position, - length: parseInt(classResult[i]), - class: parseInt(classResult[i + 1]) - }; - - assert.isTrue(t.length > 0, "Result length should be greater than 0, got :" + t.length); - position += t.length; - } - var finalEndOfLineState = classResult[classResult.length - 1]; - - assert.equal(position, code.length, "Expected cumulative length of all entries to match the length of the source. expected: " + code.length + ", but got: " + position); - - return { - tuples: tuples, - finalEndOfLineState: parseInt(finalEndOfLineState) - }; - } - - function verifyClassification(classification: Classification, expectedLength: number, expectedClass: number) { - assert.isNotNull(classification); - assert.equal(classification.length, expectedLength, "Classification length does not match expected. Expected: " + expectedLength + ", Actual: " + classification.length); - assert.equal(classification.class, expectedClass, "Classification class does not match expected. Expected: " + ts.TokenClass[expectedClass] + ", Actual: " + ts.TokenClass[classification.class]); - } - - function getEntryAtPosistion(result: ClassiferResult, position: number) { - for (var i = 0, n = result.tuples.length; i < n; i++) { - if (result.tuples[i].position === position) return result.tuples[i]; + function getEntryAtPosistion(result: ts.ClassificationResult, position: number) { + var entryPosition = 0; + for (var i = 0, n = result.entries.length; i < n; i++) { + var entry = result.entries[i]; + if (entryPosition === position) { + return entry; + } + entryPosition += entry.length; } return undefined; } - function punctuation(text: string) { return { value: text, class: ts.TokenClass.Punctuation }; } - function keyword(text: string) { return { value: text, class: ts.TokenClass.Keyword }; } - function operator(text: string) { return { value: text, class: ts.TokenClass.Operator }; } - function comment(text: string) { return { value: text, class: ts.TokenClass.Comment }; } - function whitespace(text: string) { return { value: text, class: ts.TokenClass.Whitespace }; } - function identifier(text: string) { return { value: text, class: ts.TokenClass.Identifier }; } - function numberLiteral(text: string) { return { value: text, class: ts.TokenClass.NumberLiteral }; } - function stringLiteral(text: string) { return { value: text, class: ts.TokenClass.StringLiteral }; } - function regExpLiteral(text: string) { return { value: text, class: ts.TokenClass.RegExpLiteral }; } - function finalEndOfLineState(value: number) { return { value: value, class: undefined }; } + function punctuation(text: string): ClassificationEntry { return { value: text, classification: ts.TokenClass.Punctuation }; } + function keyword(text: string): ClassificationEntry { return { value: text, classification: ts.TokenClass.Keyword }; } + function operator(text: string): ClassificationEntry { return { value: text, classification: ts.TokenClass.Operator }; } + function comment(text: string): ClassificationEntry { return { value: text, classification: ts.TokenClass.Comment }; } + function whitespace(text: string): ClassificationEntry { return { value: text, classification: ts.TokenClass.Whitespace }; } + function identifier(text: string): ClassificationEntry { return { value: text, classification: ts.TokenClass.Identifier }; } + function numberLiteral(text: string): ClassificationEntry { return { value: text, classification: ts.TokenClass.NumberLiteral }; } + function stringLiteral(text: string): ClassificationEntry { return { value: text, classification: ts.TokenClass.StringLiteral }; } + function regExpLiteral(text: string): ClassificationEntry { return { value: text, classification: ts.TokenClass.RegExpLiteral }; } + function finalEndOfLineState(value: number): ClassificationEntry { return { value: value, classification: undefined }; } function testLexicalClassification(text: string, initialEndOfLineState: ts.EndOfLineState, ...expectedEntries: ClassificationEntry[]): void { - var result = getLexicalClassifications(text, initialEndOfLineState); + var result = classifier.getClassificationsForLine(text, initialEndOfLineState); for (var i = 0, n = expectedEntries.length; i < n; i++) { var expectedEntry = expectedEntries[i]; - if (expectedEntry.class === undefined) { - assert.equal(result.finalEndOfLineState, expectedEntry.value, "final endOfLineState does not match expected."); + if (expectedEntry.classification === undefined) { + assert.equal(result.finalLexState, expectedEntry.value, "final endOfLineState does not match expected."); } else { var actualEntryPosition = text.indexOf(expectedEntry.value); @@ -87,7 +50,7 @@ describe('Colorization', function () { var actualEntry = getEntryAtPosistion(result, actualEntryPosition); assert(actualEntry, "Could not find classification entry for '" + expectedEntry.value + "' at position: " + actualEntryPosition); - assert.equal(actualEntry.class, expectedEntry.class, "Classification class does not match expected. Expected: " + ts.TokenClass[expectedEntry.class] + ", Actual: " + ts.TokenClass[actualEntry.class]); + assert.equal(actualEntry.classification, expectedEntry.classification, "Classification class does not match expected. Expected: " + ts.TokenClass[expectedEntry.classification] + ", Actual: " + ts.TokenClass[actualEntry.classification]); assert.equal(actualEntry.length, expectedEntry.value.length, "Classification length does not match expected. Expected: " + ts.TokenClass[expectedEntry.value.length] + ", Actual: " + ts.TokenClass[actualEntry.length]); } } @@ -320,8 +283,6 @@ describe('Colorization', function () { }); it("LexicallyClassifiesConflictTokens", () => { - debugger; - // Test conflict markers. testLexicalClassification( "class C {\r\n\ From 65e8c00d9af5fa9fd57160a2de6bcd986d06184e Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 3 Feb 2015 17:29:12 -0800 Subject: [PATCH 07/39] Update fourslash tests to use the new adaptors --- src/harness/fourslash.ts | 131 +++++++++++++---------------- tests/cases/fourslash/fourslash.ts | 4 +- 2 files changed, 62 insertions(+), 73 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index e0b74318e26..b4fba9a4501 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -245,11 +245,9 @@ module FourSlash { export class TestState { // Language service instance - public languageServiceShimHost: Harness.LanguageService.TypeScriptLS; + private languageServiceAdaptorHost: Harness.LanguageService.LanguageServiceAdaptorHost; private languageService: ts.LanguageService; - - // A reference to the language service's compiler state's compiler instance - private compiler: () => { getSyntaxTree(fileName: string): ts.SourceFile }; + private cancellationToken: TestCancellationToken; // The current caret position in the active file public currentCaretPosition = 0; @@ -263,8 +261,6 @@ module FourSlash { public formatCodeOptions: ts.FormatCodeOptions; - public cancellationToken: TestCancellationToken; - private scenarioActions: string[] = []; private taoInvalidReason: string = null; @@ -275,19 +271,20 @@ module FourSlash { private addMatchedInputFile(referenceFilePath: string) { var inputFile = this.inputFiles[referenceFilePath]; if (inputFile && !Harness.isLibraryFile(referenceFilePath)) { - this.languageServiceShimHost.addScript(referenceFilePath, inputFile); + this.languageServiceAdaptorHost.addScript(referenceFilePath, inputFile); } } constructor(public testData: FourSlashData) { - // Initialize the language service with all the scripts + // Create a new Services Adaptor this.cancellationToken = new TestCancellationToken(); - this.languageServiceShimHost = new Harness.LanguageService.TypeScriptLS(this.cancellationToken); + var compilationOptions = convertGlobalOptionsToCompilerOptions(this.testData.globalOptions); + var languageServiceAdaptor = new Harness.LanguageService.ShimLanugageServiceAdaptor(this.cancellationToken, compilationOptions); + this.languageServiceAdaptorHost = languageServiceAdaptor.getHost(); + this.languageService = languageServiceAdaptor.getLanguageService(); - var compilationSettings = convertGlobalOptionsToCompilerOptions(this.testData.globalOptions); - this.languageServiceShimHost.setCompilationSettings(compilationSettings); - - var startResolveFileRef: FourSlashFile = undefined; + // Initialize the language service with all the scripts + var startResolveFileRef: FourSlashFile; ts.forEach(testData.files, file => { // Create map between fileName and its content for easily looking up when resolveReference flag is specified @@ -302,18 +299,16 @@ module FourSlash { if (startResolveFileRef) { // Add the entry-point file itself into the languageServiceShimHost - this.languageServiceShimHost.addScript(startResolveFileRef.fileName, startResolveFileRef.content); + this.languageServiceAdaptorHost.addScript(startResolveFileRef.fileName, startResolveFileRef.content); - var jsonResolvedResult = JSON.parse(this.languageServiceShimHost.getCoreService().getPreProcessedFileInfo(startResolveFileRef.fileName, - createScriptSnapShot(startResolveFileRef.content))); - var resolvedResult = jsonResolvedResult.result; - var referencedFiles: ts.IFileReference[] = resolvedResult.referencedFiles; - var importedFiles: ts.IFileReference[] = resolvedResult.importedFiles; + var resolvedResult = languageServiceAdaptor.getPreProcessedFileInfo(startResolveFileRef.fileName, startResolveFileRef.content); + var referencedFiles: ts.FileReference[] = resolvedResult.referencedFiles; + var importedFiles: ts.FileReference[] = resolvedResult.importedFiles; // Add triple reference files into language-service host ts.forEach(referencedFiles, referenceFile => { // Fourslash insert tests/cases/fourslash into inputFile.unitName so we will properly append the same base directory to refFile path - var referenceFilePath = "tests/cases/fourslash/" + referenceFile.path; + var referenceFilePath = "tests/cases/fourslash/" + referenceFile.filename; this.addMatchedInputFile(referenceFilePath); }); @@ -321,29 +316,24 @@ module FourSlash { ts.forEach(importedFiles, importedFile => { // Fourslash insert tests/cases/fourslash into inputFile.unitName and import statement doesn't require ".ts" // so convert them before making appropriate comparison - var importedFilePath = "tests/cases/fourslash/" + importedFile.path + ".ts"; + var importedFilePath = "tests/cases/fourslash/" + importedFile.filename + ".ts"; this.addMatchedInputFile(importedFilePath); }); // Check if no-default-lib flag is false and if so add default library if (!resolvedResult.isLibFile) { - this.languageServiceShimHost.addDefaultLibrary(); + this.languageServiceAdaptorHost.addScript(Harness.Compiler.defaultLibFileName, Harness.Compiler.defaultLibSourceFile.text); } } else { // resolveReference file-option is not specified then do not resolve any files and include all inputFiles ts.forEachKey(this.inputFiles, fileName => { if (!Harness.isLibraryFile(fileName)) { - this.languageServiceShimHost.addScript(fileName, this.inputFiles[fileName]); + this.languageServiceAdaptorHost.addScript(fileName, this.inputFiles[fileName]); } }); - this.languageServiceShimHost.addDefaultLibrary(); + this.languageServiceAdaptorHost.addScript(Harness.Compiler.defaultLibFileName, Harness.Compiler.defaultLibSourceFile.text); } - // Sneak into the language service and get its compiler so we can examine the syntax trees - this.languageService = this.languageServiceShimHost.getLanguageService().languageService; - var compilerState = (this.languageService).compiler; - this.compiler = () => compilerState.compiler; - this.formatCodeOptions = { IndentSize: 4, TabSize: 4, @@ -369,6 +359,11 @@ module FourSlash { this.openFile(0); } + private getFileContent(filename: string): string { + var script = this.languageServiceAdaptorHost.getScriptInfo(this.activeFile.fileName); + return script.content; + } + // Entry points from fourslash.ts public goToMarker(name = '') { var marker = this.getMarkerByName(name); @@ -376,8 +371,8 @@ module FourSlash { this.openFile(marker.fileName); } - var scriptSnapshot = this.languageServiceShimHost.getScriptSnapshot(marker.fileName); - if (marker.position === -1 || marker.position > scriptSnapshot.getLength()) { + var content = this.getFileContent(marker.fileName); + if (marker.position === -1 || marker.position > content.length) { throw new Error('Marker "' + name + '" has been invalidated by unrecoverable edits to the file.'); } this.lastKnownMarker = name; @@ -387,14 +382,14 @@ module FourSlash { public goToPosition(pos: number) { this.currentCaretPosition = pos; - var lineStarts = ts.computeLineStarts(this.getCurrentFileContent()); + var lineStarts = ts.computeLineStarts(this.getFileContent(this.activeFile.fileName)); var lineCharPos = ts.getLineAndCharacterOfPosition(lineStarts, pos); this.scenarioActions.push(''); } public moveCaretRight(count = 1) { this.currentCaretPosition += count; - this.currentCaretPosition = Math.min(this.currentCaretPosition, this.languageServiceShimHost.getScriptSnapshot(this.activeFile.fileName).getLength()); + this.currentCaretPosition = Math.min(this.currentCaretPosition, this.getFileContent(this.activeFile.fileName).length); if (count > 0) { this.scenarioActions.push(''); } else { @@ -453,7 +448,7 @@ module FourSlash { private getAllDiagnostics(): ts.Diagnostic[] { var diagnostics: ts.Diagnostic[] = []; - var fileNames = JSON.parse(this.languageServiceShimHost.getScriptFileNames()); + var fileNames = this.languageServiceAdaptorHost.getFilenames(); for (var i = 0, n = fileNames.length; i < n; i++) { diagnostics.push.apply(this.getDiagnostics(fileNames[i])); } @@ -794,7 +789,6 @@ module FourSlash { } } - public verifyQuickInfoDisplayParts(kind: string, kindModifiers: string, textSpan: { start: number; length: number; }, displayParts: ts.SymbolDisplayPart[], documentation: ts.SymbolDisplayPart[]) { @@ -1189,8 +1183,7 @@ module FourSlash { var file = this.testData.files[i]; var active = (this.activeFile === file); Harness.IO.log('=== Script (' + file.fileName + ') ' + (active ? '(active, cursor at |)' : '') + ' ==='); - var snapshot = this.languageServiceShimHost.getScriptSnapshot(file.fileName); - var content = snapshot.getText(0, snapshot.getLength()); + var content = this.getFileContent(file.fileName); if (active) { content = content.substr(0, this.currentCaretPosition) + (makeCaretVisible ? '|' : "") + content.substr(this.currentCaretPosition); } @@ -1224,8 +1217,7 @@ module FourSlash { } public printContext() { - var fileNames: string[] = JSON.parse(this.languageServiceShimHost.getScriptFileNames()); - ts.forEach(fileNames, Harness.IO.log); + ts.forEach(this.languageServiceAdaptorHost.getFilenames(), Harness.IO.log); } public deleteChar(count = 1) { @@ -1238,7 +1230,7 @@ module FourSlash { for (var i = 0; i < count; i++) { // Make the edit - this.languageServiceShimHost.editScript(this.activeFile.fileName, offset, offset + 1, ch); + this.languageServiceAdaptorHost.editScript(this.activeFile.fileName, offset, offset + 1, ch); this.updateMarkersForEdit(this.activeFile.fileName, offset, offset + 1, ch); if (i % checkCadence === 0) { @@ -1265,7 +1257,7 @@ module FourSlash { public replace(start: number, length: number, text: string) { this.taoInvalidReason = 'replace NYI'; - this.languageServiceShimHost.editScript(this.activeFile.fileName, start, start + length, text); + this.languageServiceAdaptorHost.editScript(this.activeFile.fileName, start, start + length, text); this.updateMarkersForEdit(this.activeFile.fileName, start, start + length, text); this.checkPostEditInvariants(); } @@ -1280,7 +1272,7 @@ module FourSlash { for (var i = 0; i < count; i++) { offset--; // Make the edit - this.languageServiceShimHost.editScript(this.activeFile.fileName, offset, offset + 1, ch); + this.languageServiceAdaptorHost.editScript(this.activeFile.fileName, offset, offset + 1, ch); this.updateMarkersForEdit(this.activeFile.fileName, offset, offset + 1, ch); if (i % checkCadence === 0) { @@ -1325,7 +1317,7 @@ module FourSlash { for (var i = 0; i < text.length; i++) { // Make the edit var ch = text.charAt(i); - this.languageServiceShimHost.editScript(this.activeFile.fileName, offset, offset, ch); + this.languageServiceAdaptorHost.editScript(this.activeFile.fileName, offset, offset, ch); this.languageService.getBraceMatchingAtPosition(this.activeFile.fileName, offset); this.updateMarkersForEdit(this.activeFile.fileName, offset, offset, ch); @@ -1368,7 +1360,7 @@ module FourSlash { var start = this.currentCaretPosition; var offset = this.currentCaretPosition; - this.languageServiceShimHost.editScript(this.activeFile.fileName, offset, offset, text); + this.languageServiceAdaptorHost.editScript(this.activeFile.fileName, offset, offset, text); this.updateMarkersForEdit(this.activeFile.fileName, offset, offset, text); this.checkPostEditInvariants(); offset += text.length; @@ -1396,8 +1388,7 @@ module FourSlash { var incrementalSyntaxDiagnostics = incrementalSourceFile.getSyntacticDiagnostics(); // Check syntactic structure - var snapshot = this.languageServiceShimHost.getScriptSnapshot(this.activeFile.fileName); - var content = snapshot.getText(0, snapshot.getLength()); + var content = this.getFileContent(this.activeFile.fileName); var referenceSourceFile = ts.createLanguageServiceSourceFile( this.activeFile.fileName, createScriptSnapShot(content), ts.ScriptTarget.Latest, /*version:*/ "0", /*setNodeParents:*/ false); @@ -1411,7 +1402,7 @@ module FourSlash { // The caret can potentially end up between the \r and \n, which is confusing. If // that happens, move it back one character if (this.currentCaretPosition > 0) { - var ch = this.languageServiceShimHost.getScriptSnapshot(this.activeFile.fileName).getText(this.currentCaretPosition - 1, this.currentCaretPosition); + var ch = this.getFileContent(this.activeFile.fileName).substring(this.currentCaretPosition - 1, this.currentCaretPosition); if (ch === '\r') { this.currentCaretPosition--; } @@ -1424,10 +1415,9 @@ module FourSlash { var runningOffset = 0; edits = edits.sort((a, b) => a.span.start - b.span.start); // Get a snapshot of the content of the file so we can make sure any formatting edits didn't destroy non-whitespace characters - var snapshot = this.languageServiceShimHost.getScriptSnapshot(fileName); - var oldContent = snapshot.getText(0, snapshot.getLength()); + var oldContent = this.getFileContent(this.activeFile.fileName); for (var j = 0; j < edits.length; j++) { - this.languageServiceShimHost.editScript(fileName, edits[j].span.start + runningOffset, ts.textSpanEnd(edits[j].span) + runningOffset, edits[j].newText); + this.languageServiceAdaptorHost.editScript(fileName, edits[j].span.start + runningOffset, ts.textSpanEnd(edits[j].span) + runningOffset, edits[j].newText); this.updateMarkersForEdit(fileName, edits[j].span.start + runningOffset, ts.textSpanEnd(edits[j].span) + runningOffset, edits[j].newText); var change = (edits[j].span.start - ts.textSpanEnd(edits[j].span)) + edits[j].newText.length; runningOffset += change; @@ -1436,8 +1426,7 @@ module FourSlash { } if (isFormattingEdit) { - snapshot = this.languageServiceShimHost.getScriptSnapshot(fileName); - var newContent = snapshot.getText(0, snapshot.getLength()); + var newContent = this.getFileContent(fileName); if (newContent.replace(/\s/g, '') !== oldContent.replace(/\s/g, '')) { this.raiseError('Formatting operation destroyed non-whitespace content'); @@ -1484,7 +1473,7 @@ module FourSlash { } public goToEOF() { - var len = this.languageServiceShimHost.getScriptSnapshot(this.activeFile.fileName).getLength(); + var len = this.getFileContent(this.activeFile.fileName).length; this.goToPosition(len); } @@ -1605,7 +1594,7 @@ module FourSlash { public verifyCurrentFileContent(text: string) { this.taoInvalidReason = 'verifyCurrentFileContent NYI'; - var actual = this.getCurrentFileContent(); + var actual = this.getFileContent(this.activeFile.fileName); var replaceNewlines = (str: string) => str.replace(/\r\n/g, "\n"); if (replaceNewlines(actual) !== replaceNewlines(text)) { throw new Error('verifyCurrentFileContent\n' + @@ -1617,7 +1606,7 @@ module FourSlash { public verifyTextAtCaretIs(text: string) { this.taoInvalidReason = 'verifyCurrentFileContent NYI'; - var actual = this.languageServiceShimHost.getScriptSnapshot(this.activeFile.fileName).getText(this.currentCaretPosition, this.currentCaretPosition + text.length); + var actual = this.getFileContent(this.activeFile.fileName).substring(this.currentCaretPosition, this.currentCaretPosition + text.length); if (actual !== text) { throw new Error('verifyTextAtCaretIs\n' + '\tExpected: "' + text + '"\n' + @@ -1635,7 +1624,7 @@ module FourSlash { '\t Actual: undefined'); } - var actual = this.languageServiceShimHost.getScriptSnapshot(this.activeFile.fileName).getText(span.start, ts.textSpanEnd(span)); + var actual = this.getFileContent(this.activeFile.fileName).substring(span.start, ts.textSpanEnd(span)); if (actual !== text) { this.raiseError('verifyCurrentNameOrDottedNameSpanText\n' + '\tExpected: "' + text + '"\n' + @@ -1722,7 +1711,7 @@ module FourSlash { } public verifySyntacticClassifications(expected: { classificationType: string; text: string }[]) { - var actual = this.languageService.getSyntacticClassifications(this.activeFile.fileName, + var actual = this.languageService.getSyntacticClassifications(this.activeFile.fileName, ts.createTextSpan(0, this.activeFile.content.length)); this.verifyClassifications(expected, actual); @@ -1812,8 +1801,7 @@ module FourSlash { for (var i = 0; i < this.testData.files.length; i++) { var file = this.testData.files[i]; - var snapshot = this.languageServiceShimHost.getScriptSnapshot(file.fileName); - var content = snapshot.getText(0, snapshot.getLength()); + var content = this.getFileContent(file.fileName); referenceLanguageServiceShimHost.addScript(this.testData.files[i].fileName, content); } @@ -1847,8 +1835,7 @@ module FourSlash { var failure = anyFailed || (refName !== pullName); if (failure) { - snapshot = this.languageServiceShimHost.getScriptSnapshot(this.activeFile.fileName); - content = snapshot.getText(0, snapshot.getLength()); + content = this.getFileContent(this.activeFile.fileName); var textAtPosition = content.substr(positions[i], 10); var positionDescription = 'Position ' + positions[i] + ' ("' + textAtPosition + '"...)'; @@ -2047,12 +2034,11 @@ module FourSlash { // The current caret position (in line/col terms) var line = this.getCurrentCaretFilePosition().line; // The line/col of the start of this line - var pos = this.languageServiceShimHost.lineColToPosition(this.activeFile.fileName, line, 1); + var pos = this.languageServiceAdaptorHost.lineColToPosition(this.activeFile.fileName, line, 1); // The index of the current file // The text from the start of the line to the end of the file - var snapshot = this.languageServiceShimHost.getScriptSnapshot(this.activeFile.fileName); - var text = snapshot.getText(pos, snapshot.getLength()); + var text = this.getFileContent(this.activeFile.fileName).substring(pos); // Truncate to the first newline var newlinePos = text.indexOf('\n'); @@ -2067,13 +2053,8 @@ module FourSlash { } } - private getCurrentFileContent() { - var snapshot = this.languageServiceShimHost.getScriptSnapshot(this.activeFile.fileName); - return snapshot.getText(0, snapshot.getLength()); - } - private getCurrentCaretFilePosition() { - var result = this.languageServiceShimHost.positionToZeroBasedLineCol(this.activeFile.fileName, this.currentCaretPosition); + var result = this.languageServiceAdaptorHost.positionToZeroBasedLineCol(this.activeFile.fileName, this.currentCaretPosition); if (result.line >= 0) { result.line++; } @@ -2158,7 +2139,7 @@ module FourSlash { } private getLineColStringAtPosition(position: number) { - var pos = this.languageServiceShimHost.positionToZeroBasedLineCol(this.activeFile.fileName, position); + var pos = this.languageServiceAdaptorHost.positionToZeroBasedLineCol(this.activeFile.fileName, position); return 'line ' + (pos.line + 1) + ', col ' + pos.character; } @@ -2184,6 +2165,14 @@ module FourSlash { originalName: '' }; } + + public setCancelled(numberOfCalls: number): void { + this.cancellationToken.setCancelled(numberOfCalls) + } + + public resetCancelled(): void { + this.cancellationToken.resetCancelled(); + } } // TOOD: should these just use the Harness's stdout/stderr? diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 5b88b15f9fa..77b5add7a11 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -561,11 +561,11 @@ module FourSlashInterface { export class cancellation { public resetCancelled() { - FourSlash.currentTestState.cancellationToken.resetCancelled(); + FourSlash.currentTestState.resetCancelled(); } public setCancelled(numberOfCalls: number = 0) { - FourSlash.currentTestState.cancellationToken.setCancelled(numberOfCalls); + FourSlash.currentTestState.setCancelled(numberOfCalls); } } From 42457636b6c01b27bc7851bb478e014bff241a79 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 4 Feb 2015 11:07:55 -0800 Subject: [PATCH 08/39] Remove the implementation of TypeScriptLS --- src/harness/fourslash.ts | 63 +--- src/harness/harnessLanguageService.ts | 278 ------------------ .../cases/fourslash/addMethodToInterface1.ts | 1 - .../cases/fourslash/arrayConcatTypeCheck0.ts | 1 - .../cases/fourslash/arrayConcatTypeCheck1.ts | 1 - .../arrayTypeMismatchIncrementalTypeCheck.ts | 31 -- .../cases/fourslash/emptyTypeArgumentList.ts | 7 - tests/cases/fourslash/fourslash.ts | 12 - .../cases/fourslash/getTypeAtModuleExtends.ts | 12 - tests/cases/fourslash/numberAssignement0.ts | 8 - .../pullFullDiffTypeParameterExtends0.ts | 29 -- .../restParametersTypeValidation1.ts | 12 - .../typeCheckAfterAddingGenericParameter.ts | 2 - tests/cases/fourslash/typeCheckExpression0.ts | 27 -- .../typeCheckGenericTypeLiteralArgument.ts | 12 - .../fourslash/typeCheckIndexSignature.ts | 11 - .../fourslash/typeCheckIndexerAccess1.ts | 40 --- 17 files changed, 1 insertion(+), 546 deletions(-) delete mode 100644 tests/cases/fourslash/arrayTypeMismatchIncrementalTypeCheck.ts delete mode 100644 tests/cases/fourslash/emptyTypeArgumentList.ts delete mode 100644 tests/cases/fourslash/getTypeAtModuleExtends.ts delete mode 100644 tests/cases/fourslash/numberAssignement0.ts delete mode 100644 tests/cases/fourslash/pullFullDiffTypeParameterExtends0.ts delete mode 100644 tests/cases/fourslash/restParametersTypeValidation1.ts delete mode 100644 tests/cases/fourslash/typeCheckExpression0.ts delete mode 100644 tests/cases/fourslash/typeCheckGenericTypeLiteralArgument.ts delete mode 100644 tests/cases/fourslash/typeCheckIndexSignature.ts delete mode 100644 tests/cases/fourslash/typeCheckIndexerAccess1.ts diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index b4fba9a4501..5b46ec32a1c 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -279,7 +279,7 @@ module FourSlash { // Create a new Services Adaptor this.cancellationToken = new TestCancellationToken(); var compilationOptions = convertGlobalOptionsToCompilerOptions(this.testData.globalOptions); - var languageServiceAdaptor = new Harness.LanguageService.ShimLanugageServiceAdaptor(this.cancellationToken, compilationOptions); + var languageServiceAdaptor = new Harness.LanguageService.NativeLanugageServiceAdaptor(this.cancellationToken, compilationOptions); this.languageServiceAdaptorHost = languageServiceAdaptor.getHost(); this.languageService = languageServiceAdaptor.getLanguageService(); @@ -1787,67 +1787,6 @@ module FourSlash { } } - public verifyTypesAgainstFullCheckAtPositions(positions: number[]) { - this.taoInvalidReason = 'verifyTypesAgainstFullCheckAtPositions impossible'; - - // Create a from-scratch LS to check against - var referenceLanguageServiceShimHost = new Harness.LanguageService.TypeScriptLS(); - var referenceLanguageServiceShim = referenceLanguageServiceShimHost.getLanguageService(); - var referenceLanguageService = referenceLanguageServiceShim.languageService; - - // Add lib.d.ts to the reference language service - referenceLanguageServiceShimHost.addDefaultLibrary(); - - for (var i = 0; i < this.testData.files.length; i++) { - var file = this.testData.files[i]; - - var content = this.getFileContent(file.fileName); - referenceLanguageServiceShimHost.addScript(this.testData.files[i].fileName, content); - } - - for (i = 0; i < positions.length; i++) { - var nameOf = (type: ts.QuickInfo) => type ? ts.displayPartsToString(type.displayParts) : '(none)'; - - var pullName: string, refName: string; - var anyFailed = false; - - var errMsg = ''; - - try { - var pullType = this.languageService.getQuickInfoAtPosition(this.activeFile.fileName, positions[i]); - pullName = nameOf(pullType); - } catch (err1) { - errMsg = 'Failed to get pull type check. Exception: ' + err1 + '\r\n'; - if (err1.stack) errMsg = errMsg + err1.stack; - pullName = '(failed)'; - anyFailed = true; - } - - try { - var referenceType = referenceLanguageService.getQuickInfoAtPosition(this.activeFile.fileName, positions[i]); - refName = nameOf(referenceType); - } catch (err2) { - errMsg = 'Failed to get full type check. Exception: ' + err2 + '\r\n'; - if (err2.stack) errMsg = errMsg + err2.stack; - refName = '(failed)'; - anyFailed = true; - } - - var failure = anyFailed || (refName !== pullName); - if (failure) { - content = this.getFileContent(this.activeFile.fileName); - var textAtPosition = content.substr(positions[i], 10); - var positionDescription = 'Position ' + positions[i] + ' ("' + textAtPosition + '"...)'; - - if (anyFailed) { - throw new Error('Exception thrown in language service for ' + positionDescription + '\r\n' + errMsg); - } else if (refName !== pullName) { - throw new Error('Pull/Full disagreement failed at ' + positionDescription + ' - expected full typecheck type "' + refName + '" to equal pull type "' + pullName + '".'); - } - } - } - } - /* Check number of navigationItems which match both searchValue and matchKind. Report an error if expected value and actual value do not match. diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 9316ef813c6..dcf211d3306 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -436,283 +436,5 @@ module Harness.LanguageService { return convertResult; } } - - export class TypeScriptLS implements ts.LanguageServiceShimHost { - private ls: ts.LanguageServiceShim = null; - - private fileNameToScript: ts.Map = {}; - private settings: ts.CompilerOptions = {}; - - constructor(private cancellationToken: ts.CancellationToken = CancellationToken.None) { - } - - public trace(s: string) { - } - - public addDefaultLibrary() { - this.addScript(Harness.Compiler.defaultLibFileName, Harness.Compiler.defaultLibSourceFile.text); - } - - public getHostIdentifier(): string { - return "TypeScriptLS"; - } - - private getScriptInfo(fileName: string): ScriptInfo { - return ts.lookUp(this.fileNameToScript, fileName); - } - - public addScript(fileName: string, content: string) { - this.fileNameToScript[fileName] = new ScriptInfo(fileName, content); - } - - private contains(fileName: string): boolean { - return ts.hasProperty(this.fileNameToScript, fileName); - } - - public updateScript(fileName: string, content: string) { - var script = this.getScriptInfo(fileName); - if (script !== null) { - script.updateContent(content); - return; - } - - this.addScript(fileName, content); - } - - public editScript(fileName: string, minChar: number, limChar: number, newText: string) { - var script = this.getScriptInfo(fileName); - if (script !== null) { - script.editContent(minChar, limChar, newText); - return; - } - - throw new Error("No script with name '" + fileName + "'"); - } - - ////////////////////////////////////////////////////////////////////// - // ILogger implementation - // - public information(): boolean { return false; } - public debug(): boolean { return true; } - public warning(): boolean { return true; } - public error(): boolean { return true; } - public fatal(): boolean { return true; } - - public log(s: string): void { - // For debugging... - //TypeScript.Environment.standardOut.WriteLine("TypeScriptLS:" + s); - } - - ////////////////////////////////////////////////////////////////////// - // LanguageServiceShimHost implementation - // - - /// Returns json for Tools.CompilationSettings - public getCompilationSettings(): string { - return JSON.stringify(this.settings); - } - - public getCancellationToken(): ts.CancellationToken { - return this.cancellationToken; - } - - public getCurrentDirectory(): string { - return ""; - } - - public getDefaultLibFilename(): string { - return ""; - } - - public getScriptFileNames(): string { - var fileNames: string[] = []; - ts.forEachKey(this.fileNameToScript,(fileName) => { fileNames.push(fileName); }); - return JSON.stringify(fileNames); - } - - public getScriptSnapshot(fileName: string): ts.ScriptSnapshotShim { - if (this.contains(fileName)) { - return new ScriptSnapshotShim(new ScriptSnapshot(this.getScriptInfo(fileName))); - } - return undefined; - } - - public getScriptVersion(fileName: string): string { - if (this.contains(fileName)) { - return this.getScriptInfo(fileName).version.toString(); - } - return undefined; - } - - public getLocalizedDiagnosticMessages(): string { - return JSON.stringify({}); - } - - /** Return a new instance of the language service shim, up-to-date wrt to typecheck. - * To access the non-shim (i.e. actual) language service, use the "ls.languageService" property. - */ - public getLanguageService(): ts.LanguageServiceShim { - this.ls = new TypeScript.Services.TypeScriptServicesFactory().createLanguageServiceShim(this); - return this.ls; - } - - public setCompilationSettings(settings: ts.CompilerOptions) { - for (var key in settings) { - if (settings.hasOwnProperty(key)) { - this.settings[key] = settings[key]; - } - } - } - - /** Return a new instance of the classifier service shim */ - public getClassifier(): ts.ClassifierShim { - return new TypeScript.Services.TypeScriptServicesFactory().createClassifierShim(this); - } - - public getCoreService(): ts.CoreServicesShim { - return new TypeScript.Services.TypeScriptServicesFactory().createCoreServicesShim(this); - } - - /** Parse file given its source text */ - public parseSourceText(fileName: string, sourceText: ts.IScriptSnapshot): ts.SourceFile { - var result = ts.createSourceFile(fileName, sourceText.getText(0, sourceText.getLength()), ts.ScriptTarget.Latest); - result.version = "1"; - return result; - } - - /** Parse a file on disk given its fileName */ - public parseFile(fileName: string) { - var sourceText = ts.ScriptSnapshot.fromString(Harness.IO.readFile(fileName)); - return this.parseSourceText(fileName, sourceText); - } - - /** - * @param line 1 based index - * @param col 1 based index - */ - public lineColToPosition(fileName: string, line: number, col: number): number { - var script: ScriptInfo = this.fileNameToScript[fileName]; - assert.isNotNull(script); - assert.isTrue(line >= 1); - assert.isTrue(col >= 1); - - return ts.getPositionFromLineAndCharacter(script.lineMap, line, col); - } - - /** - * @param line 0 based index - * @param col 0 based index - */ - public positionToZeroBasedLineCol(fileName: string, position: number): ts.LineAndCharacter { - var script: ScriptInfo = this.fileNameToScript[fileName]; - assert.isNotNull(script); - - var result = ts.getLineAndCharacterOfPosition(script.lineMap, position); - - assert.isTrue(result.line >= 1); - assert.isTrue(result.character >= 1); - return { line: result.line - 1, character: result.character - 1 }; - } - - /** Verify that applying edits to sourceFileName result in the content of the file baselineFileName */ - public checkEdits(sourceFileName: string, baselineFileName: string, edits: ts.TextChange[]) { - var script = Harness.IO.readFile(sourceFileName); - var formattedScript = this.applyEdits(script, edits); - var baseline = Harness.IO.readFile(baselineFileName); - - function noDiff(text1: string, text2: string) { - text1 = text1.replace(/^\s+|\s+$/g, "").replace(/\r\n?/g, "\n"); - text2 = text2.replace(/^\s+|\s+$/g, "").replace(/\r\n?/g, "\n"); - - if (text1 !== text2) { - var errorString = ""; - var text1Lines = text1.split(/\n/); - var text2Lines = text2.split(/\n/); - for (var i = 0; i < text1Lines.length; i++) { - if (text1Lines[i] !== text2Lines[i]) { - errorString += "Difference at line " + (i + 1) + ":\n"; - errorString += " Left File: " + text1Lines[i] + "\n"; - errorString += " Right File: " + text2Lines[i] + "\n\n"; - } - } - throw (new Error(errorString)); - } - } - assert.isTrue(noDiff(formattedScript, baseline)); - assert.equal(formattedScript, baseline); - } - - - /** Apply an array of text edits to a string, and return the resulting string. */ - public applyEdits(content: string, edits: ts.TextChange[]): string { - var result = content; - edits = this.normalizeEdits(edits); - - for (var i = edits.length - 1; i >= 0; i--) { - var edit = edits[i]; - var prefix = result.substring(0, edit.span.start); - var middle = edit.newText; - var suffix = result.substring(ts.textSpanEnd(edit.span)); - result = prefix + middle + suffix; - } - return result; - } - - /** Normalize an array of edits by removing overlapping entries and sorting entries on the minChar position. */ - private normalizeEdits(edits: ts.TextChange[]): ts.TextChange[] { - var result: ts.TextChange[] = []; - - function mapEdits(edits: ts.TextChange[]): { edit: ts.TextChange; index: number; }[] { - var result: { edit: ts.TextChange; index: number; }[] = []; - for (var i = 0; i < edits.length; i++) { - result.push({ edit: edits[i], index: i }); - } - return result; - } - - var temp = mapEdits(edits).sort(function (a, b) { - var result = a.edit.span.start - b.edit.span.start; - if (result === 0) - result = a.index - b.index; - return result; - }); - - var current = 0; - var next = 1; - while (current < temp.length) { - var currentEdit = temp[current].edit; - - // Last edit - if (next >= temp.length) { - result.push(currentEdit); - current++; - continue; - } - var nextEdit = temp[next].edit; - - var gap = nextEdit.span.start - ts.textSpanEnd(currentEdit.span); - - // non-overlapping edits - if (gap >= 0) { - result.push(currentEdit); - current = next; - next++; - continue; - } - - // overlapping edits: for now, we only support ignoring an next edit - // entirely contained in the current edit. - if (ts.textSpanEnd(currentEdit.span) >= ts.textSpanEnd(nextEdit.span)) { - next++; - continue; - } - else { - throw new Error("Trying to apply overlapping edits"); - } - } - - return result; - } - } } \ No newline at end of file diff --git a/tests/cases/fourslash/addMethodToInterface1.ts b/tests/cases/fourslash/addMethodToInterface1.ts index 749f5601173..07cd4700583 100644 --- a/tests/cases/fourslash/addMethodToInterface1.ts +++ b/tests/cases/fourslash/addMethodToInterface1.ts @@ -12,4 +12,3 @@ edit.disableFormatting(); goTo.marker('1'); edit.insert(" compareTo(): number;\n"); -diagnostics.validateTypesAtPositions(168,84,53,118,22); diff --git a/tests/cases/fourslash/arrayConcatTypeCheck0.ts b/tests/cases/fourslash/arrayConcatTypeCheck0.ts index ac5404266a6..9250eb5b6fd 100644 --- a/tests/cases/fourslash/arrayConcatTypeCheck0.ts +++ b/tests/cases/fourslash/arrayConcatTypeCheck0.ts @@ -14,4 +14,3 @@ edit.disableFormatting(); goTo.marker('1'); edit.insert(", 'world'"); -diagnostics.validateTypesAtPositions(78); diff --git a/tests/cases/fourslash/arrayConcatTypeCheck1.ts b/tests/cases/fourslash/arrayConcatTypeCheck1.ts index 42d9cdb8a1c..c62bd5b7f14 100644 --- a/tests/cases/fourslash/arrayConcatTypeCheck1.ts +++ b/tests/cases/fourslash/arrayConcatTypeCheck1.ts @@ -23,5 +23,4 @@ goTo.marker('2'); edit.deleteAtCaret(7); goTo.marker('4'); -diagnostics.validateTypesAtPositions(43); diff --git a/tests/cases/fourslash/arrayTypeMismatchIncrementalTypeCheck.ts b/tests/cases/fourslash/arrayTypeMismatchIncrementalTypeCheck.ts deleted file mode 100644 index 778f20db219..00000000000 --- a/tests/cases/fourslash/arrayTypeMismatchIncrementalTypeCheck.ts +++ /dev/null @@ -1,31 +0,0 @@ -/// - -//// interface Iterator { -//// (value: T, index: any): U; -//// } -//// -//// interface WrappedArray { -//// map(iterator: Iterator): U[]; -//// } -//// -//// interface Underscore { -//// (list: T[]): WrappedArray; -//// map(list: T[], iterator: Iterator, context?: any): U[]; -//// } -//// -//// declare var _: Underscore; -//// -//// var a: string[]; -//// var b = _.map(a, x => x.length); // Type any[], should be number[] -//// var c = _(a).map(); -//// var d = a.map(x => x.length); -//// var bb = _.map(aa, x => x.length); -//// var cc = _(aa).map(x => x.length); // Error, could not select overload -//// var dd = aa.map(x => x.length); // Error, could not select overload -//// -//// -//// -//// - -edit.disableFormatting(); -diagnostics.validateTypesAtPositions(364); diff --git a/tests/cases/fourslash/emptyTypeArgumentList.ts b/tests/cases/fourslash/emptyTypeArgumentList.ts deleted file mode 100644 index d8f7947559b..00000000000 --- a/tests/cases/fourslash/emptyTypeArgumentList.ts +++ /dev/null @@ -1,7 +0,0 @@ -/// - -//// function foo2(test); -//// function foo2() { } -//// /**/foo2<>(""); -goTo.marker(); -diagnostics.validateTypeAtCurrentPosition(); diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 77b5add7a11..717962fd39f 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -80,16 +80,6 @@ module FourSlashInterface { } } - export class diagnostics { - public validateTypeAtCurrentPosition() { - return this.validateTypesAtPositions(FourSlash.currentTestState.currentCaretPosition); - } - - public validateTypesAtPositions(...positions: number[]) { - return FourSlash.currentTestState.verifyTypesAgainstFullCheckAtPositions(positions); - } - } - export class goTo { // Moves the caret to the specified marker, // or the anonymous marker ('/**/') if no name @@ -647,7 +637,6 @@ module fs { export var edit = new FourSlashInterface.edit(); export var debug = new FourSlashInterface.debug(); export var format = new FourSlashInterface.format(); - export var diagnostics = new FourSlashInterface.diagnostics(); export var cancellation = new FourSlashInterface.cancellation(); } module ts { @@ -666,6 +655,5 @@ var verify = new FourSlashInterface.verify(); var edit = new FourSlashInterface.edit(); var debug = new FourSlashInterface.debug(); var format = new FourSlashInterface.format(); -var diagnostics = new FourSlashInterface.diagnostics(); var cancellation = new FourSlashInterface.cancellation(); var classification = FourSlashInterface.classification; diff --git a/tests/cases/fourslash/getTypeAtModuleExtends.ts b/tests/cases/fourslash/getTypeAtModuleExtends.ts deleted file mode 100644 index 8114ee94c1b..00000000000 --- a/tests/cases/fourslash/getTypeAtModuleExtends.ts +++ /dev/null @@ -1,12 +0,0 @@ -/// - -////declare module A.B { -//// export class C { } -////} -//// -////import ab = A.B; -//// -////class D extends ab.C/**/{ } - -goTo.marker(); -diagnostics.validateTypesAtPositions(FourSlash.currentTestState.currentCaretPosition); diff --git a/tests/cases/fourslash/numberAssignement0.ts b/tests/cases/fourslash/numberAssignement0.ts deleted file mode 100644 index 540a8d91f3d..00000000000 --- a/tests/cases/fourslash/numberAssignement0.ts +++ /dev/null @@ -1,8 +0,0 @@ -/// - -//// var x: Number; -//// var y: Number; -//// var z = x ; - -edit.disableFormatting(); -diagnostics.validateTypesAtPositions(28); diff --git a/tests/cases/fourslash/pullFullDiffTypeParameterExtends0.ts b/tests/cases/fourslash/pullFullDiffTypeParameterExtends0.ts deleted file mode 100644 index 990d65404d3..00000000000 --- a/tests/cases/fourslash/pullFullDiffTypeParameterExtends0.ts +++ /dev/null @@ -1,29 +0,0 @@ -/// - -//// class A { } -//// class B { -//// data: A; -//// } -//// -//// // Below 2 should compile without error -//// var x: A< { }, { b: number }>; -//// var y: B< { a: string }, { }>; -//// -//// -//// // Below should be in error -//// var x1: A<{ a: string;}>; -//// var x2: A<{ a: number }>; -//// var x3: B<{ a: string;}, { b: string }>; -//// var x4: B<{ a: string;}>; -//// var x5: A<{ a: string; b: number }, { a: string }>; -//// var x6: B<>; -//// -//// interface I1 { -//// a: string; -//// } -//// var x8: B; -//// - -edit.disableFormatting(); -diagnostics.validateTypesAtPositions(34); - diff --git a/tests/cases/fourslash/restParametersTypeValidation1.ts b/tests/cases/fourslash/restParametersTypeValidation1.ts deleted file mode 100644 index b598ae7fc84..00000000000 --- a/tests/cases/fourslash/restParametersTypeValidation1.ts +++ /dev/null @@ -1,12 +0,0 @@ -/// - -//// function f18(a?:string, ...b){} -//// -//// function f19(a?:string, b?){} -//// -//// function f20(a:string, b?:string, ...c:number[]){} -//// -//// function f21(a:string, b?:string, ...d:number[]){} - -edit.disableFormatting(); -diagnostics.validateTypesAtPositions(133); diff --git a/tests/cases/fourslash/typeCheckAfterAddingGenericParameter.ts b/tests/cases/fourslash/typeCheckAfterAddingGenericParameter.ts index e2e978dd7ea..fa312f3c711 100644 --- a/tests/cases/fourslash/typeCheckAfterAddingGenericParameter.ts +++ b/tests/cases/fourslash/typeCheckAfterAddingGenericParameter.ts @@ -20,5 +20,3 @@ edit.insert(", X"); goTo.marker('addTypeParam'); edit.insert(", X"); - -diagnostics.validateTypesAtPositions(91, 163); diff --git a/tests/cases/fourslash/typeCheckExpression0.ts b/tests/cases/fourslash/typeCheckExpression0.ts deleted file mode 100644 index 51c6ae75655..00000000000 --- a/tests/cases/fourslash/typeCheckExpression0.ts +++ /dev/null @@ -1,27 +0,0 @@ -/// - -//// class Point { -//// -//// constructor(public x: number) { -//// -//// } -//// getDist() { -//// } -//// static origin = new Point(0); -//// } -//// -//// class Point3D { -//// -//// constructor(x: number, y: number, private z) { -//// super(x, y); -//// } -//// -//// getDist() { -//// return Math.sqrt(this.x*this.x + this.z*this.m); -//// } -//// } -//// -//// - -edit.disableFormatting(); -diagnostics.validateTypesAtPositions(258); diff --git a/tests/cases/fourslash/typeCheckGenericTypeLiteralArgument.ts b/tests/cases/fourslash/typeCheckGenericTypeLiteralArgument.ts deleted file mode 100644 index 107c7a3b525..00000000000 --- a/tests/cases/fourslash/typeCheckGenericTypeLiteralArgument.ts +++ /dev/null @@ -1,12 +0,0 @@ -/// - -//// interface Sequence { -//// each(iterator: (value: T) => void): void; -//// filter(): Sequence; -//// groupBy(keySelector: () => K): Sequence<{ items: T/**/[]; }>; -//// } - -goTo.file(0); - -// Marker in above file is placed at position 154 -diagnostics.validateTypesAtPositions(154); diff --git a/tests/cases/fourslash/typeCheckIndexSignature.ts b/tests/cases/fourslash/typeCheckIndexSignature.ts deleted file mode 100644 index a0c7d049b93..00000000000 --- a/tests/cases/fourslash/typeCheckIndexSignature.ts +++ /dev/null @@ -1,11 +0,0 @@ -/// - -//// function method() { -//// var dictionary = <{ [index: string]: string; }>{}; -//// } -//// - -edit.disableFormatting(); // Disregard, just here to keep Fourslash happy - -diagnostics.validateTypesAtPositions(44); - diff --git a/tests/cases/fourslash/typeCheckIndexerAccess1.ts b/tests/cases/fourslash/typeCheckIndexerAccess1.ts deleted file mode 100644 index 384f6d003e2..00000000000 --- a/tests/cases/fourslash/typeCheckIndexerAccess1.ts +++ /dev/null @@ -1,40 +0,0 @@ -/// - -//// // @sourcemap: true -//// module Foo.Bar { -//// "use strict"; -//// -//// class Greeter { -//// constructor(public greeting: string) { -//// } -//// -//// greet() { -//// } -//// } -//// -//// -//// function foo(greeting: string): Foo.Bar.Greeter { -//// return new Greeter(greeting); -//// } -//// -//// var greeter = new Greeter("Hello, world!"); -//// var str = greeter.greet(); -//// -//// function foo2(greeting: string, ...restGreetings) { -//// var greeters: Greeter[] = []; -//// new Greeter(greeting); -//// for (var i = 0; restGreetings.length; i++) { -//// greeters.push(new Greeter(restGreetings[i])); -//// } -//// -//// return greeters; -//// } -//// -//// var b = foo2("Hello", "World"); -//// for (var j = 0; j < b.length; j++) { -//// b[j].greet(); -//// } -//// } - -edit.disableFormatting(); -diagnostics.validateTypesAtPositions(705); \ No newline at end of file From c2bca0e84db94c894dac83ec5a69fdd88acbdf65 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 4 Feb 2015 12:16:47 -0800 Subject: [PATCH 09/39] Fix typo in type name --- src/harness/harnessLanguageService.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index dcf211d3306..4b188cf96f6 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -109,7 +109,7 @@ module Harness.LanguageService { } } - export interface LanugageServiceAdaptor { + export interface LanguageServiceAdaptor { getHost(): LanguageServiceAdaptorHost; getLanguageService(): ts.LanguageService; getClassifier(): ts.Classifier; @@ -210,7 +210,7 @@ module Harness.LanguageService { error(s: string): void { } } - export class NativeLanugageServiceAdaptor implements LanugageServiceAdaptor { + export class NativeLanugageServiceAdaptor implements LanguageServiceAdaptor { private host: NativeLanguageServiceHost; constructor(cancellationToken?: ts.CancellationToken, options?: ts.CompilerOptions) { this.host = new NativeLanguageServiceHost(cancellationToken, options); @@ -391,7 +391,7 @@ module Harness.LanguageService { dispose(): void { this.shim.dispose({}); } } - export class ShimLanugageServiceAdaptor implements LanugageServiceAdaptor { + export class ShimLanugageServiceAdaptor implements LanguageServiceAdaptor { private host: ShimLanguageServiceHost; private factory: ts.TypeScriptServicesFactory; constructor(cancellationToken?: ts.CancellationToken, options?: ts.CompilerOptions) { From c5006ca8acb21ad88f5dedc47370322b2c652b63 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 4 Feb 2015 12:17:04 -0800 Subject: [PATCH 10/39] remove new line --- src/harness/harness.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 52884744535..9bf1932b971 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -690,8 +690,6 @@ module Harness { } } - - module Harness { var tcServicesFilename = "typescriptServices.js"; From 2494b2d90fd73bc657321a53520f3d5be41b94ba Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 4 Feb 2015 13:39:24 -0800 Subject: [PATCH 11/39] Support spread operator in call expressions --- src/compiler/checker.ts | 269 +++++++++--------- .../diagnosticInformationMap.generated.ts | 1 + src/compiler/diagnosticMessages.json | 4 + src/compiler/emitter.ts | 106 +++++-- src/compiler/parser.ts | 7 +- 5 files changed, 233 insertions(+), 154 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index f44c9b118f8..5140b73f299 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -5818,10 +5818,74 @@ module ts { return unknownSignature; } + // Re-order candidate signatures into the result array. Assumes the result array to be empty. + // The candidate list orders groups in reverse, but within a group signatures are kept in declaration order + // A nit here is that we reorder only signatures that belong to the same symbol, + // so order how inherited signatures are processed is still preserved. + // interface A { (x: string): void } + // interface B extends A { (x: 'foo'): string } + // var b: B; + // b('foo') // <- here overloads should be processed as [(x:'foo'): string, (x: string): void] + function reorderCandidates(signatures: Signature[], result: Signature[]): void { + var lastParent: Node; + var lastSymbol: Symbol; + var cutoffIndex: number = 0; + var index: number; + var specializedIndex: number = -1; + var spliceIndex: number; + Debug.assert(!result.length); + for (var i = 0; i < signatures.length; i++) { + var signature = signatures[i]; + var symbol = signature.declaration && getSymbolOfNode(signature.declaration); + var parent = signature.declaration && signature.declaration.parent; + if (!lastSymbol || symbol === lastSymbol) { + if (lastParent && parent === lastParent) { + index++; + } + else { + lastParent = parent; + index = cutoffIndex; + } + } + else { + // current declaration belongs to a different symbol + // set cutoffIndex so re-orderings in the future won't change result set from 0 to cutoffIndex + index = cutoffIndex = result.length; + lastParent = parent; + } + lastSymbol = symbol; + + // specialized signatures always need to be placed before non-specialized signatures regardless + // of the cutoff position; see GH#1133 + if (signature.hasStringLiterals) { + specializedIndex++; + spliceIndex = specializedIndex; + // The cutoff index always needs to be greater than or equal to the specialized signature index + // in order to prevent non-specialized signatures from being added before a specialized + // signature. + cutoffIndex++; + } + else { + spliceIndex = index; + } + + result.splice(spliceIndex, 0, signature); + } + } + + function getSpreadArgumentIndex(args: Expression[]): number { + for (var i = 0; i < args.length; i++) { + if (args[i].kind === SyntaxKind.SpreadElementExpression) { + return i; + } + } + return -1; + } + function hasCorrectArity(node: CallLikeExpression, args: Expression[], signature: Signature) { - var adjustedArgCount: number; - var typeArguments: NodeArray; - var callIsIncomplete: boolean; + var adjustedArgCount: number; // Apparent number of arguments we will have in this call + var typeArguments: NodeArray; // Type arguments (undefined if none) + var callIsIncomplete: boolean; // In incomplete call we want to be lenient when we have too few arguments if (node.kind === SyntaxKind.TaggedTemplateExpression) { var tagExpression = node; @@ -5866,35 +5930,29 @@ module ts { typeArguments = callExpression.typeArguments; } - Debug.assert(adjustedArgCount !== undefined, "'adjustedArgCount' undefined"); - Debug.assert(callIsIncomplete !== undefined, "'callIsIncomplete' undefined"); - - return checkArity(adjustedArgCount, typeArguments, callIsIncomplete, signature); - - /** - * @param adjustedArgCount The "apparent" number of arguments that we will have in this call. - * @param typeArguments Type arguments node of the call if it exists; undefined otherwise. - * @param callIsIncomplete Whether or not a call is unfinished, and we should be "lenient" when we have too few arguments. - * @param signature The signature whose arity we are comparing. - */ - function checkArity(adjustedArgCount: number, typeArguments: NodeArray, callIsIncomplete: boolean, signature: Signature): boolean { - // Too many arguments implies incorrect arity. - if (!signature.hasRestParameter && adjustedArgCount > signature.parameters.length) { - return false; - } - - // If the user supplied type arguments, but the number of type arguments does not match - // the declared number of type parameters, the call has an incorrect arity. - var hasRightNumberOfTypeArgs = !typeArguments || - (signature.typeParameters && typeArguments.length === signature.typeParameters.length); - if (!hasRightNumberOfTypeArgs) { - return false; - } - - // If the call is incomplete, we should skip the lower bound check. - var hasEnoughArguments = adjustedArgCount >= signature.minArgumentCount; - return callIsIncomplete || hasEnoughArguments; + // If the user supplied type arguments, but the number of type arguments does not match + // the declared number of type parameters, the call has an incorrect arity. + var hasRightNumberOfTypeArgs = !typeArguments || + (signature.typeParameters && typeArguments.length === signature.typeParameters.length); + if (!hasRightNumberOfTypeArgs) { + return false; } + + // If spread arguments are present, check that they correspond to a rest parameter. If so, no + // further checking is necessary. + var spreadArgIndex = getSpreadArgumentIndex(args); + if (spreadArgIndex >= 0) { + return signature.hasRestParameter && spreadArgIndex >= signature.parameters.length - 1; + } + + // Too many arguments implies incorrect arity. + if (!signature.hasRestParameter && adjustedArgCount > signature.parameters.length) { + return false; + } + + // If the call is incomplete, we should skip the lower bound check. + var hasEnoughArguments = adjustedArgCount >= signature.minArgumentCount; + return callIsIncomplete || hasEnoughArguments; } // If type has a single call signature and no other members, return that signature. Otherwise, return undefined. @@ -5927,18 +5985,20 @@ module ts { // We perform two passes over the arguments. In the first pass we infer from all arguments, but use // wildcards for all context sensitive function expressions. for (var i = 0; i < args.length; i++) { - if (args[i].kind === SyntaxKind.OmittedExpression) { - continue; + var arg = args[i]; + if (arg.kind !== SyntaxKind.OmittedExpression) { + var paramType = getTypeAtPosition(signature, arg.kind === SyntaxKind.SpreadElementExpression ? -1 : i); + if (i === 0 && args[i].parent.kind === SyntaxKind.TaggedTemplateExpression) { + var argType = globalTemplateStringsArrayType; + } + else { + // For context sensitive arguments we pass the identityMapper, which is a signal to treat all + // context sensitive function expressions as wildcards + var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; + var argType = checkExpressionWithContextualType(arg, paramType, mapper); + } + inferTypes(context, argType, paramType); } - var parameterType = getTypeAtPosition(signature, i); - if (i === 0 && args[i].parent.kind === SyntaxKind.TaggedTemplateExpression) { - inferTypes(context, globalTemplateStringsArrayType, parameterType); - continue; - } - // For context sensitive arguments we pass the identityMapper, which is a signal to treat all - // context sensitive function expressions as wildcards - var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; - inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); } // In the second pass we visit only context sensitive arguments, and only those that aren't excluded, this @@ -5946,13 +6006,11 @@ module ts { // as we construct types for contextually typed parameters) if (excludeArgument) { for (var i = 0; i < args.length; i++) { - if (args[i].kind === SyntaxKind.OmittedExpression) { - continue; - } - // No need to special-case tagged templates; their excludeArgument value will be 'undefined'. + // No need to check for omitted args and template expressions, their exlusion value is always undefined if (excludeArgument[i] === false) { - var parameterType = getTypeAtPosition(signature, i); - inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, inferenceMapper), parameterType); + var arg = args[i]; + var paramType = getTypeAtPosition(signature, arg.kind === SyntaxKind.SpreadElementExpression ? -1 : i); + inferTypes(context, checkExpressionWithContextualType(arg, paramType, inferenceMapper), paramType); } } } @@ -5990,37 +6048,24 @@ module ts { return typeArgumentsAreAssignable; } - function checkApplicableSignature(node: CallLikeExpression, args: Node[], signature: Signature, relation: Map, excludeArgument: boolean[], reportErrors: boolean) { + function checkApplicableSignature(node: CallLikeExpression, args: Expression[], signature: Signature, relation: Map, excludeArgument: boolean[], reportErrors: boolean) { for (var i = 0; i < args.length; i++) { var arg = args[i]; - var argType: Type; - - if (arg.kind === SyntaxKind.OmittedExpression) { - continue; - } - - var paramType = getTypeAtPosition(signature, i); - - if (i === 0 && node.kind === SyntaxKind.TaggedTemplateExpression) { - // A tagged template expression has something of a - // "virtual" parameter with the "cooked" strings array type. - argType = globalTemplateStringsArrayType; - } - else { - // String literals get string literal types unless we're reporting errors - argType = arg.kind === SyntaxKind.StringLiteral && !reportErrors - ? getStringLiteralType(arg) - : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); - } - - // Use argument expression as error location when reporting errors - var isValidArgument = checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined, - Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1); - if (!isValidArgument) { - return false; + if (arg.kind !== SyntaxKind.OmittedExpression) { + // Check spread elements against rest type (from arity check we know spread argument corresponds to a rest parameter) + var paramType = getTypeAtPosition(signature, arg.kind === SyntaxKind.SpreadElementExpression ? -1 : i); + // A tagged template expression provides a special first argument, and string literals get string literal types + // unless we're reporting errors + var argType = i === 0 && node.kind === SyntaxKind.TaggedTemplateExpression ? globalTemplateStringsArrayType : + arg.kind === SyntaxKind.StringLiteral && !reportErrors ? getStringLiteralType(arg) : + checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); + // Use argument expression as error location when reporting errors + if (!checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined, + Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1)) { + return false; + } } } - return true; } @@ -6087,8 +6132,8 @@ module ts { } var candidates = candidatesOutArray || []; - // collectCandidates fills up the candidates array directly - collectCandidates(); + // reorderCandidates fills up the candidates array directly + reorderCandidates(signatures, candidates); if (!candidates.length) { error(node, Diagnostics.Supplied_parameters_do_not_match_any_signature_of_call_target); return resolveErrorCall(node); @@ -6278,60 +6323,6 @@ module ts { return undefined; } - // The candidate list orders groups in reverse, but within a group signatures are kept in declaration order - // A nit here is that we reorder only signatures that belong to the same symbol, - // so order how inherited signatures are processed is still preserved. - // interface A { (x: string): void } - // interface B extends A { (x: 'foo'): string } - // var b: B; - // b('foo') // <- here overloads should be processed as [(x:'foo'): string, (x: string): void] - function collectCandidates(): void { - var result = candidates; - var lastParent: Node; - var lastSymbol: Symbol; - var cutoffIndex: number = 0; - var index: number; - var specializedIndex: number = -1; - var spliceIndex: number; - Debug.assert(!result.length); - for (var i = 0; i < signatures.length; i++) { - var signature = signatures[i]; - var symbol = signature.declaration && getSymbolOfNode(signature.declaration); - var parent = signature.declaration && signature.declaration.parent; - if (!lastSymbol || symbol === lastSymbol) { - if (lastParent && parent === lastParent) { - index++; - } - else { - lastParent = parent; - index = cutoffIndex; - } - } - else { - // current declaration belongs to a different symbol - // set cutoffIndex so re-orderings in the future won't change result set from 0 to cutoffIndex - index = cutoffIndex = result.length; - lastParent = parent; - } - lastSymbol = symbol; - - // specialized signatures always need to be placed before non-specialized signatures regardless - // of the cutoff position; see GH#1133 - if (signature.hasStringLiterals) { - specializedIndex++; - spliceIndex = specializedIndex; - // The cutoff index always needs to be greater than or equal to the specialized signature index - // in order to prevent non-specialized signatures from being added before a specialized - // signature. - cutoffIndex++; - } - else { - spliceIndex = index; - } - - result.splice(spliceIndex, 0, signature); - } - } } function resolveCallExpression(node: CallExpression, candidatesOutArray: Signature[]): Signature { @@ -6387,6 +6378,13 @@ module ts { } function resolveNewExpression(node: NewExpression, candidatesOutArray: Signature[]): Signature { + if (node.arguments && languageVersion < ScriptTarget.ES6) { + var spreadIndex = getSpreadArgumentIndex(node.arguments); + if (spreadIndex >= 0) { + error(node.arguments[spreadIndex], Diagnostics.Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher); + } + } + var expressionType = checkExpression(node.expression); // TS 1.0 spec: 4.11 // If ConstructExpr is of type Any, Args can be any argument @@ -6532,9 +6530,14 @@ module ts { } function getTypeAtPosition(signature: Signature, pos: number): Type { + if (pos >= 0) { + return signature.hasRestParameter ? + pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : + pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; + } return signature.hasRestParameter ? - pos < signature.parameters.length - 1 ? getTypeOfSymbol(signature.parameters[pos]) : getRestTypeOfSignature(signature) : - pos < signature.parameters.length ? getTypeOfSymbol(signature.parameters[pos]) : anyType; + getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]) : + anyArrayType; } function assignContextualParameterTypes(signature: Signature, context: Signature, mapper: TypeMapper) { diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index dc7ef322c9b..b8dad442718 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -303,6 +303,7 @@ module ts { this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: DiagnosticCategory.Error, key: "'this' cannot be referenced in a computed property name." }, super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: DiagnosticCategory.Error, key: "'super' cannot be referenced in a computed property name." }, A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2466, category: DiagnosticCategory.Error, key: "A computed property name cannot reference a type parameter from its containing type." }, + Spread_operator_in_new_expressions_is_only_available_when_targeting_ECMAScript_6_and_higher: { code: 2468, category: DiagnosticCategory.Error, key: "Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher." }, Import_declaration_0_is_using_private_name_1: { code: 4000, category: DiagnosticCategory.Error, key: "Import declaration '{0}' is using private name '{1}'." }, Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: DiagnosticCategory.Error, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 5ee826812f2..900dc9ecd04 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1204,6 +1204,10 @@ "category": "Error", "code": 2466 }, + "Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher.": { + "category": "Error", + "code": 2468 + }, "Import declaration '{0}' is using private name '{1}'.": { "category": "Error", diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index b15a493de92..86d85f37199 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -1921,7 +1921,7 @@ module ts { break; } // _a .. _h, _j ... _z, _0, _1, ... - name = "_" + (tempCount < 25 ? String.fromCharCode(tempCount + (tempCount < 8 ? 0: 1) + CharacterCodes.a) : tempCount - 25); + name = "_" + (tempCount < 25 ? String.fromCharCode(tempCount + (tempCount < 8 ? 0 : 1) + CharacterCodes.a) : tempCount - 25); tempCount++; } var result = createNode(SyntaxKind.Identifier); @@ -2350,22 +2350,10 @@ module ts { return true; } - function emitArrayLiteral(node: ArrayLiteralExpression) { - var elements = node.elements; - var length = elements.length; - if (length === 0) { - write("[]"); - return; - } - if (languageVersion >= ScriptTarget.ES6) { - write("["); - emitList(elements, 0, elements.length, /*multiLine*/(node.flags & NodeFlags.MultiLine) !== 0, - /*trailingComma*/ elements.hasTrailingComma); - write("]"); - return; - } + function emitListWithSpread(elements: Expression[], multiLine: boolean, trailingComma: boolean) { var pos = 0; var group = 0; + var length = elements.length; while (pos < length) { // Emit using the pattern .concat(, , ...) if (group === 1) { @@ -2386,8 +2374,7 @@ module ts { i++; } write("["); - emitList(elements, pos, i - pos, /*multiLine*/ (node.flags & NodeFlags.MultiLine) !== 0, - /*trailingComma*/ elements.hasTrailingComma); + emitList(elements, pos, i - pos, multiLine, trailingComma); write("]"); pos = i; } @@ -2398,6 +2385,23 @@ module ts { } } + function emitArrayLiteral(node: ArrayLiteralExpression) { + var elements = node.elements; + if (elements.length === 0) { + write("[]"); + return; + } + if (languageVersion >= ScriptTarget.ES6) { + write("["); + emitList(elements, 0, elements.length, /*multiLine*/(node.flags & NodeFlags.MultiLine) !== 0, + /*trailingComma*/ elements.hasTrailingComma); + write("]"); + return; + } + emitListWithSpread(elements, /*multiLine*/(node.flags & NodeFlags.MultiLine) !== 0, + /*trailingComma*/ elements.hasTrailingComma); + } + function emitObjectLiteral(node: ObjectLiteralExpression) { write("{"); var properties = node.properties; @@ -2492,7 +2496,75 @@ module ts { write("]"); } + function hasSpreadElement(elements: Expression[]) { + return forEach(elements, e => e.kind === SyntaxKind.SpreadElementExpression); + } + + function skipParentheses(node: Expression): Expression { + while (node.kind === SyntaxKind.ParenthesizedExpression || node.kind === SyntaxKind.TypeAssertionExpression) { + node = (node).expression; + } + return node; + } + + function emitTarget(node: Expression): Expression { + if (node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.ThisKeyword || node.kind === SyntaxKind.SuperKeyword) { + emit(node); + return node; + } + var temp = createTempVariable(node); + recordTempDeclaration(temp); + write("("); + emit(temp); + write(" = "); + emit(node); + write(")"); + return temp; + } + + function emitCallWithSpread(node: CallExpression) { + var target: Expression; + var expr = skipParentheses(node.expression); + if (expr.kind === SyntaxKind.PropertyAccessExpression) { + target = emitTarget((expr).expression); + write("."); + emit((expr).name); + } + else if (expr.kind === SyntaxKind.ElementAccessExpression) { + target = emitTarget((expr).expression); + write("["); + emit((expr).argumentExpression); + write("]"); + } + else if (expr.kind === SyntaxKind.SuperKeyword) { + target = expr; + write("_super"); + } + else { + emit(node.expression); + } + write(".apply("); + if (target) { + if (target.kind === SyntaxKind.SuperKeyword) { + emitThis(target); + } + else { + emit(target); + } + } + else { + write("void 0"); + } + write(", "); + emitListWithSpread(node.arguments, /*multiLine*/ false, /*trailingComma*/ false); + write(")"); + } + function emitCallExpression(node: CallExpression) { + if (languageVersion < ScriptTarget.ES6 && hasSpreadElement(node.arguments)) { + emitCallWithSpread(node); + return; + } var superCall = false; if (node.expression.kind === SyntaxKind.SuperKeyword) { write("_super"); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 5ae44e5ff39..163c8c1272b 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1440,7 +1440,6 @@ module ts { case ParsingContext.TypeParameters: return isIdentifier(); case ParsingContext.ArgumentExpressions: - return token === SyntaxKind.CommaToken || isStartOfExpression(); case ParsingContext.ArrayLiteralMembers: return token === SyntaxKind.CommaToken || token === SyntaxKind.DotDotDotToken || isStartOfExpression(); case ParsingContext.Parameters: @@ -3544,19 +3543,19 @@ module ts { return finishNode(node); } - function parseArrayLiteralElement(): Expression { + function parseArgumentOrArrayLiteralElement(): Expression { return token === SyntaxKind.DotDotDotToken ? parseSpreadElement() : parseAssignmentExpressionOrOmittedExpression(); } function parseArgumentExpression(): Expression { - return allowInAnd(parseAssignmentExpressionOrOmittedExpression); + return allowInAnd(parseArgumentOrArrayLiteralElement); } function parseArrayLiteralExpression(): ArrayLiteralExpression { var node = createNode(SyntaxKind.ArrayLiteralExpression); parseExpected(SyntaxKind.OpenBracketToken); if (scanner.hasPrecedingLineBreak()) node.flags |= NodeFlags.MultiLine; - node.elements = parseDelimitedList(ParsingContext.ArrayLiteralMembers, parseArrayLiteralElement); + node.elements = parseDelimitedList(ParsingContext.ArrayLiteralMembers, parseArgumentOrArrayLiteralElement); parseExpected(SyntaxKind.CloseBracketToken); return finishNode(node); } From bfef4a03658d6d5ac2519aac38b4fcbae4223437 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 4 Feb 2015 15:36:13 -0800 Subject: [PATCH 12/39] Add new tests for shims --- src/harness/fourslash.ts | 45 +++++-- src/harness/fourslashRunner.ts | 36 ++++-- src/harness/harnessLanguageService.ts | 8 +- src/harness/runner.ts | 10 +- .../getBreakpointStatementAtPosition.baseline | 71 +++++++++++ .../reference/getEmitOutput.baseline | 30 +++++ tests/cases/fourslash/indentation.ts | 2 +- ...cellationWhenfindingAllRefsOnDefinition.ts | 38 ++++++ .../shims/getBraceMatchingAtPosition.ts | 43 +++++++ .../shims/getBreakpointStatementAtPosition.ts | 17 +++ .../shims/getCompletionsAtPosition.ts | 20 ++++ .../shims/getDefinitionAtPosition.ts | 29 +++++ tests/cases/fourslash/shims/getEmitOutput.ts | 22 ++++ .../shims/getIndentationAtPosition.ts | 21 ++++ .../fourslash/shims/getNavigateToItems.ts | 27 +++++ .../fourslash/shims/getNavigationBarItems.ts | 13 ++ .../shims/getOccurrencesAtPosition.ts | 18 +++ .../fourslash/shims/getOutliningSpans.ts | 113 ++++++++++++++++++ .../fourslash/shims/getPreProcessedFile.ts | 32 +++++ .../fourslash/shims/getQuickInfoAtPosition.ts | 16 +++ .../shims/getReferencesAtPosition.ts | 29 +++++ tests/cases/fourslash/shims/getRenameInfo.ts | 11 ++ .../shims/getSemanticClassifications.ts | 15 +++ .../fourslash/shims/getSemanticDiagnostics.ts | 11 ++ .../fourslash/shims/getSignatureHelpItems.ts | 13 ++ .../shims/getSyntacticClassifications.ts | 35 ++++++ .../cases/fourslash/shims/getTodoComments.ts | 3 + .../shims/quickInfoDisplayPartsVar.ts | 76 ++++++++++++ 28 files changed, 776 insertions(+), 28 deletions(-) create mode 100644 tests/baselines/reference/getBreakpointStatementAtPosition.baseline create mode 100644 tests/baselines/reference/getEmitOutput.baseline create mode 100644 tests/cases/fourslash/shims/cancellationWhenfindingAllRefsOnDefinition.ts create mode 100644 tests/cases/fourslash/shims/getBraceMatchingAtPosition.ts create mode 100644 tests/cases/fourslash/shims/getBreakpointStatementAtPosition.ts create mode 100644 tests/cases/fourslash/shims/getCompletionsAtPosition.ts create mode 100644 tests/cases/fourslash/shims/getDefinitionAtPosition.ts create mode 100644 tests/cases/fourslash/shims/getEmitOutput.ts create mode 100644 tests/cases/fourslash/shims/getIndentationAtPosition.ts create mode 100644 tests/cases/fourslash/shims/getNavigateToItems.ts create mode 100644 tests/cases/fourslash/shims/getNavigationBarItems.ts create mode 100644 tests/cases/fourslash/shims/getOccurrencesAtPosition.ts create mode 100644 tests/cases/fourslash/shims/getOutliningSpans.ts create mode 100644 tests/cases/fourslash/shims/getPreProcessedFile.ts create mode 100644 tests/cases/fourslash/shims/getQuickInfoAtPosition.ts create mode 100644 tests/cases/fourslash/shims/getReferencesAtPosition.ts create mode 100644 tests/cases/fourslash/shims/getRenameInfo.ts create mode 100644 tests/cases/fourslash/shims/getSemanticClassifications.ts create mode 100644 tests/cases/fourslash/shims/getSemanticDiagnostics.ts create mode 100644 tests/cases/fourslash/shims/getSignatureHelpItems.ts create mode 100644 tests/cases/fourslash/shims/getSyntacticClassifications.ts create mode 100644 tests/cases/fourslash/shims/getTodoComments.ts create mode 100644 tests/cases/fourslash/shims/quickInfoDisplayPartsVar.ts diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index 5b46ec32a1c..cccbc448213 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -275,11 +275,26 @@ module FourSlash { } } - constructor(public testData: FourSlashData) { + private getLanguageServiceAdaptor(testType: FourSlashTestType): + { new (cancellationToken?: ts.CancellationToken, options?: ts.CompilerOptions): Harness.LanguageService.LanguageServiceAdaptor } { + switch (testType) { + case FourSlashTestType.Native: + return Harness.LanguageService.NativeLanugageServiceAdaptor; + break; + case FourSlashTestType.Shims: + return Harness.LanguageService.ShimLanugageServiceAdaptor; + break; + default: + throw new Error("Unknown FourSlash test type: "); + } + } + + constructor(private basePath: string, private testType: FourSlashTestType, public testData: FourSlashData) { // Create a new Services Adaptor this.cancellationToken = new TestCancellationToken(); var compilationOptions = convertGlobalOptionsToCompilerOptions(this.testData.globalOptions); - var languageServiceAdaptor = new Harness.LanguageService.NativeLanugageServiceAdaptor(this.cancellationToken, compilationOptions); + var languageserviceAdaptorFactory = this.getLanguageServiceAdaptor(testType); + var languageServiceAdaptor = new languageserviceAdaptorFactory(this.cancellationToken, compilationOptions); this.languageServiceAdaptorHost = languageServiceAdaptor.getHost(); this.languageService = languageServiceAdaptor.getLanguageService(); @@ -308,7 +323,7 @@ module FourSlash { // Add triple reference files into language-service host ts.forEach(referencedFiles, referenceFile => { // Fourslash insert tests/cases/fourslash into inputFile.unitName so we will properly append the same base directory to refFile path - var referenceFilePath = "tests/cases/fourslash/" + referenceFile.filename; + var referenceFilePath = this.basePath+ '/' + referenceFile.filename; this.addMatchedInputFile(referenceFilePath); }); @@ -316,7 +331,7 @@ module FourSlash { ts.forEach(importedFiles, importedFile => { // Fourslash insert tests/cases/fourslash into inputFile.unitName and import statement doesn't require ".ts" // so convert them before making appropriate comparison - var importedFilePath = "tests/cases/fourslash/" + importedFile.filename + ".ts"; + var importedFilePath = this.basePath + '/' + importedFile.filename + ".ts"; this.addMatchedInputFile(importedFilePath); }); @@ -1382,6 +1397,12 @@ module FourSlash { } private checkPostEditInvariants() { + if (this.testType !== FourSlashTestType.Native) { + // getSourcefile() results can not be serialized. Only perform these verifications + // if running against a native LS object. + return; + } + var incrementalSourceFile = this.languageService.getSourceFile(this.activeFile.fileName); Utils.assertInvariants(incrementalSourceFile, /*parent:*/ undefined); @@ -2052,7 +2073,7 @@ module FourSlash { } else if (typeof indexOrName === 'string') { var name = indexOrName; // names are stored in the compiler with this relative path, this allows people to use goTo.file on just the filename - name = name.indexOf('/') === -1 ? 'tests/cases/fourslash/' + name : name; + name = name.indexOf('/') === -1 ? (this.basePath + '/' + name) : name; var availableNames: string[] = []; var foundIt = false; for (var i = 0; i < this.testData.files.length; i++) { @@ -2118,17 +2139,17 @@ module FourSlash { var fsOutput = new Harness.Compiler.WriterAggregator(); var fsErrors = new Harness.Compiler.WriterAggregator(); export var xmlData: TestXmlData[] = []; - export function runFourSlashTest(fileName: string) { + export function runFourSlashTest(basePath: string, testType: FourSlashTestType, fileName: string) { var content = Harness.IO.readFile(fileName); - var xml = runFourSlashTestContent(content, fileName); + var xml = runFourSlashTestContent(basePath, testType, content, fileName); xmlData.push(xml); } - export function runFourSlashTestContent(content: string, fileName: string): TestXmlData { + export function runFourSlashTestContent(basePath: string, testType: FourSlashTestType, content: string, fileName: string): TestXmlData { // Parse out the files and their metadata - var testData = parseTestData(content, fileName); + var testData = parseTestData(basePath, content, fileName); - currentTestState = new TestState(testData); + currentTestState = new TestState(basePath, testType, testData); var result = ''; var host = Harness.Compiler.createCompilerHost([{ unitName: Harness.Compiler.fourslashFilename, content: undefined }, @@ -2171,7 +2192,7 @@ module FourSlash { return lines.map(s => s.substr(1)).join('\n'); } - function parseTestData(contents: string, fileName: string): FourSlashData { + function parseTestData(basePath: string, contents: string, fileName: string): FourSlashData { // Regex for parsing options in the format "@Alpha: Value of any sort" var optionRegex = /^\s*@(\w+): (.*)\s*/; @@ -2239,7 +2260,7 @@ module FourSlash { currentFileName = fileName; } - currentFileName = 'tests/cases/fourslash/' + match[2]; + currentFileName = basePath + '/' + match[2]; currentFileOptions[match[1]] = match[2]; } else { // Add other fileMetadata flag diff --git a/src/harness/fourslashRunner.ts b/src/harness/fourslashRunner.ts index 1ecb02df292..fe3b6c7a91f 100644 --- a/src/harness/fourslashRunner.ts +++ b/src/harness/fourslashRunner.ts @@ -2,19 +2,35 @@ /// /// -class FourslashRunner extends RunnerBase { - public basePath = 'tests/cases/fourslash'; +const enum FourSlashTestType { + Native, + Shims +} - constructor() { +class FourSlashRunner extends RunnerBase { + protected basePath: string; + protected testSuiteName: string; + + constructor(private testType: FourSlashTestType) { super(); + switch (testType) { + case FourSlashTestType.Native: + this.basePath = 'tests/cases/fourslash'; + this.testSuiteName = 'fourslash'; + break; + case FourSlashTestType.Shims: + this.basePath = 'tests/cases/fourslash/shims'; + this.testSuiteName = 'fourslash-shims'; + break; + } } public initializeTests() { if (this.tests.length === 0) { - this.tests = this.enumerateFiles(this.basePath, /\.ts/i); + this.tests = this.enumerateFiles(this.basePath, /\.ts/i, { recursive: false }); } - describe("fourslash tests", () => { + describe(this.testSuiteName, () => { this.tests.forEach((fn: string) => { fn = ts.normalizeSlashes(fn); var justName = fn.replace(/^.*[\\\/]/, ''); @@ -24,8 +40,8 @@ class FourslashRunner extends RunnerBase { if (testIndex >= 0) fn = fn.substr(testIndex); if (justName && !justName.match(/fourslash\.ts$/i) && !justName.match(/\.d\.ts$/i)) { - it('FourSlash test ' + justName + ' runs correctly', function () { - FourSlash.runFourSlashTest(fn); + it(this.testSuiteName + ' test ' + justName + ' runs correctly',() => { + FourSlash.runFourSlashTest(this.basePath, this.testType, fn); }); } }); @@ -82,9 +98,9 @@ class FourslashRunner extends RunnerBase { } } -class GeneratedFourslashRunner extends FourslashRunner { - constructor() { - super(); +class GeneratedFourslashRunner extends FourSlashRunner { + constructor(testType: FourSlashTestType) { + super(testType); this.basePath += '/generated/'; } } \ No newline at end of file diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 4b188cf96f6..2fce141bbf3 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -56,9 +56,13 @@ module Harness.LanguageService { } class ScriptSnapshot implements ts.IScriptSnapshot { - public textSnapshot: string; public version: number; + public textSnapshot: string; + public version: number; + constructor(public scriptInfo: ScriptInfo) { - this.textSnapshot = scriptInfo.content; this.version = scriptInfo.version; } + this.textSnapshot = scriptInfo.content; + this.version = scriptInfo.version; + } public getText(start: number, end: number): string { return this.textSnapshot.substring(start, end); diff --git a/src/harness/runner.ts b/src/harness/runner.ts index 24349ada3fd..942ae56bf6f 100644 --- a/src/harness/runner.ts +++ b/src/harness/runner.ts @@ -61,10 +61,13 @@ if (testConfigFile !== '') { runners.push(new ProjectRunner()); break; case 'fourslash': - runners.push(new FourslashRunner()); + runners.push(new FourSlashRunner(FourSlashTestType.Native)); + break; + case 'fourslash-shims': + runners.push(new FourSlashRunner(FourSlashTestType.Shims)); break; case 'fourslash-generated': - runners.push(new GeneratedFourslashRunner()); + runners.push(new GeneratedFourslashRunner(FourSlashTestType.Native)); break; case 'rwc': runners.push(new RWCRunner()); @@ -90,7 +93,8 @@ if (runners.length === 0) { } // language services - runners.push(new FourslashRunner()); + runners.push(new FourSlashRunner(FourSlashTestType.Native)); + runners.push(new FourSlashRunner(FourSlashTestType.Shims)); //runners.push(new GeneratedFourslashRunner()); } diff --git a/tests/baselines/reference/getBreakpointStatementAtPosition.baseline b/tests/baselines/reference/getBreakpointStatementAtPosition.baseline new file mode 100644 index 00000000000..617589b9047 --- /dev/null +++ b/tests/baselines/reference/getBreakpointStatementAtPosition.baseline @@ -0,0 +1,71 @@ + +1 >while (true) { + + ~~~~~~~~~~~~~~~ => Pos: (0 to 14) SpanInfo: {"start":0,"length":12} + >while (true) + >:=> (line 1, col 0) to (line 1, col 12) +-------------------------------- +2 > break; + + ~~~~~~~~~~~ => Pos: (15 to 25) SpanInfo: {"start":19,"length":5} + >break + >:=> (line 2, col 4) to (line 2, col 9) +-------------------------------- +3 >} + + ~~ => Pos: (26 to 27) SpanInfo: {"start":19,"length":5} + >break + >:=> (line 2, col 4) to (line 2, col 9) +-------------------------------- +4 >y: while (true) { + + ~~~~~~~~~~~~~~~~~~ => Pos: (28 to 45) SpanInfo: {"start":31,"length":12} + >while (true) + >:=> (line 4, col 3) to (line 4, col 15) +-------------------------------- +5 > break y; + + ~~~~~~~~~~~~~ => Pos: (46 to 58) SpanInfo: {"start":50,"length":7} + >break y + >:=> (line 5, col 4) to (line 5, col 11) +-------------------------------- +6 >} + + ~~ => Pos: (59 to 60) SpanInfo: {"start":50,"length":7} + >break y + >:=> (line 5, col 4) to (line 5, col 11) +-------------------------------- +7 >while (true) { + + ~~~~~~~~~~~~~~~ => Pos: (61 to 75) SpanInfo: {"start":61,"length":12} + >while (true) + >:=> (line 7, col 0) to (line 7, col 12) +-------------------------------- +8 > continue; + + ~~~~~~~~~~~~~~ => Pos: (76 to 89) SpanInfo: {"start":80,"length":8} + >continue + >:=> (line 8, col 4) to (line 8, col 12) +-------------------------------- +9 >} + + ~~ => Pos: (90 to 91) SpanInfo: {"start":80,"length":8} + >continue + >:=> (line 8, col 4) to (line 8, col 12) +-------------------------------- +10 >z: while (true) { + + ~~~~~~~~~~~~~~~~~~ => Pos: (92 to 109) SpanInfo: {"start":95,"length":12} + >while (true) + >:=> (line 10, col 3) to (line 10, col 15) +-------------------------------- +11 > continue z; + + ~~~~~~~~~~~~~~~~ => Pos: (110 to 125) SpanInfo: {"start":114,"length":10} + >continue z + >:=> (line 11, col 4) to (line 11, col 14) +-------------------------------- +12 >} + ~ => Pos: (126 to 126) SpanInfo: {"start":114,"length":10} + >continue z + >:=> (line 11, col 4) to (line 11, col 14) \ No newline at end of file diff --git a/tests/baselines/reference/getEmitOutput.baseline b/tests/baselines/reference/getEmitOutput.baseline new file mode 100644 index 00000000000..8ca4f6a4100 --- /dev/null +++ b/tests/baselines/reference/getEmitOutput.baseline @@ -0,0 +1,30 @@ +EmitOutputStatus : Succeeded +Filename : tests/cases/fourslash/shims/inputFile1.js +var x = 5; +var Bar = (function () { + function Bar() { + } + return Bar; +})(); +Filename : tests/cases/fourslash/shims/inputFile1.d.ts +declare var x: number; +declare class Bar { + x: string; + y: number; +} + +EmitOutputStatus : Succeeded +Filename : tests/cases/fourslash/shims/inputFile2.js +var x1 = "hello world"; +var Foo = (function () { + function Foo() { + } + return Foo; +})(); +Filename : tests/cases/fourslash/shims/inputFile2.d.ts +declare var x1: string; +declare class Foo { + x: string; + y: number; +} + diff --git a/tests/cases/fourslash/indentation.ts b/tests/cases/fourslash/indentation.ts index 32319ae282d..2a2090c1d87 100644 --- a/tests/cases/fourslash/indentation.ts +++ b/tests/cases/fourslash/indentation.ts @@ -179,5 +179,5 @@ ////{| "indent": 0 |} test.markers().forEach((marker) => { - verify.indentationAtPositionIs('tests/cases/fourslash/indentation.ts', marker.position, marker.data.indent); + verify.indentationAtPositionIs(marker.fileName, marker.position, marker.data.indent); }); diff --git a/tests/cases/fourslash/shims/cancellationWhenfindingAllRefsOnDefinition.ts b/tests/cases/fourslash/shims/cancellationWhenfindingAllRefsOnDefinition.ts new file mode 100644 index 00000000000..09f580bb965 --- /dev/null +++ b/tests/cases/fourslash/shims/cancellationWhenfindingAllRefsOnDefinition.ts @@ -0,0 +1,38 @@ +/// + +//@Filename: findAllRefsOnDefinition-import.ts +////export class Test{ +//// +//// constructor(){ +//// +//// } +//// +//// public /*1*/start(){ +//// return this; +//// } +//// +//// public stop(){ +//// return this; +//// } +////} + +//@Filename: findAllRefsOnDefinition.ts +////import Second = require("findAllRefsOnDefinition-import"); +//// +////var second = new Second.Test() +////second.start(); +////second.stop(); + +goTo.file("findAllRefsOnDefinition-import.ts"); +goTo.marker("1"); + +verify.referencesCountIs(2); + +cancellation.setCancelled(); +goTo.marker("1"); +verifyOperationIsCancelled(() => verify.referencesCountIs(0) ); + +// verify that internal state is still correct +cancellation.resetCancelled(); +goTo.marker("1"); +verify.referencesCountIs(2); diff --git a/tests/cases/fourslash/shims/getBraceMatchingAtPosition.ts b/tests/cases/fourslash/shims/getBraceMatchingAtPosition.ts new file mode 100644 index 00000000000..fc8a71197db --- /dev/null +++ b/tests/cases/fourslash/shims/getBraceMatchingAtPosition.ts @@ -0,0 +1,43 @@ +/// + +//////curly braces +////module Foo [|{ +//// class Bar [|{ +//// private f() [|{ +//// }|] +//// +//// private f2() [|{ +//// if (true) [|{ }|] [|{ }|]; +//// }|] +//// }|] +////}|] +//// +//////parenthesis +////class FooBar { +//// private f[|()|] { +//// return [|([|(1 + 1)|])|]; +//// } +//// +//// private f2[|()|] { +//// if [|(true)|] { } +//// } +////} +//// +//////square brackets +////class Baz { +//// private f() { +//// var a: any[|[]|] = [|[[|[1, 2]|], [|[3, 4]|], 5]|]; +//// } +////} +//// +////// angular brackets +////class TemplateTest [||] { +//// public foo(a, b) { +//// return [||] a; +//// } +////} + +test.ranges().forEach((range) => { + verify.matchingBracePositionInCurrentFile(range.start, range.end - 1); + verify.matchingBracePositionInCurrentFile(range.end - 1, range.start); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getBreakpointStatementAtPosition.ts b/tests/cases/fourslash/shims/getBreakpointStatementAtPosition.ts new file mode 100644 index 00000000000..9e1d075a17f --- /dev/null +++ b/tests/cases/fourslash/shims/getBreakpointStatementAtPosition.ts @@ -0,0 +1,17 @@ +/// + +// @BaselineFile: getBreakpointStatementAtPosition.baseline +// @Filename: getBreakpointStatementAtPosition.ts +////while (true) { +//// break; +////} +////y: while (true) { +//// break y; +////} +////while (true) { +//// continue; +////} +////z: while (true) { +//// continue z; +////} +verify.baselineCurrentFileBreakpointLocations(); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getCompletionsAtPosition.ts b/tests/cases/fourslash/shims/getCompletionsAtPosition.ts new file mode 100644 index 00000000000..714d3390e76 --- /dev/null +++ b/tests/cases/fourslash/shims/getCompletionsAtPosition.ts @@ -0,0 +1,20 @@ +/// + +////function foo(strOrNum: string | number) { +//// /*1*/ +//// if (typeof strOrNum === "number") { +//// /*2*/ +//// } +//// else { +//// /*3*/ +//// } +////} + +goTo.marker('1'); +verify.completionListContains("strOrNum", "(parameter) strOrNum: string | number"); + +goTo.marker('2'); +verify.completionListContains("strOrNum", "(parameter) strOrNum: number"); + +goTo.marker('3'); +verify.completionListContains("strOrNum", "(parameter) strOrNum: string"); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getDefinitionAtPosition.ts b/tests/cases/fourslash/shims/getDefinitionAtPosition.ts new file mode 100644 index 00000000000..54b799ba65f --- /dev/null +++ b/tests/cases/fourslash/shims/getDefinitionAtPosition.ts @@ -0,0 +1,29 @@ +/// + +// @Filename: goToDefinitionDifferentFile_Definition.ts +////var /*remoteVariableDefinition*/remoteVariable; +/////*remoteFunctionDefinition*/function remoteFunction() { } +/////*remoteClassDefinition*/class remoteClass { } +/////*remoteInterfaceDefinition*/interface remoteInterface{ } +/////*remoteModuleDefinition*/module remoteModule{ export var foo = 1;} + +// @Filename: goToDefinitionDifferentFile_Consumption.ts +/////*remoteVariableReference*/remoteVariable = 1; +/////*remoteFunctionReference*/remoteFunction(); +////var foo = new /*remoteClassReference*/remoteClass(); +////class fooCls implements /*remoteInterfaceReference*/remoteInterface { } +////var fooVar = /*remoteModuleReference*/remoteModule.foo; + +var markerList = [ + "remoteVariable", + "remoteFunction", + "remoteClass", + "remoteInterface", + "remoteModule", +]; + +markerList.forEach((marker) => { + goTo.marker(marker + 'Reference'); + goTo.definition(); + verify.caretAtMarker(marker + 'Definition'); +}); diff --git a/tests/cases/fourslash/shims/getEmitOutput.ts b/tests/cases/fourslash/shims/getEmitOutput.ts new file mode 100644 index 00000000000..699514521ed --- /dev/null +++ b/tests/cases/fourslash/shims/getEmitOutput.ts @@ -0,0 +1,22 @@ +/// + +// @BaselineFile: getEmitOutput.baseline +// @declaration: true + +// @Filename: inputFile1.ts +// @emitThisFile: true +//// var x: number = 5; +//// class Bar { +//// x : string; +//// y : number +//// } + +// @Filename: inputFile2.ts +// @emitThisFile: true +//// var x1: string = "hello world"; +//// class Foo{ +//// x : string; +//// y : number; +//// } + +verify.baselineGetEmitOutput(); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getIndentationAtPosition.ts b/tests/cases/fourslash/shims/getIndentationAtPosition.ts new file mode 100644 index 00000000000..5e26781357e --- /dev/null +++ b/tests/cases/fourslash/shims/getIndentationAtPosition.ts @@ -0,0 +1,21 @@ +/// + +////class Bar { +//// {| "indentation": 4|} +//// private foo: string = ""; +//// {| "indentation": 4|} +//// private f() { +//// var a: any[] = [[1, 2], [3, 4], 5]; +//// {| "indentation": 8|} +//// return ((1 + 1)); +//// } +//// {| "indentation": 4|} +//// private f2() { +//// if (true) { } { }; +//// } +////} +////{| "indentation": 0|} + +test.markers().forEach((marker) => { + verify.indentationAtPositionIs(marker.fileName, marker.position, marker.data.indentation); +}); diff --git a/tests/cases/fourslash/shims/getNavigateToItems.ts b/tests/cases/fourslash/shims/getNavigateToItems.ts new file mode 100644 index 00000000000..9658c52324c --- /dev/null +++ b/tests/cases/fourslash/shims/getNavigateToItems.ts @@ -0,0 +1,27 @@ +/// + +/////// Module +////{| "itemName": "Shapes", "kind": "module", "parentName": "" |}module Shapes { +//// +//// // Class +//// {| "itemName": "Point", "kind": "class", "parentName": "Shapes" |}export class Point { +//// // Instance member +//// {| "itemName": "origin", "kind": "property", "parentName": "Point", "matchKind": "exact"|}private origin = 0.0; +//// +//// {| "itemName": "distFromZero", "kind": "property", "parentName": "Point", "matchKind": "exact"|}private distFromZero = 0.0; +//// +//// // Getter +//// {| "itemName": "distance", "kind": "getter", "parentName": "Point", "matchKind": "exact" |}get distance(): number { return 0; } +//// } +////} +//// +////// Local variables +////{| "itemName": "point", "kind": "var", "parentName": "", "matchKind": "exact"|}var point = new Shapes.Point(); + +//// Testing for exact matching of navigationItems + +test.markers().forEach((marker) => { + if (marker.data) { + verify.navigationItemsListContains(marker.data.itemName, marker.data.kind, marker.data.itemName, marker.data.matchKind, marker.fileName, marker.data.parentName); + } +}); diff --git a/tests/cases/fourslash/shims/getNavigationBarItems.ts b/tests/cases/fourslash/shims/getNavigationBarItems.ts new file mode 100644 index 00000000000..6c0738747f3 --- /dev/null +++ b/tests/cases/fourslash/shims/getNavigationBarItems.ts @@ -0,0 +1,13 @@ +/// + +//// {| "itemName": "c", "kind": "const", "parentName": "" |}const c = 0; + +test.markers().forEach(marker => { + verify.getScriptLexicalStructureListContains( + marker.data.itemName, + marker.data.kind, + marker.fileName, + marker.data.parentName, + marker.data.isAdditionalRange, + marker.position); +}); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getOccurrencesAtPosition.ts b/tests/cases/fourslash/shims/getOccurrencesAtPosition.ts new file mode 100644 index 00000000000..0654cc3962c --- /dev/null +++ b/tests/cases/fourslash/shims/getOccurrencesAtPosition.ts @@ -0,0 +1,18 @@ +/// + +/////*0*/ +////interface A { +//// foo: string; +////} +////function foo(x: A) { +//// x.f/*1*/oo +////} + +goTo.marker("1"); +verify.occurrencesAtPositionCount(2); + +goTo.marker("0"); +edit.insert("\r\n"); + +goTo.marker("1"); +verify.occurrencesAtPositionCount(2); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getOutliningSpans.ts b/tests/cases/fourslash/shims/getOutliningSpans.ts new file mode 100644 index 00000000000..93665889eb4 --- /dev/null +++ b/tests/cases/fourslash/shims/getOutliningSpans.ts @@ -0,0 +1,113 @@ +/// + +////// interface +////interface IFoo[| { +//// getDist(): number; +////}|] +//// +////// class members +////class Foo[| { +//// constructor()[| { +//// }|] +//// +//// public foo(): number[| { +//// return 0; +//// }|] +//// +//// public get X()[| { +//// return 1; +//// }|] +//// +//// public set X(v: number)[| { +//// }|] +//// +//// public member = function f()[| { +//// +//// }|] +////}|] +////switch(1)[| { +//// case 1: break; +////}|] +//// +////var array =[| [ +//// 1, +//// 2 +////]|] +//// +////// modules +////module m1[| { +//// module m2[| { }|] +//// module m3[| { +//// function foo()[| { +//// +//// }|] +//// +//// interface IFoo2[| { +//// +//// }|] +//// +//// class foo2 implements IFoo2[| { +//// +//// }|] +//// }|] +////}|] +//// +////// function declaration +////function foo(): number[| { +//// return 0; +////}|] +//// +////// function expressions +////(function f()[| { +//// +////}|]) +//// +////// trivia handeling +////class ClassFooWithTrivia[| /* some comments */ +//// /* more trivia */ { +//// +//// +//// /*some trailing trivia */ +////}|] /* even more */ +//// +////// object literals +////var x =[|{ +//// a:1, +//// b:2, +//// get foo()[| { +//// return 1; +//// }|] +////}|] +//////outline with deep nesting +////module m1[|{ +//// module m2[| { +//// module m3[| { +//// module m4[| { +//// module m5[| { +//// module m6[| { +//// module m7[| { +//// module m8[| { +//// module m9[| { +//// module m10[| { +//// module m11 { +//// module m12 { +//// export interface IFoo { +//// } +//// } +//// } +//// }|] +//// }|] +//// }|] +//// }|] +//// }|] +//// }|] +//// }|] +//// }|] +//// }|] +////}|] +//// +//////outline after a deeply nested node +////class AfterNestedNodes[| { +////}|] + +verify.outliningSpansInCurrentFile(test.ranges()); diff --git a/tests/cases/fourslash/shims/getPreProcessedFile.ts b/tests/cases/fourslash/shims/getPreProcessedFile.ts new file mode 100644 index 00000000000..abd26bb6e4b --- /dev/null +++ b/tests/cases/fourslash/shims/getPreProcessedFile.ts @@ -0,0 +1,32 @@ +/// + +// @Filename: refFile1.ts +//// class D { } + +// @Filename: refFile2.ts +//// export class E {} + +// @Filename: main.ts +// @ResolveReference: true +//// /// +//// /*1*/////*2*/ +//// /*3*/////*4*/ +//// import ref2 = require("refFile2"); +//// import noExistref2 = require(/*5*/"NotExistRefFile2"/*6*/); +//// import invalidRef1 /*7*/require/*8*/("refFile2"); +//// /*9*/import invalidRef2 = requi/*10*/("refFile2"); +//// var obj: /*11*/C/*12*/; +//// var obj1: D; +//// var obj2: ref2.E; + +goTo.file("main.ts"); +verify.numberOfErrorsInCurrentFile(7); +verify.errorExistsBetweenMarkers("1", "2"); +verify.errorExistsBetweenMarkers("3", "4"); +verify.errorExistsBetweenMarkers("5", "6"); +verify.errorExistsBetweenMarkers("7", "8"); +verify.errorExistsBetweenMarkers("9", "10"); // At this position, there are two diagnostic messages: ';' expected, Cannot find name 'requi' +verify.errorExistsBetweenMarkers("11", "12"); + + + diff --git a/tests/cases/fourslash/shims/getQuickInfoAtPosition.ts b/tests/cases/fourslash/shims/getQuickInfoAtPosition.ts new file mode 100644 index 00000000000..6c9fc7cf795 --- /dev/null +++ b/tests/cases/fourslash/shims/getQuickInfoAtPosition.ts @@ -0,0 +1,16 @@ +/// + +////class SS{} +//// +////var x/*1*/1 = new SS(); +////var x/*2*/2 = new SS(); +////var x/*3*/3 = new SS; + +goTo.marker('1'); +verify.quickInfoIs('(var) x1: SS'); + +goTo.marker('2'); +verify.quickInfoIs('(var) x2: SS<{}>'); + +goTo.marker('3'); +verify.quickInfoIs('(var) x3: SS<{}>'); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getReferencesAtPosition.ts b/tests/cases/fourslash/shims/getReferencesAtPosition.ts new file mode 100644 index 00000000000..34144b74899 --- /dev/null +++ b/tests/cases/fourslash/shims/getReferencesAtPosition.ts @@ -0,0 +1,29 @@ +/// + +//@Filename: findAllRefsOnDefinition-import.ts +////export class Test{ +//// +//// constructor(){ +//// +//// } +//// +//// public /*1*/start(){ +//// return this; +//// } +//// +//// public stop(){ +//// return this; +//// } +////} + +//@Filename: findAllRefsOnDefinition.ts +////import Second = require("findAllRefsOnDefinition-import"); +//// +////var second = new Second.Test() +////second.start(); +////second.stop(); + +goTo.file("findAllRefsOnDefinition-import.ts"); +goTo.marker("1"); + +verify.referencesCountIs(2); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getRenameInfo.ts b/tests/cases/fourslash/shims/getRenameInfo.ts new file mode 100644 index 00000000000..b5c8ac6aacc --- /dev/null +++ b/tests/cases/fourslash/shims/getRenameInfo.ts @@ -0,0 +1,11 @@ +/// + +/////// + +////function /**/[|Bar|]() { +//// // This is a reference to Bar in a comment. +//// "this is a reference to Bar in a string" +////} + +goTo.marker(); +verify.renameLocations(/*findInStrings:*/ false, /*findInComments:*/ false); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getSemanticClassifications.ts b/tests/cases/fourslash/shims/getSemanticClassifications.ts new file mode 100644 index 00000000000..4eb7f2a32ed --- /dev/null +++ b/tests/cases/fourslash/shims/getSemanticClassifications.ts @@ -0,0 +1,15 @@ +/// + +//// module /*0*/M { +//// export interface /*1*/I { +//// } +//// } +//// interface /*2*/X extends /*3*/M./*4*/I { } + +var c = classification; +verify.semanticClassificationsAre( + c.moduleName("M", test.marker("0").position), + c.interfaceName("I", test.marker("1").position), + c.interfaceName("X", test.marker("2").position), + c.moduleName("M", test.marker("3").position), + c.interfaceName("I", test.marker("4").position)); diff --git a/tests/cases/fourslash/shims/getSemanticDiagnostics.ts b/tests/cases/fourslash/shims/getSemanticDiagnostics.ts new file mode 100644 index 00000000000..6345c464213 --- /dev/null +++ b/tests/cases/fourslash/shims/getSemanticDiagnostics.ts @@ -0,0 +1,11 @@ +/// + +// @module: CommonJS +// @declaration: true +//// interface privateInterface {} +//// export class Bar implements /*1*/privateInterface/*2*/{ } + +verify.errorExistsBetweenMarkers("1", "2"); +verify.numberOfErrorsInCurrentFile(1); + + diff --git a/tests/cases/fourslash/shims/getSignatureHelpItems.ts b/tests/cases/fourslash/shims/getSignatureHelpItems.ts new file mode 100644 index 00000000000..846c2d5244a --- /dev/null +++ b/tests/cases/fourslash/shims/getSignatureHelpItems.ts @@ -0,0 +1,13 @@ +/// + +// @Filename: signatureHelpInFunctionCallOnFunctionDeclarationInMultipleFiles_file0.ts +////declare function fn(x: string, y: number); + +// @Filename: signatureHelpInFunctionCallOnFunctionDeclarationInMultipleFiles_file1.ts +////declare function fn(x: string); + +// @Filename: signatureHelpInFunctionCallOnFunctionDeclarationInMultipleFiles_file2.ts +////fn(/*1*/ + +goTo.marker('1'); +verify.signatureHelpCountIs(2); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getSyntacticClassifications.ts b/tests/cases/fourslash/shims/getSyntacticClassifications.ts new file mode 100644 index 00000000000..88f655683a3 --- /dev/null +++ b/tests/cases/fourslash/shims/getSyntacticClassifications.ts @@ -0,0 +1,35 @@ +/// + +//// // comment +//// module M { +//// var v = 0 + 1; +//// var s = "string"; +//// +//// class C { +//// } +//// +//// enum E { +//// } +//// +//// interface I { +//// } +//// +//// module M1.M2 { +//// } +//// } + +var c = classification; +verify.syntacticClassificationsAre( + c.comment("// comment"), + c.keyword("module"), c.moduleName("M"), c.punctuation("{"), + c.keyword("var"), c.text("v"), c.operator("="), c.numericLiteral("0"), c.operator("+"), c.numericLiteral("1"), c.punctuation(";"), + c.keyword("var"), c.text("s"), c.operator("="), c.stringLiteral('"string"'), c.punctuation(";"), + c.keyword("class"), c.className("C"), c.punctuation("<"), c.typeParameterName("T"), c.punctuation(">"), c.punctuation("{"), + c.punctuation("}"), + c.keyword("enum"), c.enumName("E"), c.punctuation("{"), + c.punctuation("}"), + c.keyword("interface"), c.interfaceName("I"), c.punctuation("{"), + c.punctuation("}"), + c.keyword("module"), c.moduleName("M1"), c.punctuation("."), c.moduleName("M2"), c.punctuation("{"), + c.punctuation("}"), + c.punctuation("}")); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/getTodoComments.ts b/tests/cases/fourslash/shims/getTodoComments.ts new file mode 100644 index 00000000000..b1e0086b93f --- /dev/null +++ b/tests/cases/fourslash/shims/getTodoComments.ts @@ -0,0 +1,3 @@ +//// // [|TODO|] + +verify.todoCommentsInCurrentFile(["TODO"]); \ No newline at end of file diff --git a/tests/cases/fourslash/shims/quickInfoDisplayPartsVar.ts b/tests/cases/fourslash/shims/quickInfoDisplayPartsVar.ts new file mode 100644 index 00000000000..56ccceb3ab3 --- /dev/null +++ b/tests/cases/fourslash/shims/quickInfoDisplayPartsVar.ts @@ -0,0 +1,76 @@ +/// + +////var /*1*/a = 10; +////function foo() { +//// var /*2*/b = /*3*/a; +////} +////module m { +//// var /*4*/c = 10; +//// export var /*5*/d = 10; +////} +////var /*6*/f: () => number; +////var /*7*/g = /*8*/f; +/////*9*/f(); +////var /*10*/h: { (a: string): number; (a: number): string; }; +////var /*11*/i = /*12*/h; +/////*13*/h(10); +/////*14*/h("hello"); + +var marker = 0; +function verifyVar(name: string, isLocal: boolean, typeDisplay: ts.SymbolDisplayPart[], optionalNameDisplay?: ts.SymbolDisplayPart[], optionalKindModifiers?: string) { + marker++; + goTo.marker(marker.toString()); + var kind = isLocal ? "local var" : "var"; + verify.verifyQuickInfoDisplayParts(kind, optionalKindModifiers || "", { start: test.markerByName(marker.toString()).position, length: name.length }, + [{ text: "(", kind: "punctuation" }, { text: kind, kind: "text" }, { text: ")", kind: "punctuation" }, + { text: " ", kind: "space" }].concat(optionalNameDisplay || [{ text: name, kind: "localName" }]).concat( + { text: ":", kind: "punctuation" }, { text: " ", kind: "space" }).concat(typeDisplay), + []); +} + +var numberTypeDisplay: ts.SymbolDisplayPart[] = [{ text: "number", kind: "keyword" }]; + +verifyVar("a", /*isLocal*/false, numberTypeDisplay); +verifyVar("b", /*isLocal*/true, numberTypeDisplay); +verifyVar("a", /*isLocal*/false, numberTypeDisplay); +verifyVar("c", /*isLocal*/false, numberTypeDisplay); +verifyVar("d", /*isLocal*/false, numberTypeDisplay, [{ text: "m", kind: "moduleName" }, { text: ".", kind: "punctuation" }, { text: "d", kind: "localName" }], "export"); + +var functionTypeReturningNumber: ts.SymbolDisplayPart[] = [{ text: "(", kind: "punctuation" }, { text: ")", kind: "punctuation" }, + { text: " ", kind: "space" }, { text: "=>", kind: "punctuation" }, { text: " ", kind: "space" }, { text: "number", kind: "keyword" }]; +verifyVar("f", /*isLocal*/ false, functionTypeReturningNumber); +verifyVar("g", /*isLocal*/ false, functionTypeReturningNumber); +verifyVar("f", /*isLocal*/ false, functionTypeReturningNumber); +verifyVar("f", /*isLocal*/ false, functionTypeReturningNumber); + + +function getFunctionType(parametertype: string, returnType: string, isArrow?: boolean): ts.SymbolDisplayPart[] { + var functionTypeDisplay = [{ text: "(", kind: "punctuation" }, { text: "a", kind: "parameterName" }, { text: ":", kind: "punctuation" }, + { text: " ", kind: "space" }, { text: parametertype, kind: "keyword" }, { text: ")", kind: "punctuation" }]; + + if (isArrow) { + functionTypeDisplay = functionTypeDisplay.concat({ text: " ", kind: "space" }, { text: "=>", kind: "punctuation" }); + } + else { + functionTypeDisplay = functionTypeDisplay.concat({ text: ":", kind: "punctuation" }); + } + + return functionTypeDisplay.concat({ text: " ", kind: "space" }, { text: returnType, kind: "keyword" }); +} + +var typeLiteralWithOverloadCall: ts.SymbolDisplayPart[] = [{ text: "{", kind: "punctuation" }, { text: "\n", kind: "lineBreak" }, + { text: " ", kind: "space" }].concat(getFunctionType("string", "number")).concat( + { text: ";", kind: "punctuation" }, { text: "\n", kind: "lineBreak" }, + { text: " ", kind: "space" }).concat(getFunctionType("number", "string")).concat( + { text: ";", kind: "punctuation" }, { text: "\n", kind: "lineBreak" }, { text: "}", kind: "punctuation" }); + +verifyVar("h", /*isLocal*/ false, typeLiteralWithOverloadCall); +verifyVar("i", /*isLocal*/ false, typeLiteralWithOverloadCall); +verifyVar("h", /*isLocal*/ false, typeLiteralWithOverloadCall); + +var overloadDisplay: ts.SymbolDisplayPart[] = [{ text: " ", kind: "space" }, { text: "(", kind: "punctuation" }, + { text: "+", kind: "operator" }, { text: "1", kind: "numericLiteral" }, + { text: " ", kind: "space" }, { text: "overload", kind: "text" }, { text: ")", kind: "punctuation" }]; + +verifyVar("h", /*isLocal*/ false, getFunctionType("number", "string", /*isArrow*/true).concat(overloadDisplay)); +verifyVar("h", /*isLocal*/ false, getFunctionType("string", "number", /*isArrow*/true).concat(overloadDisplay)); \ No newline at end of file From bbe51cfafe00e371bbb3e102d9ab50726f098b66 Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Wed, 4 Feb 2015 15:39:57 -0800 Subject: [PATCH 13/39] Adding tests --- .../reference/callWithSpread.errors.txt | 59 ++++++ tests/baselines/reference/callWithSpread.js | 117 +++++++++++ .../baselines/reference/callWithSpreadES6.js | 105 ++++++++++ .../reference/callWithSpreadES6.types | 196 ++++++++++++++++++ .../functionCalls/callWithSpread.ts | 52 +++++ .../functionCalls/callWithSpreadES6.ts | 54 +++++ 6 files changed, 583 insertions(+) create mode 100644 tests/baselines/reference/callWithSpread.errors.txt create mode 100644 tests/baselines/reference/callWithSpread.js create mode 100644 tests/baselines/reference/callWithSpreadES6.js create mode 100644 tests/baselines/reference/callWithSpreadES6.types create mode 100644 tests/cases/conformance/expressions/functionCalls/callWithSpread.ts create mode 100644 tests/cases/conformance/expressions/functionCalls/callWithSpreadES6.ts diff --git a/tests/baselines/reference/callWithSpread.errors.txt b/tests/baselines/reference/callWithSpread.errors.txt new file mode 100644 index 00000000000..7ea026f4346 --- /dev/null +++ b/tests/baselines/reference/callWithSpread.errors.txt @@ -0,0 +1,59 @@ +tests/cases/conformance/expressions/functionCalls/callWithSpread.ts(52,21): error TS2468: Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher. + + +==== tests/cases/conformance/expressions/functionCalls/callWithSpread.ts (1 errors) ==== + interface X { + foo(x: number, y: number, ...z: string[]); + } + + function foo(x: number, y: number, ...z: string[]) { + } + + var a: string[]; + var z: number[]; + var obj: X; + var xa: X[]; + + foo(1, 2, "abc"); + foo(1, 2, ...a); + foo(1, 2, ...a, "abc"); + + obj.foo(1, 2, "abc"); + obj.foo(1, 2, ...a); + obj.foo(1, 2, ...a, "abc"); + + (obj.foo)(1, 2, "abc"); + (obj.foo)(1, 2, ...a); + (obj.foo)(1, 2, ...a, "abc"); + + xa[1].foo(1, 2, "abc"); + xa[1].foo(1, 2, ...a); + xa[1].foo(1, 2, ...a, "abc"); + + (xa[1].foo)(...[1, 2, "abc"]); + + class C { + constructor(x: number, y: number, ...z: string[]) { + this.foo(x, y); + this.foo(x, y, ...z); + } + foo(x: number, y: number, ...z: string[]) { + } + } + + class D extends C { + constructor() { + super(1, 2); + super(1, 2, ...a); + } + foo() { + super.foo(1, 2); + super.foo(1, 2, ...a); + } + } + + // Only supported in when target is ES6 + var c = new C(1, 2, ...a); + ~~~~ +!!! error TS2468: Spread operator in 'new' expressions is only available when targeting ECMAScript 6 and higher. + \ No newline at end of file diff --git a/tests/baselines/reference/callWithSpread.js b/tests/baselines/reference/callWithSpread.js new file mode 100644 index 00000000000..d676c0f2a33 --- /dev/null +++ b/tests/baselines/reference/callWithSpread.js @@ -0,0 +1,117 @@ +//// [callWithSpread.ts] +interface X { + foo(x: number, y: number, ...z: string[]); +} + +function foo(x: number, y: number, ...z: string[]) { +} + +var a: string[]; +var z: number[]; +var obj: X; +var xa: X[]; + +foo(1, 2, "abc"); +foo(1, 2, ...a); +foo(1, 2, ...a, "abc"); + +obj.foo(1, 2, "abc"); +obj.foo(1, 2, ...a); +obj.foo(1, 2, ...a, "abc"); + +(obj.foo)(1, 2, "abc"); +(obj.foo)(1, 2, ...a); +(obj.foo)(1, 2, ...a, "abc"); + +xa[1].foo(1, 2, "abc"); +xa[1].foo(1, 2, ...a); +xa[1].foo(1, 2, ...a, "abc"); + +(xa[1].foo)(...[1, 2, "abc"]); + +class C { + constructor(x: number, y: number, ...z: string[]) { + this.foo(x, y); + this.foo(x, y, ...z); + } + foo(x: number, y: number, ...z: string[]) { + } +} + +class D extends C { + constructor() { + super(1, 2); + super(1, 2, ...a); + } + foo() { + super.foo(1, 2); + super.foo(1, 2, ...a); + } +} + +// Only supported in when target is ES6 +var c = new C(1, 2, ...a); + + +//// [callWithSpread.js] +var __extends = this.__extends || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + __.prototype = b.prototype; + d.prototype = new __(); +}; +function foo(x, y) { + var z = []; + for (var _i = 2; _i < arguments.length; _i++) { + z[_i - 2] = arguments[_i]; + } +} +var a; +var z; +var obj; +var xa; +foo(1, 2, "abc"); +foo.apply(void 0, [1, 2].concat(a)); +foo.apply(void 0, [1, 2].concat(a, ["abc"])); +obj.foo(1, 2, "abc"); +obj.foo.apply(obj, [1, 2].concat(a)); +obj.foo.apply(obj, [1, 2].concat(a, ["abc"])); +(obj.foo)(1, 2, "abc"); +obj.foo.apply(obj, [1, 2].concat(a)); +obj.foo.apply(obj, [1, 2].concat(a, ["abc"])); +xa[1].foo(1, 2, "abc"); +(_a = xa[1]).foo.apply(_a, [1, 2].concat(a)); +(_b = xa[1]).foo.apply(_b, [1, 2].concat(a, ["abc"])); +(_c = xa[1]).foo.apply(_c, [1, 2, "abc"]); +var C = (function () { + function C(x, y) { + var z = []; + for (var _i = 2; _i < arguments.length; _i++) { + z[_i - 2] = arguments[_i]; + } + this.foo(x, y); + this.foo.apply(this, [x, y].concat(z)); + } + C.prototype.foo = function (x, y) { + var z = []; + for (var _i = 2; _i < arguments.length; _i++) { + z[_i - 2] = arguments[_i]; + } + }; + return C; +})(); +var D = (function (_super) { + __extends(D, _super); + function D() { + _super.call(this, 1, 2); + _super.apply(this, [1, 2].concat(a)); + } + D.prototype.foo = function () { + _super.prototype.foo.call(this, 1, 2); + _super.prototype.foo.apply(this, [1, 2].concat(a)); + }; + return D; +})(C); +// Only supported in when target is ES6 +var c = new C(1, 2, ...a); +var _a, _b, _c; diff --git a/tests/baselines/reference/callWithSpreadES6.js b/tests/baselines/reference/callWithSpreadES6.js new file mode 100644 index 00000000000..bdb5aab33ec --- /dev/null +++ b/tests/baselines/reference/callWithSpreadES6.js @@ -0,0 +1,105 @@ +//// [callWithSpreadES6.ts] + +interface X { + foo(x: number, y: number, ...z: string[]); +} + +function foo(x: number, y: number, ...z: string[]) { +} + +var a: string[]; +var z: number[]; +var obj: X; +var xa: X[]; + +foo(1, 2, "abc"); +foo(1, 2, ...a); +foo(1, 2, ...a, "abc"); + +obj.foo(1, 2, "abc"); +obj.foo(1, 2, ...a); +obj.foo(1, 2, ...a, "abc"); + +(obj.foo)(1, 2, "abc"); +(obj.foo)(1, 2, ...a); +(obj.foo)(1, 2, ...a, "abc"); + +xa[1].foo(1, 2, "abc"); +xa[1].foo(1, 2, ...a); +xa[1].foo(1, 2, ...a, "abc"); + +(xa[1].foo)(...[1, 2, "abc"]); + +class C { + constructor(x: number, y: number, ...z: string[]) { + this.foo(x, y); + this.foo(x, y, ...z); + } + foo(x: number, y: number, ...z: string[]) { + } +} + +class D extends C { + constructor() { + super(1, 2); + super(1, 2, ...a); + } + foo() { + super.foo(1, 2); + super.foo(1, 2, ...a); + } +} + +// Only supported in when target is ES6 +var c = new C(1, 2, ...a); + + +//// [callWithSpreadES6.js] +var __extends = this.__extends || function (d, b) { + for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; + function __() { this.constructor = d; } + __.prototype = b.prototype; + d.prototype = new __(); +}; +function foo(x, y, ...z) { +} +var a; +var z; +var obj; +var xa; +foo(1, 2, "abc"); +foo(1, 2, ...a); +foo(1, 2, ...a, "abc"); +obj.foo(1, 2, "abc"); +obj.foo(1, 2, ...a); +obj.foo(1, 2, ...a, "abc"); +(obj.foo)(1, 2, "abc"); +(obj.foo)(1, 2, ...a); +(obj.foo)(1, 2, ...a, "abc"); +xa[1].foo(1, 2, "abc"); +xa[1].foo(1, 2, ...a); +xa[1].foo(1, 2, ...a, "abc"); +xa[1].foo(...[1, 2, "abc"]); +var C = (function () { + function C(x, y, ...z) { + this.foo(x, y); + this.foo(x, y, ...z); + } + C.prototype.foo = function (x, y, ...z) { + }; + return C; +})(); +var D = (function (_super) { + __extends(D, _super); + function D() { + _super.call(this, 1, 2); + _super.call(this, 1, 2, ...a); + } + D.prototype.foo = function () { + _super.prototype.foo.call(this, 1, 2); + _super.prototype.foo.call(this, 1, 2, ...a); + }; + return D; +})(C); +// Only supported in when target is ES6 +var c = new C(1, 2, ...a); diff --git a/tests/baselines/reference/callWithSpreadES6.types b/tests/baselines/reference/callWithSpreadES6.types new file mode 100644 index 00000000000..8a75d21e4ef --- /dev/null +++ b/tests/baselines/reference/callWithSpreadES6.types @@ -0,0 +1,196 @@ +=== tests/cases/conformance/expressions/functionCalls/callWithSpreadES6.ts === + +interface X { +>X : X + + foo(x: number, y: number, ...z: string[]); +>foo : (x: number, y: number, ...z: string[]) => any +>x : number +>y : number +>z : string[] +} + +function foo(x: number, y: number, ...z: string[]) { +>foo : (x: number, y: number, ...z: string[]) => void +>x : number +>y : number +>z : string[] +} + +var a: string[]; +>a : string[] + +var z: number[]; +>z : number[] + +var obj: X; +>obj : X +>X : X + +var xa: X[]; +>xa : X[] +>X : X + +foo(1, 2, "abc"); +>foo(1, 2, "abc") : void +>foo : (x: number, y: number, ...z: string[]) => void + +foo(1, 2, ...a); +>foo(1, 2, ...a) : void +>foo : (x: number, y: number, ...z: string[]) => void +>a : string[] + +foo(1, 2, ...a, "abc"); +>foo(1, 2, ...a, "abc") : void +>foo : (x: number, y: number, ...z: string[]) => void +>a : string[] + +obj.foo(1, 2, "abc"); +>obj.foo(1, 2, "abc") : any +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any + +obj.foo(1, 2, ...a); +>obj.foo(1, 2, ...a) : any +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any +>a : string[] + +obj.foo(1, 2, ...a, "abc"); +>obj.foo(1, 2, ...a, "abc") : any +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any +>a : string[] + +(obj.foo)(1, 2, "abc"); +>(obj.foo)(1, 2, "abc") : any +>(obj.foo) : (x: number, y: number, ...z: string[]) => any +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any + +(obj.foo)(1, 2, ...a); +>(obj.foo)(1, 2, ...a) : any +>(obj.foo) : (x: number, y: number, ...z: string[]) => any +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any +>a : string[] + +(obj.foo)(1, 2, ...a, "abc"); +>(obj.foo)(1, 2, ...a, "abc") : any +>(obj.foo) : (x: number, y: number, ...z: string[]) => any +>obj.foo : (x: number, y: number, ...z: string[]) => any +>obj : X +>foo : (x: number, y: number, ...z: string[]) => any +>a : string[] + +xa[1].foo(1, 2, "abc"); +>xa[1].foo(1, 2, "abc") : any +>xa[1].foo : (x: number, y: number, ...z: string[]) => any +>xa[1] : X +>xa : X[] +>foo : (x: number, y: number, ...z: string[]) => any + +xa[1].foo(1, 2, ...a); +>xa[1].foo(1, 2, ...a) : any +>xa[1].foo : (x: number, y: number, ...z: string[]) => any +>xa[1] : X +>xa : X[] +>foo : (x: number, y: number, ...z: string[]) => any +>a : string[] + +xa[1].foo(1, 2, ...a, "abc"); +>xa[1].foo(1, 2, ...a, "abc") : any +>xa[1].foo : (x: number, y: number, ...z: string[]) => any +>xa[1] : X +>xa : X[] +>foo : (x: number, y: number, ...z: string[]) => any +>a : string[] + +(xa[1].foo)(...[1, 2, "abc"]); +>(xa[1].foo)(...[1, 2, "abc"]) : any +>(xa[1].foo) : Function +>xa[1].foo : Function +>Function : Function +>xa[1].foo : (x: number, y: number, ...z: string[]) => any +>xa[1] : X +>xa : X[] +>foo : (x: number, y: number, ...z: string[]) => any +>[1, 2, "abc"] : (string | number)[] + +class C { +>C : C + + constructor(x: number, y: number, ...z: string[]) { +>x : number +>y : number +>z : string[] + + this.foo(x, y); +>this.foo(x, y) : void +>this.foo : (x: number, y: number, ...z: string[]) => void +>this : C +>foo : (x: number, y: number, ...z: string[]) => void +>x : number +>y : number + + this.foo(x, y, ...z); +>this.foo(x, y, ...z) : void +>this.foo : (x: number, y: number, ...z: string[]) => void +>this : C +>foo : (x: number, y: number, ...z: string[]) => void +>x : number +>y : number +>z : string[] + } + foo(x: number, y: number, ...z: string[]) { +>foo : (x: number, y: number, ...z: string[]) => void +>x : number +>y : number +>z : string[] + } +} + +class D extends C { +>D : D +>C : C + + constructor() { + super(1, 2); +>super(1, 2) : void +>super : typeof C + + super(1, 2, ...a); +>super(1, 2, ...a) : void +>super : typeof C +>a : string[] + } + foo() { +>foo : () => void + + super.foo(1, 2); +>super.foo(1, 2) : void +>super.foo : (x: number, y: number, ...z: string[]) => void +>super : C +>foo : (x: number, y: number, ...z: string[]) => void + + super.foo(1, 2, ...a); +>super.foo(1, 2, ...a) : void +>super.foo : (x: number, y: number, ...z: string[]) => void +>super : C +>foo : (x: number, y: number, ...z: string[]) => void +>a : string[] + } +} + +// Only supported in when target is ES6 +var c = new C(1, 2, ...a); +>c : C +>new C(1, 2, ...a) : C +>C : typeof C +>a : string[] + diff --git a/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts b/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts new file mode 100644 index 00000000000..9acba00697a --- /dev/null +++ b/tests/cases/conformance/expressions/functionCalls/callWithSpread.ts @@ -0,0 +1,52 @@ +interface X { + foo(x: number, y: number, ...z: string[]); +} + +function foo(x: number, y: number, ...z: string[]) { +} + +var a: string[]; +var z: number[]; +var obj: X; +var xa: X[]; + +foo(1, 2, "abc"); +foo(1, 2, ...a); +foo(1, 2, ...a, "abc"); + +obj.foo(1, 2, "abc"); +obj.foo(1, 2, ...a); +obj.foo(1, 2, ...a, "abc"); + +(obj.foo)(1, 2, "abc"); +(obj.foo)(1, 2, ...a); +(obj.foo)(1, 2, ...a, "abc"); + +xa[1].foo(1, 2, "abc"); +xa[1].foo(1, 2, ...a); +xa[1].foo(1, 2, ...a, "abc"); + +(xa[1].foo)(...[1, 2, "abc"]); + +class C { + constructor(x: number, y: number, ...z: string[]) { + this.foo(x, y); + this.foo(x, y, ...z); + } + foo(x: number, y: number, ...z: string[]) { + } +} + +class D extends C { + constructor() { + super(1, 2); + super(1, 2, ...a); + } + foo() { + super.foo(1, 2); + super.foo(1, 2, ...a); + } +} + +// Only supported in when target is ES6 +var c = new C(1, 2, ...a); diff --git a/tests/cases/conformance/expressions/functionCalls/callWithSpreadES6.ts b/tests/cases/conformance/expressions/functionCalls/callWithSpreadES6.ts new file mode 100644 index 00000000000..2f7d16ba368 --- /dev/null +++ b/tests/cases/conformance/expressions/functionCalls/callWithSpreadES6.ts @@ -0,0 +1,54 @@ +// @target: ES6 + +interface X { + foo(x: number, y: number, ...z: string[]); +} + +function foo(x: number, y: number, ...z: string[]) { +} + +var a: string[]; +var z: number[]; +var obj: X; +var xa: X[]; + +foo(1, 2, "abc"); +foo(1, 2, ...a); +foo(1, 2, ...a, "abc"); + +obj.foo(1, 2, "abc"); +obj.foo(1, 2, ...a); +obj.foo(1, 2, ...a, "abc"); + +(obj.foo)(1, 2, "abc"); +(obj.foo)(1, 2, ...a); +(obj.foo)(1, 2, ...a, "abc"); + +xa[1].foo(1, 2, "abc"); +xa[1].foo(1, 2, ...a); +xa[1].foo(1, 2, ...a, "abc"); + +(xa[1].foo)(...[1, 2, "abc"]); + +class C { + constructor(x: number, y: number, ...z: string[]) { + this.foo(x, y); + this.foo(x, y, ...z); + } + foo(x: number, y: number, ...z: string[]) { + } +} + +class D extends C { + constructor() { + super(1, 2); + super(1, 2, ...a); + } + foo() { + super.foo(1, 2); + super.foo(1, 2, ...a); + } +} + +// Only supported in when target is ES6 +var c = new C(1, 2, ...a); From fd2518dcddd664fbad7663e293ba9ecf8a7fc4a0 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 4 Feb 2015 20:07:12 -0800 Subject: [PATCH 14/39] rename type --- src/harness/harnessLanguageService.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 2fce141bbf3..15baafb0429 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -78,7 +78,7 @@ module Harness.LanguageService { } } - class ScriptSnapshotShim implements ts.ScriptSnapshotShim { + class ScriptSnapshotProxy implements ts.ScriptSnapshotShim { constructor(public scriptSnapshot: ts.IScriptSnapshot) { } @@ -91,7 +91,7 @@ module Harness.LanguageService { } public getChangeRange(oldScript: ts.ScriptSnapshotShim): string { - var oldShim = oldScript; + var oldShim = oldScript; var range = this.scriptSnapshot.getChangeRange(oldShim.scriptSnapshot); if (range === null) { @@ -248,7 +248,7 @@ module Harness.LanguageService { getScriptFileNames(): string { return JSON.stringify(this.nativeHost.getScriptFileNames()); } getScriptSnapshot(filename: string): ts.ScriptSnapshotShim { var nativeScriptSnapshot = this.nativeHost.getScriptSnapshot(filename); - return nativeScriptSnapshot && new ScriptSnapshotShim(nativeScriptSnapshot); + return nativeScriptSnapshot && new ScriptSnapshotProxy(nativeScriptSnapshot); } getScriptVersion(filename: string): string { return this.nativeHost.getScriptVersion(filename); } getLocalizedDiagnosticMessages(): string { return JSON.stringify({}); } From 68beccc4802d7f294a93e53f52301b7e73568970 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Wed, 4 Feb 2015 20:35:21 -0800 Subject: [PATCH 15/39] Fix getFileContents so as not to always return the current file --- src/harness/fourslash.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index eae34cfc082..19ea8927910 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -376,7 +376,7 @@ module FourSlash { } private getFileContent(fileName: string): string { - var script = this.languageServiceAdaptorHost.getScriptInfo(this.activeFile.fileName); + var script = this.languageServiceAdaptorHost.getScriptInfo(fileName); return script.content; } From 0819ca897cf2dc61f8e60f51870e192ae28c764b Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Fri, 6 Feb 2015 07:39:11 -0800 Subject: [PATCH 16/39] Addressing CR feedback --- src/compiler/emitter.ts | 27 ++++++++++++++++----------- src/compiler/parser.ts | 10 +++------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 86d85f37199..ef4603de575 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2374,7 +2374,7 @@ module ts { i++; } write("["); - emitList(elements, pos, i - pos, multiLine, trailingComma); + emitList(elements, pos, i - pos, multiLine, trailingComma && i === length); write("]"); pos = i; } @@ -2389,17 +2389,17 @@ module ts { var elements = node.elements; if (elements.length === 0) { write("[]"); - return; } - if (languageVersion >= ScriptTarget.ES6) { + else if (languageVersion >= ScriptTarget.ES6) { write("["); - emitList(elements, 0, elements.length, /*multiLine*/(node.flags & NodeFlags.MultiLine) !== 0, + emitList(elements, 0, elements.length, /*multiLine*/ (node.flags & NodeFlags.MultiLine) !== 0, /*trailingComma*/ elements.hasTrailingComma); write("]"); - return; } - emitListWithSpread(elements, /*multiLine*/(node.flags & NodeFlags.MultiLine) !== 0, - /*trailingComma*/ elements.hasTrailingComma); + else { + emitListWithSpread(elements, /*multiLine*/ (node.flags & NodeFlags.MultiLine) !== 0, + /*trailingComma*/ elements.hasTrailingComma); + } } function emitObjectLiteral(node: ObjectLiteralExpression) { @@ -2502,12 +2502,12 @@ module ts { function skipParentheses(node: Expression): Expression { while (node.kind === SyntaxKind.ParenthesizedExpression || node.kind === SyntaxKind.TypeAssertionExpression) { - node = (node).expression; + node = (node).expression; } return node; } - function emitTarget(node: Expression): Expression { + function emitCallTarget(node: Expression): Expression { if (node.kind === SyntaxKind.Identifier || node.kind === SyntaxKind.ThisKeyword || node.kind === SyntaxKind.SuperKeyword) { emit(node); return node; @@ -2526,12 +2526,14 @@ module ts { var target: Expression; var expr = skipParentheses(node.expression); if (expr.kind === SyntaxKind.PropertyAccessExpression) { - target = emitTarget((expr).expression); + // Target will be emitted as "this" argument + target = emitCallTarget((expr).expression); write("."); emit((expr).name); } else if (expr.kind === SyntaxKind.ElementAccessExpression) { - target = emitTarget((expr).expression); + // Target will be emitted as "this" argument + target = emitCallTarget((expr).expression); write("["); emit((expr).argumentExpression); write("]"); @@ -2546,13 +2548,16 @@ module ts { write(".apply("); if (target) { if (target.kind === SyntaxKind.SuperKeyword) { + // Calls of form super(...) and super.foo(...) emitThis(target); } else { + // Calls of form obj.foo(...) emit(target); } } else { + // Calls of form foo(...) write("void 0"); } write(", "); diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 163c8c1272b..937aa2808e1 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -3530,12 +3530,6 @@ module ts { return finishNode(node); } - function parseAssignmentExpressionOrOmittedExpression(): Expression { - return token === SyntaxKind.CommaToken - ? createNode(SyntaxKind.OmittedExpression) - : parseAssignmentExpressionOrHigher(); - } - function parseSpreadElement(): Expression { var node = createNode(SyntaxKind.SpreadElementExpression); parseExpected(SyntaxKind.DotDotDotToken); @@ -3544,7 +3538,9 @@ module ts { } function parseArgumentOrArrayLiteralElement(): Expression { - return token === SyntaxKind.DotDotDotToken ? parseSpreadElement() : parseAssignmentExpressionOrOmittedExpression(); + return token === SyntaxKind.DotDotDotToken ? parseSpreadElement() : + token === SyntaxKind.CommaToken ? createNode(SyntaxKind.OmittedExpression) : + parseAssignmentExpressionOrHigher(); } function parseArgumentExpression(): Expression { From 02c1b8978bb3c8f0b681976921562326c10f72b0 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Fri, 6 Feb 2015 14:54:19 -0800 Subject: [PATCH 17/39] Check source file invariants after creating/updating them in our tests. --- src/harness/harness.ts | 16 +++++++++++----- src/harness/harnessLanguageService.ts | 8 +++++--- src/harness/projectsRunner.ts | 2 +- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/harness/harness.ts b/src/harness/harness.ts index 8002b019551..5fbf7d976ff 100644 --- a/src/harness/harness.ts +++ b/src/harness/harness.ts @@ -796,9 +796,15 @@ module Harness { } } + export function createSourceFileAndAssertInvariants(fileName: string, sourceText: string, languageVersion: ts.ScriptTarget) { + var result = ts.createSourceFile(fileName, sourceText, languageVersion, /*setParentNodes:*/ true); + Utils.assertInvariants(result, /*parent:*/ undefined); + return result; + } + export var defaultLibFileName = 'lib.d.ts'; - export var defaultLibSourceFile = ts.createSourceFile(defaultLibFileName, IO.readFile(libFolder + 'lib.core.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest); - export var defaultES6LibSourceFile = ts.createSourceFile(defaultLibFileName, IO.readFile(libFolder + 'lib.core.es6.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest); + export var defaultLibSourceFile = createSourceFileAndAssertInvariants(defaultLibFileName, IO.readFile(libFolder + 'lib.core.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest); + export var defaultES6LibSourceFile = createSourceFileAndAssertInvariants(defaultLibFileName, IO.readFile(libFolder + 'lib.core.es6.d.ts'), /*languageVersion*/ ts.ScriptTarget.Latest); // Cache these between executions so we don't have to re-parse them for every test @@ -828,7 +834,7 @@ module Harness { function register(file: { unitName: string; content: string; }) { if (file.content !== undefined) { var fileName = ts.normalizeSlashes(file.unitName); - filemap[getCanonicalFileName(fileName)] = ts.createSourceFile(fileName, file.content, scriptTarget); + filemap[getCanonicalFileName(fileName)] = createSourceFileAndAssertInvariants(fileName, file.content, scriptTarget); } }; inputFiles.forEach(register); @@ -845,7 +851,7 @@ module Harness { } else if (fn === fourslashFileName) { var tsFn = 'tests/cases/fourslash/' + fourslashFileName; - fourslashSourceFile = fourslashSourceFile || ts.createSourceFile(tsFn, Harness.IO.readFile(tsFn), scriptTarget); + fourslashSourceFile = fourslashSourceFile || createSourceFileAndAssertInvariants(tsFn, Harness.IO.readFile(tsFn), scriptTarget); return fourslashSourceFile; } else { @@ -1069,7 +1075,7 @@ module Harness { var register = (file: { unitName: string; content: string; }) => { if (file.content !== undefined) { var fileName = ts.normalizeSlashes(file.unitName); - filemap[getCanonicalFileName(fileName)] = ts.createSourceFile(fileName, file.content, options.target); + filemap[getCanonicalFileName(fileName)] = createSourceFileAndAssertInvariants(fileName, file.content, options.target); } }; inputFiles.forEach(register); diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 547f8ccce48..bf9c75a7167 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -102,7 +102,7 @@ module Harness.LanguageService { compilationSettings: ts.CompilerOptions, scriptSnapshot: ts.IScriptSnapshot, version: string): ts.SourceFile { - var sourceFile = ts.createSourceFile(fileName, scriptSnapshot.getText(0, scriptSnapshot.getLength()), compilationSettings.target); + var sourceFile = Compiler.createSourceFileAndAssertInvariants(fileName, scriptSnapshot.getText(0, scriptSnapshot.getLength()), compilationSettings.target); sourceFile.version = version; return sourceFile; } @@ -115,7 +115,9 @@ module Harness.LanguageService { version: string, textChangeRange: ts.TextChangeRange ): ts.SourceFile { - return ts.updateLanguageServiceSourceFile(document, scriptSnapshot, version, textChangeRange); + var result = ts.updateLanguageServiceSourceFile(document, scriptSnapshot, version, textChangeRange); + Utils.assertInvariants(result, /*parent:*/ undefined); + return result; } public releaseDocument(fileName: string, compilationSettings: ts.CompilerOptions): void { @@ -269,7 +271,7 @@ module Harness.LanguageService { /** Parse file given its source text */ public parseSourceText(fileName: string, sourceText: ts.IScriptSnapshot): ts.SourceFile { - var result = ts.createSourceFile(fileName, sourceText.getText(0, sourceText.getLength()), ts.ScriptTarget.Latest); + var result = Compiler.createSourceFileAndAssertInvariants(fileName, sourceText.getText(0, sourceText.getLength()), ts.ScriptTarget.Latest); result.version = "1"; return result; } diff --git a/src/harness/projectsRunner.ts b/src/harness/projectsRunner.ts index 0fde9a9d77c..3291128a7a5 100644 --- a/src/harness/projectsRunner.ts +++ b/src/harness/projectsRunner.ts @@ -172,7 +172,7 @@ class ProjectRunner extends RunnerBase { else { var text = getSourceFileText(fileName); if (text !== undefined) { - sourceFile = ts.createSourceFile(fileName, text, languageVersion); + sourceFile = Harness.Compiler.createSourceFileAndAssertInvariants(fileName, text, languageVersion); } } From 340828e445268ba3cf0a6faddad935986fee09a8 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Fri, 6 Feb 2015 16:37:41 -0800 Subject: [PATCH 18/39] Update LKG --- bin/lib.d.ts | 2 +- bin/lib.dom.d.ts | 2 +- bin/lib.es6.d.ts | 2 +- bin/lib.webworker.d.ts | 2 +- bin/tsc.js | 1784 ++-- bin/typescript.d.ts | 214 +- bin/typescriptServices.d.ts | 214 +- bin/typescriptServices.js | 12466 +++++++++++++------------ bin/typescriptServices_internal.d.ts | 18 +- bin/typescript_internal.d.ts | 18 +- 10 files changed, 7578 insertions(+), 7144 deletions(-) diff --git a/bin/lib.d.ts b/bin/lib.d.ts index f2635cc65fa..02c45824aa8 100644 --- a/bin/lib.d.ts +++ b/bin/lib.d.ts @@ -1908,7 +1908,7 @@ declare module Intl { second?: string; timeZoneName?: string; formatMatcher?: string; - hour12: boolean; + hour12?: boolean; } interface ResolvedDateTimeFormatOptions { diff --git a/bin/lib.dom.d.ts b/bin/lib.dom.d.ts index 1fedb4e266f..16f12be029a 100644 --- a/bin/lib.dom.d.ts +++ b/bin/lib.dom.d.ts @@ -758,7 +758,7 @@ declare module Intl { second?: string; timeZoneName?: string; formatMatcher?: string; - hour12: boolean; + hour12?: boolean; } interface ResolvedDateTimeFormatOptions { diff --git a/bin/lib.es6.d.ts b/bin/lib.es6.d.ts index c8c00f5712c..a66c28662fd 100644 --- a/bin/lib.es6.d.ts +++ b/bin/lib.es6.d.ts @@ -4884,7 +4884,7 @@ declare module Intl { second?: string; timeZoneName?: string; formatMatcher?: string; - hour12: boolean; + hour12?: boolean; } interface ResolvedDateTimeFormatOptions { diff --git a/bin/lib.webworker.d.ts b/bin/lib.webworker.d.ts index eefa7a42014..fb993074398 100644 --- a/bin/lib.webworker.d.ts +++ b/bin/lib.webworker.d.ts @@ -758,7 +758,7 @@ declare module Intl { second?: string; timeZoneName?: string; formatMatcher?: string; - hour12: boolean; + hour12?: boolean; } interface ResolvedDateTimeFormatOptions { diff --git a/bin/tsc.js b/bin/tsc.js index ab5386e2b40..35f23f04758 100644 --- a/bin/tsc.js +++ b/bin/tsc.js @@ -15,15 +15,12 @@ and limitations under the License. var ts; (function (ts) { - (function (EmitReturnStatus) { - EmitReturnStatus[EmitReturnStatus["Succeeded"] = 0] = "Succeeded"; - EmitReturnStatus[EmitReturnStatus["AllOutputGenerationSkipped"] = 1] = "AllOutputGenerationSkipped"; - EmitReturnStatus[EmitReturnStatus["JSGeneratedWithSemanticErrors"] = 2] = "JSGeneratedWithSemanticErrors"; - EmitReturnStatus[EmitReturnStatus["DeclarationGenerationSkipped"] = 3] = "DeclarationGenerationSkipped"; - EmitReturnStatus[EmitReturnStatus["EmitErrorsEncountered"] = 4] = "EmitErrorsEncountered"; - EmitReturnStatus[EmitReturnStatus["CompilerOptionsErrors"] = 5] = "CompilerOptionsErrors"; - })(ts.EmitReturnStatus || (ts.EmitReturnStatus = {})); - var EmitReturnStatus = ts.EmitReturnStatus; + (function (ExitStatus) { + ExitStatus[ExitStatus["Success"] = 0] = "Success"; + ExitStatus[ExitStatus["DiagnosticsPresent_OutputsSkipped"] = 1] = "DiagnosticsPresent_OutputsSkipped"; + ExitStatus[ExitStatus["DiagnosticsPresent_OutputsGenerated"] = 2] = "DiagnosticsPresent_OutputsGenerated"; + })(ts.ExitStatus || (ts.ExitStatus = {})); + var ExitStatus = ts.ExitStatus; (function (DiagnosticCategory) { DiagnosticCategory[DiagnosticCategory["Warning"] = 0] = "Warning"; DiagnosticCategory[DiagnosticCategory["Error"] = 1] = "Error"; @@ -130,6 +127,12 @@ var ts; return result; } ts.sum = sum; + function addRange(to, from) { + for (var i = 0, n = from.length; i < n; i++) { + to.push(from[i]); + } + } + ts.addRange = addRange; function lastOrUndefined(array) { if (array.length === 0) { return undefined; @@ -261,8 +264,7 @@ var ts; length: length, messageText: text, category: message.category, - code: message.code, - isEarly: message.isEarly + code: message.code }; } ts.createFileDiagnostic = createFileDiagnostic; @@ -277,8 +279,7 @@ var ts; length: undefined, messageText: text, category: message.category, - code: message.code, - isEarly: message.isEarly + code: message.code }; } ts.createCompilerDiagnostic = createCompilerDiagnostic; @@ -301,34 +302,6 @@ var ts; return headChain; } ts.concatenateDiagnosticMessageChains = concatenateDiagnosticMessageChains; - function flattenDiagnosticChain(file, start, length, diagnosticChain, newLine) { - Debug.assert(start >= 0, "start must be non-negative, is " + start); - Debug.assert(length >= 0, "length must be non-negative, is " + length); - var code = diagnosticChain.code; - var category = diagnosticChain.category; - var messageText = ""; - var indent = 0; - while (diagnosticChain) { - if (indent) { - messageText += newLine; - for (var i = 0; i < indent; i++) { - messageText += " "; - } - } - messageText += diagnosticChain.messageText; - indent++; - diagnosticChain = diagnosticChain.next; - } - return { - file: file, - start: start, - length: length, - code: code, - category: category, - messageText: messageText - }; - } - ts.flattenDiagnosticChain = flattenDiagnosticChain; function compareValues(a, b) { if (a === b) return 0 /* EqualTo */; @@ -339,13 +312,33 @@ var ts; return a < b ? -1 /* LessThan */ : 1 /* GreaterThan */; } ts.compareValues = compareValues; - function getDiagnosticFilename(diagnostic) { - return diagnostic.file ? diagnostic.file.filename : undefined; + function getDiagnosticFileName(diagnostic) { + return diagnostic.file ? diagnostic.file.fileName : undefined; } function compareDiagnostics(d1, d2) { - return compareValues(getDiagnosticFilename(d1), getDiagnosticFilename(d2)) || compareValues(d1.start, d2.start) || compareValues(d1.length, d2.length) || compareValues(d1.code, d2.code) || compareValues(d1.messageText, d2.messageText) || 0; + return compareValues(getDiagnosticFileName(d1), getDiagnosticFileName(d2)) || compareValues(d1.start, d2.start) || compareValues(d1.length, d2.length) || compareValues(d1.code, d2.code) || compareMessageText(d1.messageText, d2.messageText) || 0 /* EqualTo */; } ts.compareDiagnostics = compareDiagnostics; + function compareMessageText(text1, text2) { + while (text1 && text2) { + var string1 = typeof text1 === "string" ? text1 : text1.messageText; + var string2 = typeof text2 === "string" ? text2 : text2.messageText; + var res = compareValues(string1, string2); + if (res) { + return res; + } + text1 = typeof text1 === "string" ? undefined : text1.next; + text2 = typeof text2 === "string" ? undefined : text2.next; + } + if (!text1 && !text2) { + return 0 /* EqualTo */; + } + return text1 ? 1 /* GreaterThan */ : -1 /* LessThan */; + } + function sortAndDeduplicateDiagnostics(diagnostics) { + return deduplicateSortedDiagnostics(diagnostics.sort(compareDiagnostics)); + } + ts.sortAndDeduplicateDiagnostics = sortAndDeduplicateDiagnostics; function deduplicateSortedDiagnostics(diagnostics) { if (diagnostics.length < 2) { return diagnostics; @@ -437,8 +430,8 @@ var ts; return normalizedPathComponents(path, rootLength); } ts.getNormalizedPathComponents = getNormalizedPathComponents; - function getNormalizedAbsolutePath(filename, currentDirectory) { - return getNormalizedPathFromPathComponents(getNormalizedPathComponents(filename, currentDirectory)); + function getNormalizedAbsolutePath(fileName, currentDirectory) { + return getNormalizedPathFromPathComponents(getNormalizedPathComponents(fileName, currentDirectory)); } ts.getNormalizedAbsolutePath = getNormalizedAbsolutePath; function getNormalizedPathFromPathComponents(pathComponents) { @@ -506,11 +499,11 @@ var ts; return absolutePath; } ts.getRelativePathToDirectoryOrUrl = getRelativePathToDirectoryOrUrl; - function getBaseFilename(path) { + function getBaseFileName(path) { var i = path.lastIndexOf(ts.directorySeparator); return i < 0 ? path : path.substring(i + 1); } - ts.getBaseFilename = getBaseFilename; + ts.getBaseFileName = getBaseFileName; function combinePaths(path1, path2) { if (!(path1 && path1.length)) return path2; @@ -570,6 +563,10 @@ var ts; } } ts.escapeString = escapeString; + function getDefaultLibFileName(options) { + return options.target === 2 /* ES6 */ ? "lib.es6.d.ts" : "lib.d.ts"; + } + ts.getDefaultLibFileName = getDefaultLibFileName; function Symbol(flags, name) { this.flags = flags; this.name = name; @@ -875,87 +872,87 @@ var ts; ts.Diagnostics = { Unterminated_string_literal: { code: 1002, category: 1 /* Error */, key: "Unterminated string literal." }, Identifier_expected: { code: 1003, category: 1 /* Error */, key: "Identifier expected." }, - _0_expected: { code: 1005, category: 1 /* Error */, key: "'{0}' expected.", isEarly: true }, + _0_expected: { code: 1005, category: 1 /* Error */, key: "'{0}' expected." }, A_file_cannot_have_a_reference_to_itself: { code: 1006, category: 1 /* Error */, key: "A file cannot have a reference to itself." }, - Trailing_comma_not_allowed: { code: 1009, category: 1 /* Error */, key: "Trailing comma not allowed.", isEarly: true }, + Trailing_comma_not_allowed: { code: 1009, category: 1 /* Error */, key: "Trailing comma not allowed." }, Asterisk_Slash_expected: { code: 1010, category: 1 /* Error */, key: "'*/' expected." }, Unexpected_token: { code: 1012, category: 1 /* Error */, key: "Unexpected token." }, - Catch_clause_parameter_cannot_have_a_type_annotation: { code: 1013, category: 1 /* Error */, key: "Catch clause parameter cannot have a type annotation.", isEarly: true }, - A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: 1 /* Error */, key: "A rest parameter must be last in a parameter list.", isEarly: true }, - Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: 1 /* Error */, key: "Parameter cannot have question mark and initializer.", isEarly: true }, - A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: 1 /* Error */, key: "A required parameter cannot follow an optional parameter.", isEarly: true }, - An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: 1 /* Error */, key: "An index signature cannot have a rest parameter.", isEarly: true }, - An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: 1 /* Error */, key: "An index signature parameter cannot have an accessibility modifier.", isEarly: true }, - An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: 1 /* Error */, key: "An index signature parameter cannot have a question mark.", isEarly: true }, - An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: 1 /* Error */, key: "An index signature parameter cannot have an initializer.", isEarly: true }, - An_index_signature_must_have_a_type_annotation: { code: 1021, category: 1 /* Error */, key: "An index signature must have a type annotation.", isEarly: true }, - An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: 1 /* Error */, key: "An index signature parameter must have a type annotation.", isEarly: true }, - An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: 1 /* Error */, key: "An index signature parameter type must be 'string' or 'number'.", isEarly: true }, + Catch_clause_parameter_cannot_have_a_type_annotation: { code: 1013, category: 1 /* Error */, key: "Catch clause parameter cannot have a type annotation." }, + A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: 1 /* Error */, key: "A rest parameter must be last in a parameter list." }, + Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: 1 /* Error */, key: "Parameter cannot have question mark and initializer." }, + A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: 1 /* Error */, key: "A required parameter cannot follow an optional parameter." }, + An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: 1 /* Error */, key: "An index signature cannot have a rest parameter." }, + An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: 1 /* Error */, key: "An index signature parameter cannot have an accessibility modifier." }, + An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: 1 /* Error */, key: "An index signature parameter cannot have a question mark." }, + An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: 1 /* Error */, key: "An index signature parameter cannot have an initializer." }, + An_index_signature_must_have_a_type_annotation: { code: 1021, category: 1 /* Error */, key: "An index signature must have a type annotation." }, + An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: 1 /* Error */, key: "An index signature parameter must have a type annotation." }, + An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: 1 /* Error */, key: "An index signature parameter type must be 'string' or 'number'." }, A_class_or_interface_declaration_can_only_have_one_extends_clause: { code: 1024, category: 1 /* Error */, key: "A class or interface declaration can only have one 'extends' clause." }, An_extends_clause_must_precede_an_implements_clause: { code: 1025, category: 1 /* Error */, key: "An 'extends' clause must precede an 'implements' clause." }, A_class_can_only_extend_a_single_class: { code: 1026, category: 1 /* Error */, key: "A class can only extend a single class." }, A_class_declaration_can_only_have_one_implements_clause: { code: 1027, category: 1 /* Error */, key: "A class declaration can only have one 'implements' clause." }, - Accessibility_modifier_already_seen: { code: 1028, category: 1 /* Error */, key: "Accessibility modifier already seen.", isEarly: true }, - _0_modifier_must_precede_1_modifier: { code: 1029, category: 1 /* Error */, key: "'{0}' modifier must precede '{1}' modifier.", isEarly: true }, - _0_modifier_already_seen: { code: 1030, category: 1 /* Error */, key: "'{0}' modifier already seen.", isEarly: true }, - _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a class element.", isEarly: true }, + Accessibility_modifier_already_seen: { code: 1028, category: 1 /* Error */, key: "Accessibility modifier already seen." }, + _0_modifier_must_precede_1_modifier: { code: 1029, category: 1 /* Error */, key: "'{0}' modifier must precede '{1}' modifier." }, + _0_modifier_already_seen: { code: 1030, category: 1 /* Error */, key: "'{0}' modifier already seen." }, + _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a class element." }, An_interface_declaration_cannot_have_an_implements_clause: { code: 1032, category: 1 /* Error */, key: "An interface declaration cannot have an 'implements' clause." }, super_must_be_followed_by_an_argument_list_or_member_access: { code: 1034, category: 1 /* Error */, key: "'super' must be followed by an argument list or member access." }, - Only_ambient_modules_can_use_quoted_names: { code: 1035, category: 1 /* Error */, key: "Only ambient modules can use quoted names.", isEarly: true }, - Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: 1 /* Error */, key: "Statements are not allowed in ambient contexts.", isEarly: true }, - A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: 1 /* Error */, key: "A 'declare' modifier cannot be used in an already ambient context.", isEarly: true }, - Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: 1 /* Error */, key: "Initializers are not allowed in ambient contexts.", isEarly: true }, - _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a module element.", isEarly: true }, - A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: 1 /* Error */, key: "A 'declare' modifier cannot be used with an interface declaration.", isEarly: true }, + Only_ambient_modules_can_use_quoted_names: { code: 1035, category: 1 /* Error */, key: "Only ambient modules can use quoted names." }, + Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: 1 /* Error */, key: "Statements are not allowed in ambient contexts." }, + A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: 1 /* Error */, key: "A 'declare' modifier cannot be used in an already ambient context." }, + Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: 1 /* Error */, key: "Initializers are not allowed in ambient contexts." }, + _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a module element." }, + A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: 1 /* Error */, key: "A 'declare' modifier cannot be used with an interface declaration." }, A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { code: 1046, category: 1 /* Error */, key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." }, - A_rest_parameter_cannot_be_optional: { code: 1047, category: 1 /* Error */, key: "A rest parameter cannot be optional.", isEarly: true }, - A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: 1 /* Error */, key: "A rest parameter cannot have an initializer.", isEarly: true }, - A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: 1 /* Error */, key: "A 'set' accessor must have exactly one parameter.", isEarly: true }, - A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: 1 /* Error */, key: "A 'set' accessor cannot have an optional parameter.", isEarly: true }, - A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: 1 /* Error */, key: "A 'set' accessor parameter cannot have an initializer.", isEarly: true }, - A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: 1 /* Error */, key: "A 'set' accessor cannot have rest parameter.", isEarly: true }, - A_get_accessor_cannot_have_parameters: { code: 1054, category: 1 /* Error */, key: "A 'get' accessor cannot have parameters.", isEarly: true }, - Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: 1 /* Error */, key: "Accessors are only available when targeting ECMAScript 5 and higher.", isEarly: true }, - Enum_member_must_have_initializer: { code: 1061, category: 1 /* Error */, key: "Enum member must have initializer.", isEarly: true }, - An_export_assignment_cannot_be_used_in_an_internal_module: { code: 1063, category: 1 /* Error */, key: "An export assignment cannot be used in an internal module.", isEarly: true }, - Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: 1 /* Error */, key: "Ambient enum elements can only have integer literal initializers.", isEarly: true }, + A_rest_parameter_cannot_be_optional: { code: 1047, category: 1 /* Error */, key: "A rest parameter cannot be optional." }, + A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: 1 /* Error */, key: "A rest parameter cannot have an initializer." }, + A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: 1 /* Error */, key: "A 'set' accessor must have exactly one parameter." }, + A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: 1 /* Error */, key: "A 'set' accessor cannot have an optional parameter." }, + A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: 1 /* Error */, key: "A 'set' accessor parameter cannot have an initializer." }, + A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: 1 /* Error */, key: "A 'set' accessor cannot have rest parameter." }, + A_get_accessor_cannot_have_parameters: { code: 1054, category: 1 /* Error */, key: "A 'get' accessor cannot have parameters." }, + Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: 1 /* Error */, key: "Accessors are only available when targeting ECMAScript 5 and higher." }, + Enum_member_must_have_initializer: { code: 1061, category: 1 /* Error */, key: "Enum member must have initializer." }, + An_export_assignment_cannot_be_used_in_an_internal_module: { code: 1063, category: 1 /* Error */, key: "An export assignment cannot be used in an internal module." }, + Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: 1 /* Error */, key: "Ambient enum elements can only have integer literal initializers." }, Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { code: 1068, category: 1 /* Error */, key: "Unexpected token. A constructor, method, accessor, or property was expected." }, - A_declare_modifier_cannot_be_used_with_an_import_declaration: { code: 1079, category: 1 /* Error */, key: "A 'declare' modifier cannot be used with an import declaration.", isEarly: true }, + A_declare_modifier_cannot_be_used_with_an_import_declaration: { code: 1079, category: 1 /* Error */, key: "A 'declare' modifier cannot be used with an import declaration." }, Invalid_reference_directive_syntax: { code: 1084, category: 1 /* Error */, key: "Invalid 'reference' directive syntax." }, - Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: 1 /* Error */, key: "Octal literals are not available when targeting ECMAScript 5 and higher.", isEarly: true }, - An_accessor_cannot_be_declared_in_an_ambient_context: { code: 1086, category: 1 /* Error */, key: "An accessor cannot be declared in an ambient context.", isEarly: true }, - _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a constructor declaration.", isEarly: true }, - _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a parameter.", isEarly: true }, - Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: 1 /* Error */, key: "Only a single variable declaration is allowed in a 'for...in' statement.", isEarly: true }, - Type_parameters_cannot_appear_on_a_constructor_declaration: { code: 1092, category: 1 /* Error */, key: "Type parameters cannot appear on a constructor declaration.", isEarly: true }, - Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: 1 /* Error */, key: "Type annotation cannot appear on a constructor declaration.", isEarly: true }, - An_accessor_cannot_have_type_parameters: { code: 1094, category: 1 /* Error */, key: "An accessor cannot have type parameters.", isEarly: true }, - A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: 1 /* Error */, key: "A 'set' accessor cannot have a return type annotation.", isEarly: true }, - An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: 1 /* Error */, key: "An index signature must have exactly one parameter.", isEarly: true }, - _0_list_cannot_be_empty: { code: 1097, category: 1 /* Error */, key: "'{0}' list cannot be empty.", isEarly: true }, - Type_parameter_list_cannot_be_empty: { code: 1098, category: 1 /* Error */, key: "Type parameter list cannot be empty.", isEarly: true }, - Type_argument_list_cannot_be_empty: { code: 1099, category: 1 /* Error */, key: "Type argument list cannot be empty.", isEarly: true }, - Invalid_use_of_0_in_strict_mode: { code: 1100, category: 1 /* Error */, key: "Invalid use of '{0}' in strict mode.", isEarly: true }, - with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: 1 /* Error */, key: "'with' statements are not allowed in strict mode.", isEarly: true }, - delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: 1 /* Error */, key: "'delete' cannot be called on an identifier in strict mode.", isEarly: true }, - A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { code: 1104, category: 1 /* Error */, key: "A 'continue' statement can only be used within an enclosing iteration statement.", isEarly: true }, - A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { code: 1105, category: 1 /* Error */, key: "A 'break' statement can only be used within an enclosing iteration or switch statement.", isEarly: true }, - Jump_target_cannot_cross_function_boundary: { code: 1107, category: 1 /* Error */, key: "Jump target cannot cross function boundary.", isEarly: true }, - A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: 1 /* Error */, key: "A 'return' statement can only be used within a function body.", isEarly: true }, - Expression_expected: { code: 1109, category: 1 /* Error */, key: "Expression expected.", isEarly: true }, - Type_expected: { code: 1110, category: 1 /* Error */, key: "Type expected.", isEarly: true }, - A_class_member_cannot_be_declared_optional: { code: 1112, category: 1 /* Error */, key: "A class member cannot be declared optional.", isEarly: true }, - A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: 1 /* Error */, key: "A 'default' clause cannot appear more than once in a 'switch' statement.", isEarly: true }, - Duplicate_label_0: { code: 1114, category: 1 /* Error */, key: "Duplicate label '{0}'", isEarly: true }, - A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: 1 /* Error */, key: "A 'continue' statement can only jump to a label of an enclosing iteration statement.", isEarly: true }, - A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { code: 1116, category: 1 /* Error */, key: "A 'break' statement can only jump to a label of an enclosing statement.", isEarly: true }, - An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { code: 1117, category: 1 /* Error */, key: "An object literal cannot have multiple properties with the same name in strict mode.", isEarly: true }, - An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { code: 1118, category: 1 /* Error */, key: "An object literal cannot have multiple get/set accessors with the same name.", isEarly: true }, - An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { code: 1119, category: 1 /* Error */, key: "An object literal cannot have property and accessor with the same name.", isEarly: true }, - An_export_assignment_cannot_have_modifiers: { code: 1120, category: 1 /* Error */, key: "An export assignment cannot have modifiers.", isEarly: true }, - Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: 1 /* Error */, key: "Octal literals are not allowed in strict mode.", isEarly: true }, - A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: 1 /* Error */, key: "A tuple type element list cannot be empty.", isEarly: true }, - Variable_declaration_list_cannot_be_empty: { code: 1123, category: 1 /* Error */, key: "Variable declaration list cannot be empty.", isEarly: true }, + Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: 1 /* Error */, key: "Octal literals are not available when targeting ECMAScript 5 and higher." }, + An_accessor_cannot_be_declared_in_an_ambient_context: { code: 1086, category: 1 /* Error */, key: "An accessor cannot be declared in an ambient context." }, + _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a constructor declaration." }, + _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a parameter." }, + Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: 1 /* Error */, key: "Only a single variable declaration is allowed in a 'for...in' statement." }, + Type_parameters_cannot_appear_on_a_constructor_declaration: { code: 1092, category: 1 /* Error */, key: "Type parameters cannot appear on a constructor declaration." }, + Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: 1 /* Error */, key: "Type annotation cannot appear on a constructor declaration." }, + An_accessor_cannot_have_type_parameters: { code: 1094, category: 1 /* Error */, key: "An accessor cannot have type parameters." }, + A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: 1 /* Error */, key: "A 'set' accessor cannot have a return type annotation." }, + An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: 1 /* Error */, key: "An index signature must have exactly one parameter." }, + _0_list_cannot_be_empty: { code: 1097, category: 1 /* Error */, key: "'{0}' list cannot be empty." }, + Type_parameter_list_cannot_be_empty: { code: 1098, category: 1 /* Error */, key: "Type parameter list cannot be empty." }, + Type_argument_list_cannot_be_empty: { code: 1099, category: 1 /* Error */, key: "Type argument list cannot be empty." }, + Invalid_use_of_0_in_strict_mode: { code: 1100, category: 1 /* Error */, key: "Invalid use of '{0}' in strict mode." }, + with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: 1 /* Error */, key: "'with' statements are not allowed in strict mode." }, + delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: 1 /* Error */, key: "'delete' cannot be called on an identifier in strict mode." }, + A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { code: 1104, category: 1 /* Error */, key: "A 'continue' statement can only be used within an enclosing iteration statement." }, + A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { code: 1105, category: 1 /* Error */, key: "A 'break' statement can only be used within an enclosing iteration or switch statement." }, + Jump_target_cannot_cross_function_boundary: { code: 1107, category: 1 /* Error */, key: "Jump target cannot cross function boundary." }, + A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: 1 /* Error */, key: "A 'return' statement can only be used within a function body." }, + Expression_expected: { code: 1109, category: 1 /* Error */, key: "Expression expected." }, + Type_expected: { code: 1110, category: 1 /* Error */, key: "Type expected." }, + A_class_member_cannot_be_declared_optional: { code: 1112, category: 1 /* Error */, key: "A class member cannot be declared optional." }, + A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: 1 /* Error */, key: "A 'default' clause cannot appear more than once in a 'switch' statement." }, + Duplicate_label_0: { code: 1114, category: 1 /* Error */, key: "Duplicate label '{0}'" }, + A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: 1 /* Error */, key: "A 'continue' statement can only jump to a label of an enclosing iteration statement." }, + A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { code: 1116, category: 1 /* Error */, key: "A 'break' statement can only jump to a label of an enclosing statement." }, + An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { code: 1117, category: 1 /* Error */, key: "An object literal cannot have multiple properties with the same name in strict mode." }, + An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { code: 1118, category: 1 /* Error */, key: "An object literal cannot have multiple get/set accessors with the same name." }, + An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { code: 1119, category: 1 /* Error */, key: "An object literal cannot have property and accessor with the same name." }, + An_export_assignment_cannot_have_modifiers: { code: 1120, category: 1 /* Error */, key: "An export assignment cannot have modifiers." }, + Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: 1 /* Error */, key: "Octal literals are not allowed in strict mode." }, + A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: 1 /* Error */, key: "A tuple type element list cannot be empty." }, + Variable_declaration_list_cannot_be_empty: { code: 1123, category: 1 /* Error */, key: "Variable declaration list cannot be empty." }, Digit_expected: { code: 1124, category: 1 /* Error */, key: "Digit expected." }, Hexadecimal_digit_expected: { code: 1125, category: 1 /* Error */, key: "Hexadecimal digit expected." }, Unexpected_end_of_text: { code: 1126, category: 1 /* Error */, key: "Unexpected end of text." }, @@ -967,53 +964,53 @@ var ts; Enum_member_expected: { code: 1132, category: 1 /* Error */, key: "Enum member expected." }, Type_reference_expected: { code: 1133, category: 1 /* Error */, key: "Type reference expected." }, Variable_declaration_expected: { code: 1134, category: 1 /* Error */, key: "Variable declaration expected." }, - Argument_expression_expected: { code: 1135, category: 1 /* Error */, key: "Argument expression expected.", isEarly: true }, + Argument_expression_expected: { code: 1135, category: 1 /* Error */, key: "Argument expression expected." }, Property_assignment_expected: { code: 1136, category: 1 /* Error */, key: "Property assignment expected." }, Expression_or_comma_expected: { code: 1137, category: 1 /* Error */, key: "Expression or comma expected." }, Parameter_declaration_expected: { code: 1138, category: 1 /* Error */, key: "Parameter declaration expected." }, Type_parameter_declaration_expected: { code: 1139, category: 1 /* Error */, key: "Type parameter declaration expected." }, Type_argument_expected: { code: 1140, category: 1 /* Error */, key: "Type argument expected." }, - String_literal_expected: { code: 1141, category: 1 /* Error */, key: "String literal expected.", isEarly: true }, - Line_break_not_permitted_here: { code: 1142, category: 1 /* Error */, key: "Line break not permitted here.", isEarly: true }, + String_literal_expected: { code: 1141, category: 1 /* Error */, key: "String literal expected." }, + Line_break_not_permitted_here: { code: 1142, category: 1 /* Error */, key: "Line break not permitted here." }, or_expected: { code: 1144, category: 1 /* Error */, key: "'{' or ';' expected." }, - Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: 1 /* Error */, key: "Modifiers not permitted on index signature members.", isEarly: true }, + Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: 1 /* Error */, key: "Modifiers not permitted on index signature members." }, Declaration_expected: { code: 1146, category: 1 /* Error */, key: "Declaration expected." }, - Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: 1 /* Error */, key: "Import declarations in an internal module cannot reference an external module.", isEarly: true }, + Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: 1 /* Error */, key: "Import declarations in an internal module cannot reference an external module." }, Cannot_compile_external_modules_unless_the_module_flag_is_provided: { code: 1148, category: 1 /* Error */, key: "Cannot compile external modules unless the '--module' flag is provided." }, - Filename_0_differs_from_already_included_filename_1_only_in_casing: { code: 1149, category: 1 /* Error */, key: "Filename '{0}' differs from already included filename '{1}' only in casing" }, - new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: 1 /* Error */, key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead.", isEarly: true }, + File_name_0_differs_from_already_included_file_name_1_only_in_casing: { code: 1149, category: 1 /* Error */, key: "File name '{0}' differs from already included file name '{1}' only in casing" }, + new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: 1 /* Error */, key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." }, var_let_or_const_expected: { code: 1152, category: 1 /* Error */, key: "'var', 'let' or 'const' expected." }, - let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: 1 /* Error */, key: "'let' declarations are only available when targeting ECMAScript 6 and higher.", isEarly: true }, - const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1154, category: 1 /* Error */, key: "'const' declarations are only available when targeting ECMAScript 6 and higher.", isEarly: true }, - const_declarations_must_be_initialized: { code: 1155, category: 1 /* Error */, key: "'const' declarations must be initialized", isEarly: true }, - const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: 1 /* Error */, key: "'const' declarations can only be declared inside a block.", isEarly: true }, - let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: 1 /* Error */, key: "'let' declarations can only be declared inside a block.", isEarly: true }, - Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1159, category: 1 /* Error */, key: "Tagged templates are only available when targeting ECMAScript 6 and higher.", isEarly: true }, + let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: 1 /* Error */, key: "'let' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1154, category: 1 /* Error */, key: "'const' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_must_be_initialized: { code: 1155, category: 1 /* Error */, key: "'const' declarations must be initialized" }, + const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: 1 /* Error */, key: "'const' declarations can only be declared inside a block." }, + let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: 1 /* Error */, key: "'let' declarations can only be declared inside a block." }, + Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1159, category: 1 /* Error */, key: "Tagged templates are only available when targeting ECMAScript 6 and higher." }, Unterminated_template_literal: { code: 1160, category: 1 /* Error */, key: "Unterminated template literal." }, Unterminated_regular_expression_literal: { code: 1161, category: 1 /* Error */, key: "Unterminated regular expression literal." }, - An_object_member_cannot_be_declared_optional: { code: 1162, category: 1 /* Error */, key: "An object member cannot be declared optional.", isEarly: true }, - yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: 1 /* Error */, key: "'yield' expression must be contained_within a generator declaration.", isEarly: true }, - Computed_property_names_are_not_allowed_in_enums: { code: 1164, category: 1 /* Error */, key: "Computed property names are not allowed in enums.", isEarly: true }, - Computed_property_names_are_not_allowed_in_an_ambient_context: { code: 1165, category: 1 /* Error */, key: "Computed property names are not allowed in an ambient context.", isEarly: true }, - Computed_property_names_are_not_allowed_in_class_property_declarations: { code: 1166, category: 1 /* Error */, key: "Computed property names are not allowed in class property declarations.", isEarly: true }, - Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: 1 /* Error */, key: "Computed property names are only available when targeting ECMAScript 6 and higher.", isEarly: true }, - Computed_property_names_are_not_allowed_in_method_overloads: { code: 1168, category: 1 /* Error */, key: "Computed property names are not allowed in method overloads.", isEarly: true }, - Computed_property_names_are_not_allowed_in_interfaces: { code: 1169, category: 1 /* Error */, key: "Computed property names are not allowed in interfaces.", isEarly: true }, - Computed_property_names_are_not_allowed_in_type_literals: { code: 1170, category: 1 /* Error */, key: "Computed property names are not allowed in type literals.", isEarly: true }, + An_object_member_cannot_be_declared_optional: { code: 1162, category: 1 /* Error */, key: "An object member cannot be declared optional." }, + yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: 1 /* Error */, key: "'yield' expression must be contained_within a generator declaration." }, + Computed_property_names_are_not_allowed_in_enums: { code: 1164, category: 1 /* Error */, key: "Computed property names are not allowed in enums." }, + Computed_property_names_are_not_allowed_in_an_ambient_context: { code: 1165, category: 1 /* Error */, key: "Computed property names are not allowed in an ambient context." }, + Computed_property_names_are_not_allowed_in_class_property_declarations: { code: 1166, category: 1 /* Error */, key: "Computed property names are not allowed in class property declarations." }, + Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: 1 /* Error */, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, + Computed_property_names_are_not_allowed_in_method_overloads: { code: 1168, category: 1 /* Error */, key: "Computed property names are not allowed in method overloads." }, + Computed_property_names_are_not_allowed_in_interfaces: { code: 1169, category: 1 /* Error */, key: "Computed property names are not allowed in interfaces." }, + Computed_property_names_are_not_allowed_in_type_literals: { code: 1170, category: 1 /* Error */, key: "Computed property names are not allowed in type literals." }, A_comma_expression_is_not_allowed_in_a_computed_property_name: { code: 1171, category: 1 /* Error */, key: "A comma expression is not allowed in a computed property name." }, - extends_clause_already_seen: { code: 1172, category: 1 /* Error */, key: "'extends' clause already seen.", isEarly: true }, - extends_clause_must_precede_implements_clause: { code: 1173, category: 1 /* Error */, key: "'extends' clause must precede 'implements' clause.", isEarly: true }, - Classes_can_only_extend_a_single_class: { code: 1174, category: 1 /* Error */, key: "Classes can only extend a single class.", isEarly: true }, - implements_clause_already_seen: { code: 1175, category: 1 /* Error */, key: "'implements' clause already seen.", isEarly: true }, - Interface_declaration_cannot_have_implements_clause: { code: 1176, category: 1 /* Error */, key: "Interface declaration cannot have 'implements' clause.", isEarly: true }, + extends_clause_already_seen: { code: 1172, category: 1 /* Error */, key: "'extends' clause already seen." }, + extends_clause_must_precede_implements_clause: { code: 1173, category: 1 /* Error */, key: "'extends' clause must precede 'implements' clause." }, + Classes_can_only_extend_a_single_class: { code: 1174, category: 1 /* Error */, key: "Classes can only extend a single class." }, + implements_clause_already_seen: { code: 1175, category: 1 /* Error */, key: "'implements' clause already seen." }, + Interface_declaration_cannot_have_implements_clause: { code: 1176, category: 1 /* Error */, key: "Interface declaration cannot have 'implements' clause." }, Binary_digit_expected: { code: 1177, category: 1 /* Error */, key: "Binary digit expected." }, Octal_digit_expected: { code: 1178, category: 1 /* Error */, key: "Octal digit expected." }, Unexpected_token_expected: { code: 1179, category: 1 /* Error */, key: "Unexpected token. '{' expected." }, Property_destructuring_pattern_expected: { code: 1180, category: 1 /* Error */, key: "Property destructuring pattern expected." }, Array_element_destructuring_pattern_expected: { code: 1181, category: 1 /* Error */, key: "Array element destructuring pattern expected." }, - A_destructuring_declaration_must_have_an_initializer: { code: 1182, category: 1 /* Error */, key: "A destructuring declaration must have an initializer.", isEarly: true }, - Destructuring_declarations_are_not_allowed_in_ambient_contexts: { code: 1183, category: 1 /* Error */, key: "Destructuring declarations are not allowed in ambient contexts.", isEarly: true }, - An_implementation_cannot_be_declared_in_ambient_contexts: { code: 1184, category: 1 /* Error */, key: "An implementation cannot be declared in ambient contexts.", isEarly: true }, + A_destructuring_declaration_must_have_an_initializer: { code: 1182, category: 1 /* Error */, key: "A destructuring declaration must have an initializer." }, + Destructuring_declarations_are_not_allowed_in_ambient_contexts: { code: 1183, category: 1 /* Error */, key: "Destructuring declarations are not allowed in ambient contexts." }, + An_implementation_cannot_be_declared_in_ambient_contexts: { code: 1184, category: 1 /* Error */, key: "An implementation cannot be declared in ambient contexts." }, Modifiers_cannot_appear_here: { code: 1184, category: 1 /* Error */, key: "Modifiers cannot appear here." }, Merge_conflict_marker_encountered: { code: 1185, category: 1 /* Error */, key: "Merge conflict marker encountered." }, A_rest_element_cannot_have_an_initializer: { code: 1186, category: 1 /* Error */, key: "A rest element cannot have an initializer." }, @@ -1155,10 +1152,10 @@ var ts; Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { code: 2445, category: 1 /* Error */, key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." }, Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { code: 2446, category: 1 /* Error */, key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." }, The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { code: 2447, category: 1 /* Error */, key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." }, - Block_scoped_variable_0_used_before_its_declaration: { code: 2448, category: 1 /* Error */, key: "Block-scoped variable '{0}' used before its declaration.", isEarly: true }, - The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: 1 /* Error */, key: "The operand of an increment or decrement operator cannot be a constant.", isEarly: true }, - Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: 1 /* Error */, key: "Left-hand side of assignment expression cannot be a constant.", isEarly: true }, - Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: 1 /* Error */, key: "Cannot redeclare block-scoped variable '{0}'.", isEarly: true }, + Block_scoped_variable_0_used_before_its_declaration: { code: 2448, category: 1 /* Error */, key: "Block-scoped variable '{0}' used before its declaration." }, + The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: 1 /* Error */, key: "The operand of an increment or decrement operator cannot be a constant." }, + Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: 1 /* Error */, key: "Left-hand side of assignment expression cannot be a constant." }, + Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: 1 /* Error */, key: "Cannot redeclare block-scoped variable '{0}'." }, An_enum_member_cannot_have_a_numeric_name: { code: 2452, category: 1 /* Error */, key: "An enum member cannot have a numeric name." }, The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { code: 2453, category: 1 /* Error */, key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." }, Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: 1 /* Error */, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." }, @@ -1244,12 +1241,12 @@ var ts; Parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4078, category: 1 /* Error */, key: "Parameter '{0}' of exported function has or is using private name '{1}'." }, Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: 1 /* Error */, key: "Exported type alias '{0}' has or is using private name '{1}'." }, Enum_declarations_must_all_be_const_or_non_const: { code: 4082, category: 1 /* Error */, key: "Enum declarations must all be const or non-const." }, - In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 4083, category: 1 /* Error */, key: "In 'const' enum declarations member initializer must be constant expression.", isEarly: true }, + In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 4083, category: 1 /* Error */, key: "In 'const' enum declarations member initializer must be constant expression." }, const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { code: 4084, category: 1 /* Error */, key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." }, - A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 4085, category: 1 /* Error */, key: "A const enum member can only be accessed using a string literal.", isEarly: true }, + A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 4085, category: 1 /* Error */, key: "A const enum member can only be accessed using a string literal." }, const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 4086, category: 1 /* Error */, key: "'const' enum member initializer was evaluated to a non-finite value." }, const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 4087, category: 1 /* Error */, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." }, - Property_0_does_not_exist_on_const_enum_1: { code: 4088, category: 1 /* Error */, key: "Property '{0}' does not exist on 'const' enum '{1}'.", isEarly: true }, + Property_0_does_not_exist_on_const_enum_1: { code: 4088, category: 1 /* Error */, key: "Property '{0}' does not exist on 'const' enum '{1}'." }, The_current_host_does_not_support_the_0_option: { code: 5001, category: 1 /* Error */, key: "The current host does not support the '{0}' option." }, Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: 1 /* Error */, key: "Cannot find the common subdirectory path for the input files." }, Cannot_read_file_0_Colon_1: { code: 5012, category: 1 /* Error */, key: "Cannot read file '{0}': {1}" }, @@ -1304,6 +1301,7 @@ var ts; File_0_not_found: { code: 6053, category: 1 /* Error */, key: "File '{0}' not found." }, File_0_must_have_extension_ts_or_d_ts: { code: 6054, category: 1 /* Error */, key: "File '{0}' must have extension '.ts' or '.d.ts'." }, Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { code: 6055, category: 2 /* Message */, key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." }, + Do_not_emit_declarations_for_code_that_has_an_internal_annotation: { code: 6056, category: 2 /* Message */, key: "Do not emit declarations for code that has an '@internal' annotation." }, Variable_0_implicitly_has_an_1_type: { code: 7005, category: 1 /* Error */, key: "Variable '{0}' implicitly has an '{1}' type." }, Parameter_0_implicitly_has_an_1_type: { code: 7006, category: 1 /* Error */, key: "Parameter '{0}' implicitly has an '{1}' type." }, Member_0_implicitly_has_an_1_type: { code: 7008, category: 1 /* Error */, key: "Member '{0}' implicitly has an '{1}' type." }, @@ -1321,8 +1319,10 @@ var ts; _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7023, category: 1 /* Error */, key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7024, category: 1 /* Error */, key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, You_cannot_rename_this_element: { code: 8000, category: 1 /* Error */, key: "You cannot rename this element." }, - yield_expressions_are_not_currently_supported: { code: 9000, category: 1 /* Error */, key: "'yield' expressions are not currently supported.", isEarly: true }, - Generators_are_not_currently_supported: { code: 9001, category: 1 /* Error */, key: "Generators are not currently supported.", isEarly: true } + You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: { code: 8001, category: 1 /* Error */, key: "You cannot rename elements that are defined in the standard TypeScript library." }, + yield_expressions_are_not_currently_supported: { code: 9000, category: 1 /* Error */, key: "'yield' expressions are not currently supported." }, + Generators_are_not_currently_supported: { code: 9001, category: 1 /* Error */, key: "Generators are not currently supported." }, + The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression: { code: 9002, category: 1 /* Error */, key: "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression." } }; })(ts || (ts = {})); var ts; @@ -1508,12 +1508,20 @@ var ts; return result; } ts.computeLineStarts = computeLineStarts; - function getPositionFromLineAndCharacter(lineStarts, line, character) { + function getPositionFromLineAndCharacter(sourceFile, line, character) { + return computePositionFromLineAndCharacter(getLineStarts(sourceFile), line, character); + } + ts.getPositionFromLineAndCharacter = getPositionFromLineAndCharacter; + function computePositionFromLineAndCharacter(lineStarts, line, character) { ts.Debug.assert(line > 0 && line <= lineStarts.length); return lineStarts[line - 1] + character - 1; } - ts.getPositionFromLineAndCharacter = getPositionFromLineAndCharacter; - function getLineAndCharacterOfPosition(lineStarts, position) { + ts.computePositionFromLineAndCharacter = computePositionFromLineAndCharacter; + function getLineStarts(sourceFile) { + return sourceFile.lineMap || (sourceFile.lineMap = computeLineStarts(sourceFile.text)); + } + ts.getLineStarts = getLineStarts; + function computeLineAndCharacterOfPosition(lineStarts, position) { var lineNumber = ts.binarySearch(lineStarts, position); if (lineNumber < 0) { lineNumber = (~lineNumber) - 1; @@ -1523,12 +1531,11 @@ var ts; character: position - lineStarts[lineNumber] + 1 }; } - ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition; - function positionToLineAndCharacter(text, pos) { - var lineStarts = computeLineStarts(text); - return getLineAndCharacterOfPosition(lineStarts, pos); + ts.computeLineAndCharacterOfPosition = computeLineAndCharacterOfPosition; + function getLineAndCharacterOfPosition(sourceFile, position) { + return computeLineAndCharacterOfPosition(getLineStarts(sourceFile), position); } - ts.positionToLineAndCharacter = positionToLineAndCharacter; + ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition; var hasOwnProperty = Object.prototype.hasOwnProperty; function isWhiteSpace(ch) { return ch === 32 /* space */ || ch === 9 /* tab */ || ch === 11 /* verticalTab */ || ch === 12 /* formFeed */ || ch === 160 /* nonBreakingSpace */ || ch === 5760 /* ogham */ || ch >= 8192 /* enQuad */ && ch <= 8203 /* zeroWidthSpace */ || ch === 8239 /* narrowNoBreakSpace */ || ch === 8287 /* mathematicalSpace */ || ch === 12288 /* ideographicSpace */ || ch === 65279 /* byteOrderMark */; @@ -2515,8 +2522,8 @@ var ts; ts.getSourceFileOfNode = getSourceFileOfNode; function nodePosToString(node) { var file = getSourceFileOfNode(node); - var loc = file.getLineAndCharacterFromPosition(node.pos); - return file.filename + "(" + loc.line + "," + loc.character + ")"; + var loc = ts.getLineAndCharacterOfPosition(file, node.pos); + return file.fileName + "(" + loc.line + "," + loc.character + ")"; } ts.nodePosToString = nodePosToString; function getStartPosOfNode(node) { @@ -2580,12 +2587,19 @@ var ts; return ts.createFileDiagnostic(file, start, length, message, arg0, arg1, arg2); } ts.createDiagnosticForNode = createDiagnosticForNode; - function createDiagnosticForNodeFromMessageChain(node, messageChain, newLine) { + function createDiagnosticForNodeFromMessageChain(node, messageChain) { node = getErrorSpanForNode(node); var file = getSourceFileOfNode(node); var start = ts.skipTrivia(file.text, node.pos); var length = node.end - start; - return ts.flattenDiagnosticChain(file, start, length, messageChain, newLine); + return { + file: file, + start: start, + length: length, + code: messageChain.code, + category: messageChain.category, + messageText: messageChain.next ? messageChain : messageChain.messageText + }; } ts.createDiagnosticForNodeFromMessageChain = createDiagnosticForNodeFromMessageChain; function getErrorSpanForNode(node) { @@ -3055,7 +3069,7 @@ var ts; ts.getHeritageClause = getHeritageClause; function tryResolveScriptReference(host, sourceFile, reference) { if (!host.getCompilerOptions().noResolve) { - var referenceFileName = ts.isRootedDiskPath(reference.filename) ? reference.filename : ts.combinePaths(ts.getDirectoryPath(sourceFile.filename), reference.filename); + var referenceFileName = ts.isRootedDiskPath(reference.fileName) ? reference.fileName : ts.combinePaths(ts.getDirectoryPath(sourceFile.fileName), reference.fileName); referenceFileName = ts.getNormalizedAbsolutePath(referenceFileName, host.getCurrentDirectory()); return host.getSourceFile(referenceFileName); } @@ -3110,7 +3124,7 @@ var ts; fileReference: { pos: start, end: end, - filename: matchResult[3] + fileName: matchResult[3] }, isNoDefaultLib: false }; @@ -3148,21 +3162,6 @@ var ts; return false; } ts.isModifier = isModifier; - function createEmitHostFromProgram(program) { - var compilerHost = program.getCompilerHost(); - return { - getCanonicalFileName: compilerHost.getCanonicalFileName, - getCommonSourceDirectory: program.getCommonSourceDirectory, - getCompilerOptions: program.getCompilerOptions, - getCurrentDirectory: compilerHost.getCurrentDirectory, - getNewLine: compilerHost.getNewLine, - getSourceFile: program.getSourceFile, - getSourceFiles: program.getSourceFiles, - isEmitBlocked: program.isEmitBlocked, - writeFile: compilerHost.writeFile - }; - } - ts.createEmitHostFromProgram = createEmitHostFromProgram; function textSpanEnd(span) { return span.start + span.length; } @@ -3272,10 +3271,76 @@ var ts; return createTextChangeRange(createTextSpanFromBounds(oldStartN, oldEndN), newEndN - oldStartN); } ts.collapseTextChangeRangesAcrossMultipleVersions = collapseTextChangeRangesAcrossMultipleVersions; + function createDiagnosticCollection() { + var nonFileDiagnostics = []; + var fileDiagnostics = {}; + var diagnosticsModified = false; + var modificationCount = 0; + return { + add: add, + getGlobalDiagnostics: getGlobalDiagnostics, + getDiagnostics: getDiagnostics, + getModificationCount: getModificationCount + }; + function getModificationCount() { + return modificationCount; + } + function add(diagnostic) { + var diagnostics; + if (diagnostic.file) { + diagnostics = fileDiagnostics[diagnostic.file.fileName]; + if (!diagnostics) { + diagnostics = []; + fileDiagnostics[diagnostic.file.fileName] = diagnostics; + } + } + else { + diagnostics = nonFileDiagnostics; + } + diagnostics.push(diagnostic); + diagnosticsModified = true; + modificationCount++; + } + function getGlobalDiagnostics() { + sortAndDeduplicate(); + return nonFileDiagnostics; + } + function getDiagnostics(fileName) { + sortAndDeduplicate(); + if (fileName) { + return fileDiagnostics[fileName] || []; + } + var allDiagnostics = []; + function pushDiagnostic(d) { + allDiagnostics.push(d); + } + ts.forEach(nonFileDiagnostics, pushDiagnostic); + for (var key in fileDiagnostics) { + if (ts.hasProperty(fileDiagnostics, key)) { + ts.forEach(fileDiagnostics[key], pushDiagnostic); + } + } + return ts.sortAndDeduplicateDiagnostics(allDiagnostics); + } + function sortAndDeduplicate() { + if (!diagnosticsModified) { + return; + } + diagnosticsModified = false; + nonFileDiagnostics = ts.sortAndDeduplicateDiagnostics(nonFileDiagnostics); + for (var key in fileDiagnostics) { + if (ts.hasProperty(fileDiagnostics, key)) { + fileDiagnostics[key] = ts.sortAndDeduplicateDiagnostics(fileDiagnostics[key]); + } + } + } + } + ts.createDiagnosticCollection = createDiagnosticCollection; })(ts || (ts = {})); var ts; (function (ts) { var nodeConstructors = new Array(209 /* Count */); + ts.parseTime = 0; function getNodeConstructor(kind) { return nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind)); } @@ -3512,6 +3577,155 @@ var ts; } forEachChild(sourceFile, walk); } + function moveElementEntirelyPastChangeRange(element, delta) { + if (element.length) { + visitArray(element); + } + else { + visitNode(element); + } + function visitNode(node) { + node._children = undefined; + node.pos += delta; + node.end += delta; + forEachChild(node, visitNode, visitArray); + } + function visitArray(array) { + array.pos += delta; + array.end += delta; + for (var i = 0, n = array.length; i < n; i++) { + visitNode(array[i]); + } + } + } + function adjustIntersectingElement(element, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) { + ts.Debug.assert(element.end >= changeStart, "Adjusting an element that was entirely before the change range"); + ts.Debug.assert(element.pos <= changeRangeOldEnd, "Adjusting an element that was entirely after the change range"); + element.pos = Math.min(element.pos, changeRangeNewEnd); + if (element.end >= changeRangeOldEnd) { + element.end += delta; + } + else { + element.end = Math.min(element.end, changeRangeNewEnd); + } + ts.Debug.assert(element.pos <= element.end); + if (element.parent) { + ts.Debug.assert(element.pos >= element.parent.pos); + ts.Debug.assert(element.end <= element.parent.end); + } + } + function updateTokenPositionsAndMarkElements(node, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) { + visitNode(node); + function visitNode(child) { + if (child.pos > changeRangeOldEnd) { + moveElementEntirelyPastChangeRange(child, delta); + return; + } + var fullEnd = child.end; + if (fullEnd >= changeStart) { + child.intersectsChange = true; + adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); + forEachChild(child, visitNode, visitArray); + return; + } + } + function visitArray(array) { + if (array.pos > changeRangeOldEnd) { + moveElementEntirelyPastChangeRange(array, delta); + } + else { + var fullEnd = array.end; + if (fullEnd >= changeStart) { + array.intersectsChange = true; + adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); + for (var i = 0, n = array.length; i < n; i++) { + visitNode(array[i]); + } + } + } + } + } + function extendToAffectedRange(sourceFile, changeRange) { + var maxLookahead = 1; + var start = changeRange.span.start; + for (var i = 0; start > 0 && i <= maxLookahead; i++) { + var nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start); + var position = nearestNode.pos; + start = Math.max(0, position - 1); + } + var finalSpan = ts.createTextSpanFromBounds(start, ts.textSpanEnd(changeRange.span)); + var finalLength = changeRange.newLength + (changeRange.span.start - start); + return ts.createTextChangeRange(finalSpan, finalLength); + } + function findNearestNodeStartingBeforeOrAtPosition(sourceFile, position) { + var bestResult = sourceFile; + var lastNodeEntirelyBeforePosition; + forEachChild(sourceFile, visit); + if (lastNodeEntirelyBeforePosition) { + var lastChildOfLastEntireNodeBeforePosition = getLastChild(lastNodeEntirelyBeforePosition); + if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) { + bestResult = lastChildOfLastEntireNodeBeforePosition; + } + } + return bestResult; + function getLastChild(node) { + while (true) { + var lastChild = getLastChildWorker(node); + if (lastChild) { + node = lastChild; + } + else { + return node; + } + } + } + function getLastChildWorker(node) { + var last = undefined; + forEachChild(node, function (child) { + if (ts.nodeIsPresent(child)) { + last = child; + } + }); + return last; + } + function visit(child) { + if (ts.nodeIsMissing(child)) { + return; + } + if (child.pos <= position) { + if (child.pos >= bestResult.pos) { + bestResult = child; + } + if (position < child.end) { + forEachChild(child, visit); + return true; + } + else { + ts.Debug.assert(child.end <= position); + lastNodeEntirelyBeforePosition = child; + } + } + else { + ts.Debug.assert(child.pos > position); + return true; + } + } + } + function updateSourceFile(sourceFile, newText, textChangeRange) { + if (ts.textChangeRangeIsUnchanged(textChangeRange)) { + return sourceFile; + } + if (sourceFile.statements.length === 0) { + return parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, undefined, true); + } + var syntaxCursor = createSyntaxCursor(sourceFile); + var changeRange = extendToAffectedRange(sourceFile, textChangeRange); + var delta = ts.textChangeRangeNewSpan(changeRange).length - changeRange.span.length; + updateTokenPositionsAndMarkElements(sourceFile, changeRange.span.start, ts.textSpanEnd(changeRange.span), ts.textSpanEnd(ts.textChangeRangeNewSpan(changeRange)), delta); + var result = parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, syntaxCursor, true); + return result; + } + ts.updateSourceFile = updateSourceFile; function isEvalOrArgumentsIdentifier(node) { return node.kind === 64 /* Identifier */ && (node.text === "eval" || node.text === "arguments"); } @@ -3579,207 +3793,47 @@ var ts; } } } - function createSourceFile(filename, sourceText, languageVersion, setParentNodes) { + function createSourceFile(fileName, sourceText, languageVersion, setParentNodes) { if (setParentNodes === void 0) { setParentNodes = false; } - var parsingContext; - var identifiers; + var start = new Date().getTime(); + var result = parseSourceFile(fileName, sourceText, languageVersion, undefined, setParentNodes); + ts.parseTime += new Date().getTime() - start; + return result; + } + ts.createSourceFile = createSourceFile; + function parseSourceFile(fileName, sourceText, languageVersion, syntaxCursor, setParentNodes) { + if (setParentNodes === void 0) { setParentNodes = false; } + var parsingContext = 0; + var identifiers = {}; var identifierCount = 0; var nodeCount = 0; - var lineStarts; - var syntacticDiagnostics; var scanner; var token; - var syntaxCursor; - var contextFlags; - var parseErrorBeforeNextFinishedNode; - var sourceFile; - return parseSourceFile(sourceText, setParentNodes); - function parseSourceFile(text, setParentNodes) { - sourceText = text; - parsingContext = 0; - identifiers = {}; - lineStarts = undefined; - syntacticDiagnostics = undefined; - contextFlags = 0; - parseErrorBeforeNextFinishedNode = false; - sourceFile = createNode(207 /* SourceFile */, 0); - sourceFile.referenceDiagnostics = []; - sourceFile.parseDiagnostics = []; - sourceFile.semanticDiagnostics = []; - scanner = ts.createScanner(languageVersion, true, sourceText, scanError); - token = nextToken(); - sourceFile.flags = ts.fileExtensionIs(filename, ".d.ts") ? 1024 /* DeclarationFile */ : 0; - sourceFile.end = sourceText.length; - sourceFile.filename = ts.normalizePath(filename); - sourceFile.text = sourceText; - sourceFile.getLineAndCharacterFromPosition = getLineAndCharacterFromSourcePosition; - sourceFile.getPositionFromLineAndCharacter = getPositionFromSourceLineAndCharacter; - sourceFile.getLineStarts = getLineStarts; - sourceFile.getSyntacticDiagnostics = getSyntacticDiagnostics; - sourceFile.update = update; - processReferenceComments(sourceFile); - sourceFile.statements = parseList(0 /* SourceElements */, true, parseSourceElement); - ts.Debug.assert(token === 1 /* EndOfFileToken */); - sourceFile.endOfFileToken = parseTokenNode(); - setExternalModuleIndicator(sourceFile); - sourceFile.nodeCount = nodeCount; - sourceFile.identifierCount = identifierCount; - sourceFile.languageVersion = languageVersion; - sourceFile.identifiers = identifiers; - if (setParentNodes) { - fixupParentReferences(sourceFile); - } - return sourceFile; - } - function update(newText, textChangeRange) { - if (ts.textChangeRangeIsUnchanged(textChangeRange)) { - return sourceFile; - } - if (sourceFile.statements.length === 0) { - return parseSourceFile(newText, true); - } - syntaxCursor = createSyntaxCursor(sourceFile); - var changeRange = extendToAffectedRange(textChangeRange); - var delta = ts.textChangeRangeNewSpan(changeRange).length - changeRange.span.length; - updateTokenPositionsAndMarkElements(sourceFile, changeRange.span.start, ts.textSpanEnd(changeRange.span), ts.textSpanEnd(ts.textChangeRangeNewSpan(changeRange)), delta); - var result = parseSourceFile(newText, true); - syntaxCursor = undefined; - return result; - } - function updateTokenPositionsAndMarkElements(node, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) { - visitNode(node); - function visitNode(child) { - if (child.pos > changeRangeOldEnd) { - moveElementEntirelyPastChangeRange(child, delta); - return; - } - var fullEnd = child.end; - if (fullEnd >= changeStart) { - child.intersectsChange = true; - adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - forEachChild(child, visitNode, visitArray); - return; - } - } - function visitArray(array) { - if (array.pos > changeRangeOldEnd) { - moveElementEntirelyPastChangeRange(array, delta); - } - else { - var fullEnd = array.end; - if (fullEnd >= changeStart) { - array.intersectsChange = true; - adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); - } - } - } - } - } - function adjustIntersectingElement(element, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) { - ts.Debug.assert(element.end >= changeStart, "Adjusting an element that was entirely before the change range"); - ts.Debug.assert(element.pos <= changeRangeOldEnd, "Adjusting an element that was entirely after the change range"); - element.pos = Math.min(element.pos, changeRangeNewEnd); - if (element.end >= changeRangeOldEnd) { - element.end += delta; - } - else { - element.end = Math.min(element.end, changeRangeNewEnd); - } - ts.Debug.assert(element.pos <= element.end); - if (element.parent) { - ts.Debug.assert(element.pos >= element.parent.pos); - ts.Debug.assert(element.end <= element.parent.end); - } - } - function moveElementEntirelyPastChangeRange(element, delta) { - if (element.length) { - visitArray(element); - } - else { - visitNode(element); - } - function visitNode(node) { - node._children = undefined; - node.pos += delta; - node.end += delta; - forEachChild(node, visitNode, visitArray); - } - function visitArray(array) { - array.pos += delta; - array.end += delta; - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); - } - } - } - function extendToAffectedRange(changeRange) { - var maxLookahead = 1; - var start = changeRange.span.start; - for (var i = 0; start > 0 && i <= maxLookahead; i++) { - var nearestNode = findNearestNodeStartingBeforeOrAtPosition(start); - var position = nearestNode.pos; - start = Math.max(0, position - 1); - } - var finalSpan = ts.createTextSpanFromBounds(start, ts.textSpanEnd(changeRange.span)); - var finalLength = changeRange.newLength + (changeRange.span.start - start); - return ts.createTextChangeRange(finalSpan, finalLength); - } - function findNearestNodeStartingBeforeOrAtPosition(position) { - var bestResult = sourceFile; - var lastNodeEntirelyBeforePosition; - forEachChild(sourceFile, visit); - if (lastNodeEntirelyBeforePosition) { - var lastChildOfLastEntireNodeBeforePosition = getLastChild(lastNodeEntirelyBeforePosition); - if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) { - bestResult = lastChildOfLastEntireNodeBeforePosition; - } - } - return bestResult; - function getLastChild(node) { - while (true) { - var lastChild = getLastChildWorker(node); - if (lastChild) { - node = lastChild; - } - else { - return node; - } - } - } - function getLastChildWorker(node) { - var last = undefined; - forEachChild(node, function (child) { - if (ts.nodeIsPresent(child)) { - last = child; - } - }); - return last; - } - function visit(child) { - if (ts.nodeIsMissing(child)) { - return; - } - if (child.pos <= position) { - if (child.pos >= bestResult.pos) { - bestResult = child; - } - if (position < child.end) { - forEachChild(child, visit); - return true; - } - else { - ts.Debug.assert(child.end <= position); - lastNodeEntirelyBeforePosition = child; - } - } - else { - ts.Debug.assert(child.pos > position); - return true; - } - } + var sourceFile = createNode(207 /* SourceFile */, 0); + sourceFile.pos = 0; + sourceFile.end = sourceText.length; + sourceFile.text = sourceText; + sourceFile.parseDiagnostics = []; + sourceFile.bindDiagnostics = []; + sourceFile.languageVersion = languageVersion; + sourceFile.fileName = ts.normalizePath(fileName); + sourceFile.flags = ts.fileExtensionIs(sourceFile.fileName, ".d.ts") ? 1024 /* DeclarationFile */ : 0; + var contextFlags = 0; + var parseErrorBeforeNextFinishedNode = false; + scanner = ts.createScanner(languageVersion, true, sourceText, scanError); + token = nextToken(); + processReferenceComments(sourceFile); + sourceFile.statements = parseList(0 /* SourceElements */, true, parseSourceElement); + ts.Debug.assert(token === 1 /* EndOfFileToken */); + sourceFile.endOfFileToken = parseTokenNode(); + setExternalModuleIndicator(sourceFile); + sourceFile.nodeCount = nodeCount; + sourceFile.identifierCount = identifierCount; + sourceFile.identifiers = identifiers; + if (setParentNodes) { + fixupParentReferences(sourceFile); } + return sourceFile; function setContextFlag(val, flag) { if (val) { contextFlags |= flag; @@ -3848,15 +3902,6 @@ var ts; function inDisallowInContext() { return (contextFlags & 2 /* DisallowIn */) !== 0; } - function getLineStarts() { - return lineStarts || (lineStarts = ts.computeLineStarts(sourceText)); - } - function getLineAndCharacterFromSourcePosition(position) { - return ts.getLineAndCharacterOfPosition(getLineStarts(), position); - } - function getPositionFromSourceLineAndCharacter(line, character) { - return ts.getPositionFromLineAndCharacter(getLineStarts(), line, character); - } function parseErrorAtCurrentToken(message, arg0) { var start = scanner.getTokenPos(); var length = scanner.getTextPos() - start; @@ -6292,7 +6337,7 @@ var ts; return isDeclarationStart() ? parseDeclaration() : parseStatement(); } function processReferenceComments(sourceFile) { - var triviaScanner = ts.createScanner(languageVersion, false, sourceText); + var triviaScanner = ts.createScanner(sourceFile.languageVersion, false, sourceText); var referencedFiles = []; var amdDependencies = []; var amdModuleName; @@ -6315,7 +6360,7 @@ var ts; referencedFiles.push(fileReference); } if (diagnosticMessage) { - sourceFile.referenceDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, diagnosticMessage)); + sourceFile.parseDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, diagnosticMessage)); } } else { @@ -6323,7 +6368,7 @@ var ts; var amdModuleNameMatchResult = amdModuleNameRegEx.exec(comment); if (amdModuleNameMatchResult) { if (amdModuleName) { - sourceFile.referenceDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, ts.Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments)); + sourceFile.parseDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, ts.Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments)); } amdModuleName = amdModuleNameMatchResult[2]; } @@ -6341,15 +6386,7 @@ var ts; function setExternalModuleIndicator(sourceFile) { sourceFile.externalModuleIndicator = ts.forEach(sourceFile.statements, function (node) { return node.flags & 1 /* Export */ || node.kind === 197 /* ImportDeclaration */ && node.moduleReference.kind === 199 /* ExternalModuleReference */ || node.kind === 198 /* ExportAssignment */ ? node : undefined; }); } - function getSyntacticDiagnostics() { - if (syntacticDiagnostics === undefined) { - syntacticDiagnostics = sourceFile.referenceDiagnostics.concat(sourceFile.parseDiagnostics); - } - ts.Debug.assert(syntacticDiagnostics !== undefined); - return syntacticDiagnostics; - } } - ts.createSourceFile = createSourceFile; function isLeftHandSideExpression(expr) { if (expr) { switch (expr.kind) { @@ -6386,6 +6423,7 @@ var ts; })(ts || (ts = {})); var ts; (function (ts) { + ts.bindTime = 0; function getModuleInstanceState(node) { if (node.kind === 192 /* InterfaceDeclaration */ || node.kind === 193 /* TypeAliasDeclaration */) { return 0 /* NonInstantiated */; @@ -6425,6 +6463,12 @@ var ts; } ts.hasDynamicName = hasDynamicName; function bindSourceFile(file) { + var start = new Date().getTime(); + bindSourceFileWorker(file); + ts.bindTime += new Date().getTime() - start; + } + ts.bindSourceFile = bindSourceFile; + function bindSourceFileWorker(file) { var parent; var container; var blockScopeContainer; @@ -6489,9 +6533,9 @@ var ts; } var message = symbol.flags & 2 /* BlockScopedVariable */ ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; ts.forEach(symbol.declarations, function (declaration) { - file.semanticDiagnostics.push(ts.createDiagnosticForNode(declaration.name, message, getDisplayName(declaration))); + file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name, message, getDisplayName(declaration))); }); - file.semanticDiagnostics.push(ts.createDiagnosticForNode(node.name, message, getDisplayName(node))); + file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name, message, getDisplayName(node))); symbol = createSymbol(0, name); } } @@ -6506,7 +6550,7 @@ var ts; if (node.name) { node.name.parent = node; } - file.semanticDiagnostics.push(ts.createDiagnosticForNode(symbol.exports[prototypeSymbol.name].declarations[0], ts.Diagnostics.Duplicate_identifier_0, prototypeSymbol.name)); + file.bindDiagnostics.push(ts.createDiagnosticForNode(symbol.exports[prototypeSymbol.name].declarations[0], ts.Diagnostics.Duplicate_identifier_0, prototypeSymbol.name)); } symbol.exports[prototypeSymbol.name] = prototypeSymbol; prototypeSymbol.parent = symbol; @@ -6770,7 +6814,7 @@ var ts; break; case 207 /* SourceFile */: if (ts.isExternalModule(node)) { - bindAnonymousDeclaration(node, 512 /* ValueModule */, '"' + ts.removeFileExtension(node.filename) + '"', true); + bindAnonymousDeclaration(node, 512 /* ValueModule */, '"' + ts.removeFileExtension(node.fileName) + '"', true); break; } case 170 /* Block */: @@ -6808,13 +6852,13 @@ var ts; } } } - ts.bindSourceFile = bindSourceFile; })(ts || (ts = {})); var ts; (function (ts) { var nextSymbolId = 1; var nextNodeId = 1; var nextMergeId = 1; + ts.checkTime = 0; function createTypeChecker(host, produceDiagnostics) { var Symbol = ts.objectAllocator.getSymbolConstructor(); var Type = ts.objectAllocator.getTypeConstructor(); @@ -6853,12 +6897,12 @@ var ts; getContextualType: getContextualType, getFullyQualifiedName: getFullyQualifiedName, getResolvedSignature: getResolvedSignature, - getEnumMemberValue: getEnumMemberValue, + getConstantValue: getConstantValue, isValidPropertyAccess: isValidPropertyAccess, getSignatureFromDeclaration: getSignatureFromDeclaration, isImplementationOfOverload: isImplementationOfOverload, getAliasedSymbol: resolveImport, - getEmitResolver: function () { return emitResolver; } + getEmitResolver: getEmitResolver }; var undefinedSymbol = createSymbol(4 /* Property */ | 67108864 /* Transient */, "undefined"); var argumentsSymbol = createSymbol(4 /* Property */ | 67108864 /* Transient */, "arguments"); @@ -6898,8 +6942,7 @@ var ts; var symbolLinks = []; var nodeLinks = []; var potentialThisCollisions = []; - var diagnostics = []; - var diagnosticsModified = false; + var diagnostics = ts.createDiagnosticCollection(); var primitiveTypeInfo = { "string": { type: stringType, @@ -6914,13 +6957,13 @@ var ts; flags: 8 /* Boolean */ } }; - function addDiagnostic(diagnostic) { - diagnostics.push(diagnostic); - diagnosticsModified = true; + function getEmitResolver(sourceFile) { + getDiagnostics(sourceFile); + return emitResolver; } function error(location, message, arg0, arg1, arg2) { var diagnostic = location ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); - addDiagnostic(diagnostic); + diagnostics.add(diagnostic); } function createSymbol(flags, name) { return new Symbol(flags, name); @@ -7272,7 +7315,7 @@ var ts; return; } var moduleReferenceLiteral = moduleReferenceExpression; - var searchPath = ts.getDirectoryPath(getSourceFile(location).filename); + var searchPath = ts.getDirectoryPath(getSourceFile(location).fileName); var moduleName = ts.escapeIdentifier(moduleReferenceLiteral.text); if (!moduleName) return; @@ -7284,8 +7327,8 @@ var ts; } } while (true) { - var filename = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); - var sourceFile = host.getSourceFile(filename + ".ts") || host.getSourceFile(filename + ".d.ts"); + var fileName = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); + var sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); if (sourceFile || isRelative) break; var parentPath = ts.getDirectoryPath(searchPath); @@ -7297,7 +7340,7 @@ var ts; if (sourceFile.symbol) { return getResolvedExportSymbol(sourceFile.symbol); } - error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_an_external_module, sourceFile.filename); + error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_an_external_module, sourceFile.fileName); return; } error(moduleReferenceLiteral, ts.Diagnostics.Cannot_find_external_module_0, moduleName); @@ -7669,7 +7712,7 @@ var ts; } writer.writeSymbol(symbol.name, symbol); } - function buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning, flags) { + function buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning, flags, typeFlags) { var parentSymbol; function appendParentTypeArgumentsAndSymbolName(symbol) { if (parentSymbol) { @@ -7709,7 +7752,9 @@ var ts; } } } - if (enclosingDeclaration && !(symbol.flags & 262144 /* TypeParameter */)) { + var isTypeParameter = symbol.flags & 262144 /* TypeParameter */; + var typeFormatFlag = 128 /* UseFullyQualifiedType */ & typeFlags; + if (!isTypeParameter && (enclosingDeclaration || typeFormatFlag)) { walkSymbol(symbol, meaning); return; } @@ -7726,7 +7771,7 @@ var ts; writeTypeReference(type, flags); } else if (type.flags & (1024 /* Class */ | 2048 /* Interface */ | 128 /* Enum */ | 512 /* TypeParameter */)) { - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 793056 /* Type */); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 793056 /* Type */, 0 /* None */, flags); } else if (type.flags & 8192 /* Tuple */) { writeTupleType(type); @@ -7789,15 +7834,15 @@ var ts; } function writeAnonymousType(type, flags) { if (type.symbol && type.symbol.flags & (32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) { - writeTypeofSymbol(type); + writeTypeofSymbol(type, flags); } else if (shouldWriteTypeOfFunctionSymbol()) { - writeTypeofSymbol(type); + writeTypeofSymbol(type, flags); } else if (typeStack && ts.contains(typeStack, type)) { var typeAlias = getTypeAliasForTypeLiteral(type); if (typeAlias) { - buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, 793056 /* Type */); + buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, 793056 /* Type */, 0 /* None */, flags); } else { writeKeyword(writer, 110 /* AnyKeyword */); @@ -7821,10 +7866,10 @@ var ts; } } } - function writeTypeofSymbol(type) { + function writeTypeofSymbol(type, typeFormatFlags) { writeKeyword(writer, 96 /* TypeOfKeyword */); writeSpace(writer); - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 107455 /* Value */); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 107455 /* Value */, 0 /* None */, typeFormatFlags); } function getIndexerParameterName(type, indexKind, fallbackName) { var declaration = getIndexDeclarationOfSymbol(type.symbol, indexKind); @@ -9677,7 +9722,7 @@ var ts; if (containingMessageChain) { errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo); } - addDiagnostic(ts.createDiagnosticForNodeFromMessageChain(errorNode, errorInfo, host.getCompilerHost().getNewLine())); + diagnostics.add(ts.createDiagnosticForNodeFromMessageChain(errorNode, errorInfo)); } return result !== 0 /* False */; function reportError(message, arg0, arg1, arg2) { @@ -9760,7 +9805,13 @@ var ts; } if (reportErrors) { headMessage = headMessage || ts.Diagnostics.Type_0_is_not_assignable_to_type_1; - reportError(headMessage, typeToString(source), typeToString(target)); + var sourceType = typeToString(source); + var targetType = typeToString(target); + if (sourceType === targetType) { + sourceType = typeToString(source, undefined, 128 /* UseFullyQualifiedType */); + targetType = typeToString(target, undefined, 128 /* UseFullyQualifiedType */); + } + reportError(headMessage, sourceType, targetType); } return 0 /* False */; } @@ -10453,6 +10504,9 @@ var ts; return true; } function inferFromTypes(source, target) { + if (source === anyFunctionType) { + return; + } if (target.flags & 512 /* TypeParameter */) { var typeParameters = context.typeParameters; for (var i = 0; i < typeParameters.length; i++) { @@ -10878,6 +10932,9 @@ var ts; } function checkIdentifier(node) { var symbol = getResolvedSymbol(node); + if (symbol === argumentsSymbol && ts.getContainingFunction(node).kind === 157 /* ArrowFunction */) { + error(node, ts.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression); + } if (symbol.flags & 8388608 /* Import */) { var symbolLinks = getSymbolLinks(symbol); if (!symbolLinks.referenced) { @@ -10914,7 +10971,7 @@ var ts; var needToCaptureLexicalThis = false; if (container.kind === 157 /* ArrowFunction */) { container = ts.getThisContainer(container, false); - needToCaptureLexicalThis = true; + needToCaptureLexicalThis = (languageVersion < 2 /* ES6 */); } switch (container.kind) { case 195 /* ModuleDeclaration */: @@ -11477,9 +11534,9 @@ var ts; return false; } else { - var diagnosticsCount = diagnostics.length; + var modificationCount = diagnostics.getModificationCount(); checkClassPropertyAccess(node, left, type, prop); - return diagnostics.length === diagnosticsCount; + return diagnostics.getModificationCount() === modificationCount; } } } @@ -11621,19 +11678,18 @@ var ts; function inferTypeArguments(signature, args, excludeArgument) { var typeParameters = signature.typeParameters; var context = createInferenceContext(typeParameters, false); - var mapper = createInferenceMapper(context); + var inferenceMapper = createInferenceMapper(context); for (var i = 0; i < args.length; i++) { if (args[i].kind === 168 /* OmittedExpression */) { continue; } - if (!excludeArgument || excludeArgument[i] === undefined) { - var parameterType = getTypeAtPosition(signature, i); - if (i === 0 && args[i].parent.kind === 153 /* TaggedTemplateExpression */) { - inferTypes(context, globalTemplateStringsArrayType, parameterType); - continue; - } - inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); + var parameterType = getTypeAtPosition(signature, i); + if (i === 0 && args[i].parent.kind === 153 /* TaggedTemplateExpression */) { + inferTypes(context, globalTemplateStringsArrayType, parameterType); + continue; } + var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; + inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); } if (excludeArgument) { for (var i = 0; i < args.length; i++) { @@ -11642,7 +11698,7 @@ var ts; } if (excludeArgument[i] === false) { var parameterType = getTypeAtPosition(signature, i); - inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); + inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, inferenceMapper), parameterType); } } } @@ -12024,6 +12080,9 @@ var ts; } function getReturnTypeFromBody(func, contextualMapper) { var contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); + if (!func.body) { + return unknownType; + } if (func.body.kind !== 170 /* Block */) { var type = checkExpressionCached(func.body, contextualMapper); } @@ -12089,7 +12148,7 @@ var ts; if (!hasGrammarError && node.kind === 156 /* FunctionExpression */) { checkGrammarFunctionName(node.name) || checkGrammarForGenerator(node); } - if (contextualMapper === identityMapper) { + if (contextualMapper === identityMapper && isContextSensitive(node)) { return anyFunctionType; } var links = getNodeLinks(node); @@ -12602,7 +12661,7 @@ var ts; case 154 /* TypeAssertionExpression */: return checkTypeAssertion(node); case 155 /* ParenthesizedExpression */: - return checkExpression(node.expression); + return checkExpression(node.expression, contextualMapper); case 156 /* FunctionExpression */: case 157 /* ArrowFunction */: return checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); @@ -13777,7 +13836,7 @@ var ts; var typeName2 = typeToString(base); var errorInfo = ts.chainDiagnosticMessages(undefined, ts.Diagnostics.Named_properties_0_of_types_1_and_2_are_not_identical, prop.name, typeName1, typeName2); errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2, typeToString(type), typeName1, typeName2); - addDiagnostic(ts.createDiagnosticForNodeFromMessageChain(typeNode, errorInfo, host.getCompilerHost().getNewLine())); + diagnostics.add(ts.createDiagnosticForNodeFromMessageChain(typeNode, errorInfo)); } } } @@ -14297,6 +14356,11 @@ var ts; } } function checkSourceFile(node) { + var start = new Date().getTime(); + checkSourceFileWorker(node); + ts.checkTime += new Date().getTime() - start; + } + function checkSourceFileWorker(node) { var links = getNodeLinks(node); if (!(links.flags & 1 /* TypeChecked */)) { checkGrammarSourceFile(node); @@ -14321,27 +14385,18 @@ var ts; links.flags |= 1 /* TypeChecked */; } } - function getSortedDiagnostics() { - ts.Debug.assert(produceDiagnostics, "diagnostics are available only in the full typecheck mode"); - if (diagnosticsModified) { - diagnostics.sort(ts.compareDiagnostics); - diagnostics = ts.deduplicateSortedDiagnostics(diagnostics); - diagnosticsModified = false; - } - return diagnostics; - } function getDiagnostics(sourceFile) { throwIfNonDiagnosticsProducing(); if (sourceFile) { checkSourceFile(sourceFile); - return ts.filter(getSortedDiagnostics(), function (d) { return d.file === sourceFile; }); + return diagnostics.getDiagnostics(sourceFile.fileName); } ts.forEach(host.getSourceFiles(), checkSourceFile); - return getSortedDiagnostics(); + return diagnostics.getDiagnostics(); } function getGlobalDiagnostics() { throwIfNonDiagnosticsProducing(); - return ts.filter(getSortedDiagnostics(), function (d) { return !d.file; }); + return diagnostics.getGlobalDiagnostics(); } function throwIfNonDiagnosticsProducing() { if (!produceDiagnostics) { @@ -14751,9 +14806,6 @@ var ts; } return isImportResolvedToValue(getSymbolOfNode(node)); } - function hasSemanticErrors(sourceFile) { - return getDiagnostics(sourceFile).length > 0 || getGlobalDiagnostics().length > 0; - } function isImportResolvedToValue(symbol) { var target = resolveImport(symbol); return target !== unknownSymbol && target.flags & 107455 /* Value */ && !isConstEnumOrConstEnumOnlyModule(target); @@ -14787,6 +14839,9 @@ var ts; return getNodeLinks(node).enumMemberValue; } function getConstantValue(node) { + if (node.kind === 206 /* EnumMember */) { + return getEnumMemberValue(node); + } var symbol = getNodeLinks(node).resolvedSymbol; if (symbol && (symbol.flags & 8 /* EnumMember */)) { var declaration = symbol.valueDeclaration; @@ -14816,9 +14871,7 @@ var ts; getExportAssignmentName: getExportAssignmentName, isReferencedImportDeclaration: isReferencedImportDeclaration, getNodeCheckFlags: getNodeCheckFlags, - getEnumMemberValue: getEnumMemberValue, isTopLevelValueImportWithEntityName: isTopLevelValueImportWithEntityName, - hasSemanticErrors: hasSemanticErrors, isDeclarationVisible: isDeclarationVisible, isImplementationOfOverload: isImplementationOfOverload, writeTypeOfDeclaration: writeTypeOfDeclaration, @@ -14832,7 +14885,6 @@ var ts; function initializeTypeChecker() { ts.forEach(host.getSourceFiles(), function (file) { ts.bindSourceFile(file); - ts.forEach(file.semanticDiagnostics, addDiagnostic); }); ts.forEach(host.getSourceFiles(), function (file) { if (!ts.isExternalModule(file)) { @@ -15495,13 +15547,13 @@ var ts; if (!hasParseDiagnostics(sourceFile)) { var scanner = ts.createScanner(languageVersion, true, sourceFile.text); var start = scanToken(scanner, node.pos); - diagnostics.push(ts.createFileDiagnostic(sourceFile, start, scanner.getTextPos() - start, message, arg0, arg1, arg2)); + diagnostics.add(ts.createFileDiagnostic(sourceFile, start, scanner.getTextPos() - start, message, arg0, arg1, arg2)); return true; } } function grammarErrorAtPos(sourceFile, start, length, message, arg0, arg1, arg2) { if (!hasParseDiagnostics(sourceFile)) { - diagnostics.push(ts.createFileDiagnostic(sourceFile, start, length, message, arg0, arg1, arg2)); + diagnostics.add(ts.createFileDiagnostic(sourceFile, start, length, message, arg0, arg1, arg2)); return true; } } @@ -15510,7 +15562,7 @@ var ts; if (!hasParseDiagnostics(sourceFile)) { var span = ts.getErrorSpanForNode(node); var start = span.end > span.pos ? ts.skipTrivia(sourceFile.text, span.pos) : span.pos; - diagnostics.push(ts.createFileDiagnostic(sourceFile, start, span.end - start, message, arg0, arg1, arg2)); + diagnostics.add(ts.createFileDiagnostic(sourceFile, start, span.end - start, message, arg0, arg1, arg2)); return true; } } @@ -15603,7 +15655,7 @@ var ts; if (!hasParseDiagnostics(sourceFile)) { var scanner = ts.createScanner(languageVersion, true, sourceFile.text); scanToken(scanner, node.pos); - diagnostics.push(ts.createFileDiagnostic(sourceFile, scanner.getTextPos(), 0, message, arg0, arg1, arg2)); + diagnostics.add(ts.createFileDiagnostic(sourceFile, scanner.getTextPos(), 0, message, arg0, arg1, arg2)); return true; } } @@ -15627,7 +15679,7 @@ var ts; } function shouldEmitToOwnFile(sourceFile, compilerOptions) { if (!ts.isDeclarationFile(sourceFile)) { - if ((ts.isExternalModule(sourceFile) || !compilerOptions.out) && !ts.fileExtensionIs(sourceFile.filename, ".js")) { + if ((ts.isExternalModule(sourceFile) || !compilerOptions.out) && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { return true; } return false; @@ -15699,7 +15751,7 @@ var ts; }; } function getLineOfLocalPosition(currentSourceFile, pos) { - return currentSourceFile.getLineAndCharacterFromPosition(pos).line; + return ts.getLineAndCharacterOfPosition(currentSourceFile, pos).line; } function emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments) { if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && getLineOfLocalPosition(currentSourceFile, node.pos) !== getLineOfLocalPosition(currentSourceFile, leadingComments[0].pos)) { @@ -15727,14 +15779,14 @@ var ts; } function writeCommentRange(currentSourceFile, writer, comment, newLine) { if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { - var firstCommentLineAndCharacter = currentSourceFile.getLineAndCharacterFromPosition(comment.pos); - var lastLine = currentSourceFile.getLineStarts().length; + var firstCommentLineAndCharacter = ts.getLineAndCharacterOfPosition(currentSourceFile, comment.pos); + var lastLine = ts.getLineStarts(currentSourceFile).length; var firstCommentLineIndent; for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = currentLine === lastLine ? (comment.end + 1) : currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); + var nextLineStart = currentLine === lastLine ? (comment.end + 1) : ts.getPositionFromLineAndCharacter(currentSourceFile, currentLine + 1, 1); if (pos !== comment.pos) { if (firstCommentLineIndent === undefined) { - firstCommentLineIndent = calculateIndent(currentSourceFile.getPositionFromLineAndCharacter(firstCommentLineAndCharacter.line, 1), comment.pos); + firstCommentLineIndent = calculateIndent(ts.getPositionFromLineAndCharacter(currentSourceFile, firstCommentLineAndCharacter.line, 1), comment.pos); } var currentWriterIndentSpacing = writer.getIndent() * getIndentSize(); var spacesToEmit = currentWriterIndentSpacing - firstCommentLineIndent + calculateIndent(pos, nextLineStart); @@ -15829,7 +15881,7 @@ var ts; }; } function getSourceFilePathInNewDir(sourceFile, host, newDirPath) { - var sourceFilePath = ts.getNormalizedAbsolutePath(sourceFile.filename, host.getCurrentDirectory()); + var sourceFilePath = ts.getNormalizedAbsolutePath(sourceFile.fileName, host.getCurrentDirectory()); sourceFilePath = sourceFilePath.replace(host.getCommonSourceDirectory(), ""); return ts.combinePaths(newDirPath, sourceFilePath); } @@ -15839,13 +15891,13 @@ var ts; var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); } else { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.filename); + var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); } return emitOutputFilePathWithoutExtension + extension; } - function writeFile(host, diagnostics, filename, data, writeByteOrderMark) { - host.writeFile(filename, data, writeByteOrderMark, function (hostErrorMessage) { - diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, filename, hostErrorMessage)); + function writeFile(host, diagnostics, fileName, data, writeByteOrderMark) { + host.writeFile(fileName, data, writeByteOrderMark, function (hostErrorMessage) { + diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, fileName, hostErrorMessage)); }); } function emitDeclarations(host, resolver, diagnostics, jsFilePath, root) { @@ -15863,7 +15915,61 @@ var ts; var reportedDeclarationError = false; var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { } : writeJsDocComments; + var emit = compilerOptions.stripInternal ? stripInternal : emitNode; var aliasDeclarationEmitInfo = []; + var referencePathsOutput = ""; + if (root) { + if (!compilerOptions.noResolve) { + var addedGlobalFileReference = false; + ts.forEach(root.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(host, root, fileReference); + if (referencedFile && ((referencedFile.flags & 1024 /* DeclarationFile */) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { + writeReferencePath(referencedFile); + if (!isExternalModuleOrDeclarationFile(referencedFile)) { + addedGlobalFileReference = true; + } + } + }); + } + emitSourceFile(root); + } + else { + var emittedReferencedFiles = []; + ts.forEach(host.getSourceFiles(), function (sourceFile) { + if (!isExternalModuleOrDeclarationFile(sourceFile)) { + if (!compilerOptions.noResolve) { + ts.forEach(sourceFile.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(host, sourceFile, fileReference); + if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { + writeReferencePath(referencedFile); + emittedReferencedFiles.push(referencedFile); + } + }); + } + emitSourceFile(sourceFile); + } + }); + } + return { + reportedDeclarationError: reportedDeclarationError, + aliasDeclarationEmitInfo: aliasDeclarationEmitInfo, + synchronousDeclarationOutput: writer.getText(), + referencePathsOutput: referencePathsOutput + }; + function hasInternalAnnotation(range) { + var text = currentSourceFile.text; + var comment = text.substring(range.pos, range.end); + return comment.indexOf("@internal") >= 0; + } + function stripInternal(node) { + if (node) { + var leadingCommentRanges = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos); + if (ts.forEach(leadingCommentRanges, hasInternalAnnotation)) { + return; + } + emitNode(node); + } + } function createAndSetNewTextWriterWithSymbolWriter() { var writer = createTextWriter(newLine); writer.trackSymbol = trackSymbol; @@ -15944,7 +16050,7 @@ var ts; } function emitLines(nodes) { for (var i = 0, n = nodes.length; i < n; i++) { - emitNode(nodes[i]); + emit(nodes[i]); } } function emitSeparatedList(nodes, separator, eachNodeEmitFn) { @@ -16193,7 +16299,7 @@ var ts; function emitEnumMemberDeclaration(node) { emitJsDocComments(node); writeTextOfNode(currentSourceFile, node.name); - var enumMemberValue = resolver.getEnumMemberValue(node); + var enumMemberValue = resolver.getConstantValue(node); if (enumMemberValue !== undefined) { write(" = "); write(enumMemberValue.toString()); @@ -16441,7 +16547,7 @@ var ts; } function getTypeAnnotationFromAccessor(accessor) { if (accessor) { - return accessor.kind === 130 /* GetAccessor */ ? accessor.type : accessor.parameters[0].type; + return accessor.kind === 130 /* GetAccessor */ ? accessor.type : accessor.parameters.length > 0 ? accessor.parameters[0].type : undefined; } } function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { @@ -16675,50 +16781,11 @@ var ts; return emitSourceFile(node); } } - var referencePathsOutput = ""; function writeReferencePath(referencedFile) { - var declFileName = referencedFile.flags & 1024 /* DeclarationFile */ ? referencedFile.filename : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; + var declFileName = referencedFile.flags & 1024 /* DeclarationFile */ ? referencedFile.fileName : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, host.getCurrentDirectory(), host.getCanonicalFileName, false); referencePathsOutput += "/// " + newLine; } - if (root) { - if (!compilerOptions.noResolve) { - var addedGlobalFileReference = false; - ts.forEach(root.referencedFiles, function (fileReference) { - var referencedFile = ts.tryResolveScriptReference(host, root, fileReference); - if (referencedFile && ((referencedFile.flags & 1024 /* DeclarationFile */) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { - writeReferencePath(referencedFile); - if (!isExternalModuleOrDeclarationFile(referencedFile)) { - addedGlobalFileReference = true; - } - } - }); - } - emitNode(root); - } - else { - var emittedReferencedFiles = []; - ts.forEach(host.getSourceFiles(), function (sourceFile) { - if (!isExternalModuleOrDeclarationFile(sourceFile)) { - if (!compilerOptions.noResolve) { - ts.forEach(sourceFile.referencedFiles, function (fileReference) { - var referencedFile = ts.tryResolveScriptReference(host, sourceFile, fileReference); - if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { - writeReferencePath(referencedFile); - emittedReferencedFiles.push(referencedFile); - } - }); - } - emitNode(sourceFile); - } - }); - } - return { - reportedDeclarationError: reportedDeclarationError, - aliasDeclarationEmitInfo: aliasDeclarationEmitInfo, - synchronousDeclarationOutput: writer.getText(), - referencePathsOutput: referencePathsOutput - }; } function getDeclarationDiagnostics(host, resolver, targetSourceFile) { var diagnostics = []; @@ -16733,6 +16800,32 @@ var ts; var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; var diagnostics = []; var newLine = host.getNewLine(); + if (targetSourceFile === undefined) { + ts.forEach(host.getSourceFiles(), function (sourceFile) { + if (shouldEmitToOwnFile(sourceFile, compilerOptions)) { + var jsFilePath = getOwnEmitOutputFilePath(sourceFile, host, ".js"); + emitFile(jsFilePath, sourceFile); + } + }); + if (compilerOptions.out) { + emitFile(compilerOptions.out); + } + } + else { + if (shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { + var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); + emitFile(jsFilePath, targetSourceFile); + } + else if (!ts.isDeclarationFile(targetSourceFile) && compilerOptions.out) { + emitFile(compilerOptions.out); + } + } + diagnostics = ts.sortAndDeduplicateDiagnostics(diagnostics); + return { + emitSkipped: false, + diagnostics: diagnostics, + sourceMaps: sourceMapDataList + }; function emitJavaScript(jsFilePath, root) { var writer = createTextWriter(newLine); var write = writer.write; @@ -16769,6 +16862,22 @@ var ts; var scopeEmitEnd = function () { }; var sourceMapData; + if (compilerOptions.sourceMap) { + initializeEmitterWithSourceMaps(); + } + if (root) { + emit(root); + } + else { + ts.forEach(host.getSourceFiles(), function (sourceFile) { + if (!isExternalModuleOrDeclarationFile(sourceFile)) { + emit(sourceFile); + } + }); + } + writeLine(); + writeEmittedFiles(writer.getText(), compilerOptions.emitBOM); + return; function initializeEmitterWithSourceMaps() { var sourceMapDir; var sourceMapSourceIndex = -1; @@ -16838,7 +16947,7 @@ var ts; } } function recordSourceMapSpan(pos) { - var sourceLinePos = currentSourceFile.getLineAndCharacterFromPosition(pos); + var sourceLinePos = ts.getLineAndCharacterOfPosition(currentSourceFile, pos); var emittedLine = writer.getLine(); var emittedColumn = writer.getColumn(); if (!lastRecordedSourceMapSpan || lastRecordedSourceMapSpan.emittedLine != emittedLine || lastRecordedSourceMapSpan.emittedColumn != emittedColumn || (lastRecordedSourceMapSpan.sourceIndex === sourceMapSourceIndex && (lastRecordedSourceMapSpan.sourceLine > sourceLinePos.line || (lastRecordedSourceMapSpan.sourceLine === sourceLinePos.line && lastRecordedSourceMapSpan.sourceColumn > sourceLinePos.character)))) { @@ -16873,9 +16982,9 @@ var ts; } function recordNewSourceFileStart(node) { var sourcesDirectoryPath = compilerOptions.sourceRoot ? host.getCommonSourceDirectory() : sourceMapDir; - sourceMapData.sourceMapSources.push(ts.getRelativePathToDirectoryOrUrl(sourcesDirectoryPath, node.filename, host.getCurrentDirectory(), host.getCanonicalFileName, true)); + sourceMapData.sourceMapSources.push(ts.getRelativePathToDirectoryOrUrl(sourcesDirectoryPath, node.fileName, host.getCurrentDirectory(), host.getCanonicalFileName, true)); sourceMapSourceIndex = sourceMapData.sourceMapSources.length - 1; - sourceMapData.inputSourceFileNames.push(node.filename); + sourceMapData.inputSourceFileNames.push(node.fileName); } function recordScopeNameOfNode(node, scopeName) { function recordScopeNameIndex(scopeNameIndex) { @@ -16953,7 +17062,7 @@ var ts; sourceMapDataList.push(sourceMapData); writeJavaScriptFile(emitOutput + "//# sourceMappingURL=" + sourceMapData.jsSourceMappingURL, writeByteOrderMark); } - var sourceMapJsFile = ts.getBaseFilename(ts.normalizeSlashes(jsFilePath)); + var sourceMapJsFile = ts.getBaseFileName(ts.normalizeSlashes(jsFilePath)); sourceMapData = { sourceMapFilePath: jsFilePath + ".map", jsSourceMappingURL: sourceMapJsFile + ".map", @@ -17146,7 +17255,6 @@ var ts; ts.forEachChild(node, emit); return; } - ts.Debug.assert(node.parent.kind !== 153 /* TaggedTemplateExpression */); var emitOuterParens = ts.isExpression(node.parent) && templateNeedsParens(node, node.parent); if (emitOuterParens) { write("("); @@ -17180,16 +17288,14 @@ var ts; case 151 /* CallExpression */: case 152 /* NewExpression */: return parent.expression === template; + case 153 /* TaggedTemplateExpression */: case 155 /* ParenthesizedExpression */: return false; - case 153 /* TaggedTemplateExpression */: - ts.Debug.fail("Path should be unreachable; tagged templates not supported pre-ES6."); default: return comparePrecedenceToBinaryPlus(parent) !== -1 /* LessThan */; } } function comparePrecedenceToBinaryPlus(expression) { - ts.Debug.assert(languageVersion < 2 /* ES6 */); switch (expression.kind) { case 163 /* BinaryExpression */: switch (expression.operator) { @@ -17434,8 +17540,11 @@ var ts; function tryEmitConstantValue(node) { var constantValue = resolver.getConstantValue(node); if (constantValue !== undefined) { - var propertyName = node.kind === 149 /* PropertyAccessExpression */ ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression); - write(constantValue.toString() + " /* " + propertyName + " */"); + write(constantValue.toString()); + if (!compilerOptions.removeComments) { + var propertyName = node.kind === 149 /* PropertyAccessExpression */ ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression); + write(" /* " + propertyName + " */"); + } return true; } return false; @@ -17497,7 +17606,6 @@ var ts; } } function emitTaggedTemplateExpression(node) { - ts.Debug.assert(languageVersion >= 2 /* ES6 */, "Trying to emit a tagged template in pre-ES6 mode."); emit(node.tag); write(" "); emit(node.template); @@ -18107,6 +18215,9 @@ var ts; emit(node.name); emitSignatureAndBody(node); } + function shouldEmitAsArrowFunction(node) { + return node.kind === 157 /* ArrowFunction */ && languageVersion >= 2 /* ES6 */; + } function emitFunctionDeclaration(node) { if (ts.nodeIsMissing(node.body)) { return emitPinnedOrTripleSlashComments(node); @@ -18114,7 +18225,9 @@ var ts; if (node.kind !== 128 /* MethodDeclaration */ && node.kind !== 127 /* MethodSignature */) { emitLeadingComments(node); } - write("function "); + if (!shouldEmitAsArrowFunction(node)) { + write("function "); + } if (node.kind === 190 /* FunctionDeclaration */ || (node.kind === 156 /* FunctionExpression */ && node.name)) { emit(node.name); } @@ -18142,6 +18255,13 @@ var ts; write(")"); decreaseIndent(); } + function emitSignatureParametersForArrow(node) { + if (node.parameters.length === 1 && node.pos === node.parameters[0].pos) { + emit(node.parameters[0]); + return; + } + emitSignatureParameters(node); + } function emitSignatureAndBody(node) { var saveTempCount = tempCount; var saveTempVariables = tempVariables; @@ -18149,58 +18269,70 @@ var ts; tempCount = 0; tempVariables = undefined; tempParameters = undefined; - emitSignatureParameters(node); - write(" {"); - scopeEmitStart(node); - increaseIndent(); - emitDetachedComments(node.body.kind === 170 /* Block */ ? node.body.statements : node.body); - var startIndex = 0; - if (node.body.kind === 170 /* Block */) { - startIndex = emitDirectivePrologues(node.body.statements, true); - } - var outPos = writer.getTextPos(); - emitCaptureThisForNodeIfNecessary(node); - emitDefaultValueAssignments(node); - emitRestParameter(node); - if (node.body.kind !== 170 /* Block */ && outPos === writer.getTextPos()) { - decreaseIndent(); - write(" "); - emitStart(node.body); - write("return "); - emitNode(node.body, true); - emitEnd(node.body); - write(";"); - emitTempDeclarations(false); - write(" "); - emitStart(node.body); - write("}"); - emitEnd(node.body); + if (shouldEmitAsArrowFunction(node)) { + emitSignatureParametersForArrow(node); + write(" =>"); } else { - if (node.body.kind === 170 /* Block */) { - emitLinesStartingAt(node.body.statements, startIndex); - } - else { - writeLine(); - emitLeadingComments(node.body); - write("return "); - emit(node.body, true); - write(";"); - emitTrailingComments(node.body); - } - emitTempDeclarations(true); + emitSignatureParameters(node); + } + write(" {"); + scopeEmitStart(node); + if (!node.body) { writeLine(); + write("}"); + } + else { + increaseIndent(); + emitDetachedComments(node.body.kind === 170 /* Block */ ? node.body.statements : node.body); + var startIndex = 0; if (node.body.kind === 170 /* Block */) { - emitLeadingCommentsOfPosition(node.body.statements.end); - decreaseIndent(); - emitToken(15 /* CloseBraceToken */, node.body.statements.end); + startIndex = emitDirectivePrologues(node.body.statements, true); } - else { + var outPos = writer.getTextPos(); + emitCaptureThisForNodeIfNecessary(node); + emitDefaultValueAssignments(node); + emitRestParameter(node); + if (node.body.kind !== 170 /* Block */ && outPos === writer.getTextPos()) { decreaseIndent(); + write(" "); + emitStart(node.body); + write("return "); + emitNode(node.body, true); + emitEnd(node.body); + write(";"); + emitTempDeclarations(false); + write(" "); emitStart(node.body); write("}"); emitEnd(node.body); } + else { + if (node.body.kind === 170 /* Block */) { + emitLinesStartingAt(node.body.statements, startIndex); + } + else { + writeLine(); + emitLeadingComments(node.body); + write("return "); + emit(node.body, true); + write(";"); + emitTrailingComments(node.body); + } + emitTempDeclarations(true); + writeLine(); + if (node.body.kind === 170 /* Block */) { + emitLeadingCommentsOfPosition(node.body.statements.end); + decreaseIndent(); + emitToken(15 /* CloseBraceToken */, node.body.statements.end); + } + else { + decreaseIndent(); + emitStart(node.body); + write("}"); + emitEnd(node.body); + } + } } scopeEmitEnd(); if (node.flags & 1 /* Export */) { @@ -18536,17 +18668,27 @@ var ts; write("["); emitExpressionForPropertyName(node.name); write("] = "); - if (node.initializer && !ts.isConst(enumParent)) { - emit(node.initializer); - } - else { - write(resolver.getEnumMemberValue(node).toString()); - } + writeEnumMemberDeclarationValue(node); write("] = "); emitExpressionForPropertyName(node.name); emitEnd(node); write(";"); } + function writeEnumMemberDeclarationValue(member) { + if (!member.initializer || ts.isConst(member.parent)) { + var value = resolver.getConstantValue(member); + if (value !== undefined) { + write(value.toString()); + return; + } + } + if (member.initializer) { + emit(member.initializer); + } + else { + write("undefined"); + } + } function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) { if (moduleDeclaration.body.kind === 195 /* ModuleDeclaration */) { var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body); @@ -19052,21 +19194,6 @@ var ts; emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, pinnedComments); emitComments(currentSourceFile, writer, pinnedComments, true, newLine, writeComment); } - if (compilerOptions.sourceMap) { - initializeEmitterWithSourceMaps(); - } - if (root) { - emit(root); - } - else { - ts.forEach(host.getSourceFiles(), function (sourceFile) { - if (!isExternalModuleOrDeclarationFile(sourceFile)) { - emit(sourceFile); - } - }); - } - writeLine(); - writeEmittedFiles(writer.getText(), compilerOptions.emitBOM); } function writeDeclarationFile(jsFilePath, sourceFile) { var emitDeclarationResult = emitDeclarations(host, resolver, diagnostics, jsFilePath, sourceFile); @@ -19084,75 +19211,18 @@ var ts; writeFile(host, diagnostics, ts.removeFileExtension(jsFilePath) + ".d.ts", declarationOutput, compilerOptions.emitBOM); } } - var hasSemanticErrors = false; - var isEmitBlocked = false; - if (targetSourceFile === undefined) { - hasSemanticErrors = resolver.hasSemanticErrors(); - isEmitBlocked = host.isEmitBlocked(); - ts.forEach(host.getSourceFiles(), function (sourceFile) { - if (shouldEmitToOwnFile(sourceFile, compilerOptions)) { - var jsFilePath = getOwnEmitOutputFilePath(sourceFile, host, ".js"); - emitFile(jsFilePath, sourceFile); - } - }); - if (compilerOptions.out) { - emitFile(compilerOptions.out); - } - } - else { - if (shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { - hasSemanticErrors = resolver.hasSemanticErrors(targetSourceFile); - isEmitBlocked = host.isEmitBlocked(targetSourceFile); - var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); - emitFile(jsFilePath, targetSourceFile); - } - else if (!ts.isDeclarationFile(targetSourceFile) && compilerOptions.out) { - ts.forEach(host.getSourceFiles(), function (sourceFile) { - if (!shouldEmitToOwnFile(sourceFile, compilerOptions)) { - hasSemanticErrors = hasSemanticErrors || resolver.hasSemanticErrors(sourceFile); - isEmitBlocked = isEmitBlocked || host.isEmitBlocked(sourceFile); - } - }); - emitFile(compilerOptions.out); - } - } function emitFile(jsFilePath, sourceFile) { - if (!isEmitBlocked) { - emitJavaScript(jsFilePath, sourceFile); - if (!hasSemanticErrors && compilerOptions.declaration) { - writeDeclarationFile(jsFilePath, sourceFile); - } + emitJavaScript(jsFilePath, sourceFile); + if (compilerOptions.declaration) { + writeDeclarationFile(jsFilePath, sourceFile); } } - diagnostics.sort(ts.compareDiagnostics); - diagnostics = ts.deduplicateSortedDiagnostics(diagnostics); - var hasEmitterError = ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === 1 /* Error */; }); - var emitResultStatus; - if (isEmitBlocked) { - emitResultStatus = 1 /* AllOutputGenerationSkipped */; - } - else if (hasEmitterError) { - emitResultStatus = 4 /* EmitErrorsEncountered */; - } - else if (hasSemanticErrors && compilerOptions.declaration) { - emitResultStatus = 3 /* DeclarationGenerationSkipped */; - } - else if (hasSemanticErrors && !compilerOptions.declaration) { - emitResultStatus = 2 /* JSGeneratedWithSemanticErrors */; - } - else { - emitResultStatus = 0 /* Succeeded */; - } - return { - emitResultStatus: emitResultStatus, - diagnostics: diagnostics, - sourceMaps: sourceMapDataList - }; } ts.emitFiles = emitFiles; })(ts || (ts = {})); var ts; (function (ts) { + ts.emitTime = 0; function createCompilerHost(options) { var currentDirectory; var existingDirectories = {}; @@ -19160,9 +19230,9 @@ var ts; return ts.sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase(); } var unsupportedFileEncodingErrorCode = -2147024809; - function getSourceFile(filename, languageVersion, onError) { + function getSourceFile(fileName, languageVersion, onError) { try { - var text = ts.sys.readFile(filename, options.charset); + var text = ts.sys.readFile(fileName, options.charset); } catch (e) { if (onError) { @@ -19170,7 +19240,7 @@ var ts; } text = ""; } - return text !== undefined ? ts.createSourceFile(filename, text, languageVersion) : undefined; + return text !== undefined ? ts.createSourceFile(fileName, text, languageVersion) : undefined; } function writeFile(fileName, data, writeByteOrderMark, onError) { function directoryExists(directoryPath) { @@ -19202,7 +19272,7 @@ var ts; } return { getSourceFile: getSourceFile, - getDefaultLibFilename: function (options) { return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), options.target === 2 /* ES6 */ ? "lib.es6.d.ts" : "lib.d.ts"); }, + getDefaultLibFileName: function (options) { return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), ts.getDefaultLibFileName(options)); }, writeFile: writeFile, getCurrentDirectory: function () { return currentDirectory || (currentDirectory = ts.sys.getCurrentDirectory()); }, useCaseSensitiveFileNames: function () { return ts.sys.useCaseSensitiveFileNames; }, @@ -19211,142 +19281,202 @@ var ts; }; } ts.createCompilerHost = createCompilerHost; + function getPreEmitDiagnostics(program) { + var diagnostics = program.getSyntacticDiagnostics().concat(program.getGlobalDiagnostics()).concat(program.getSemanticDiagnostics()); + return ts.sortAndDeduplicateDiagnostics(diagnostics); + } + ts.getPreEmitDiagnostics = getPreEmitDiagnostics; + function flattenDiagnosticMessageText(messageText, newLine) { + if (typeof messageText === "string") { + return messageText; + } + else { + var diagnosticChain = messageText; + var result = ""; + var indent = 0; + while (diagnosticChain) { + if (indent) { + result += newLine; + for (var i = 0; i < indent; i++) { + result += " "; + } + } + result += diagnosticChain.messageText; + indent++; + diagnosticChain = diagnosticChain.next; + } + return result; + } + } + ts.flattenDiagnosticMessageText = flattenDiagnosticMessageText; function createProgram(rootNames, options, host) { var program; var files = []; var filesByName = {}; - var errors = []; + var diagnostics = ts.createDiagnosticCollection(); var seenNoDefaultLib = options.noLib; var commonSourceDirectory; + host = host || createCompilerHost(options); ts.forEach(rootNames, function (name) { return processRootFile(name, false); }); if (!seenNoDefaultLib) { - processRootFile(host.getDefaultLibFilename(options), true); + processRootFile(host.getDefaultLibFileName(options), true); } verifyCompilerOptions(); - errors.sort(ts.compareDiagnostics); var diagnosticsProducingTypeChecker; var noDiagnosticsTypeChecker; - var emitHost; program = { getSourceFile: getSourceFile, getSourceFiles: function () { return files; }, getCompilerOptions: function () { return options; }, - getCompilerHost: function () { return host; }, - getDiagnostics: getDiagnostics, + getSyntacticDiagnostics: getSyntacticDiagnostics, getGlobalDiagnostics: getGlobalDiagnostics, + getSemanticDiagnostics: getSemanticDiagnostics, getDeclarationDiagnostics: getDeclarationDiagnostics, getTypeChecker: getTypeChecker, + getDiagnosticsProducingTypeChecker: getDiagnosticsProducingTypeChecker, getCommonSourceDirectory: function () { return commonSourceDirectory; }, - emitFiles: invokeEmitter, - isEmitBlocked: isEmitBlocked, - getCurrentDirectory: host.getCurrentDirectory + emit: emit, + getCurrentDirectory: host.getCurrentDirectory, + getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); }, + getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); }, + getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); }, + getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); } }; return program; - function getEmitHost() { - return emitHost || (emitHost = ts.createEmitHostFromProgram(program)); - } - function hasEarlyErrors(sourceFile) { - return ts.forEach(getDiagnosticsProducingTypeChecker().getDiagnostics(sourceFile), function (d) { return d.isEarly; }); - } - function isEmitBlocked(sourceFile) { - return getDiagnostics(sourceFile).length !== 0 || hasEarlyErrors(sourceFile) || (options.noEmitOnError && getDiagnosticsProducingTypeChecker().getDiagnostics(sourceFile).length !== 0); + function getEmitHost(writeFileCallback) { + return { + getCanonicalFileName: host.getCanonicalFileName, + getCommonSourceDirectory: program.getCommonSourceDirectory, + getCompilerOptions: program.getCompilerOptions, + getCurrentDirectory: host.getCurrentDirectory, + getNewLine: host.getNewLine, + getSourceFile: program.getSourceFile, + getSourceFiles: program.getSourceFiles, + writeFile: writeFileCallback || host.writeFile + }; } function getDiagnosticsProducingTypeChecker() { return diagnosticsProducingTypeChecker || (diagnosticsProducingTypeChecker = ts.createTypeChecker(program, true)); } - function getTypeChecker(produceDiagnostics) { - if (produceDiagnostics) { - return getDiagnosticsProducingTypeChecker(); - } - else { - return noDiagnosticsTypeChecker || (noDiagnosticsTypeChecker = ts.createTypeChecker(program, produceDiagnostics)); - } + function getTypeChecker() { + return noDiagnosticsTypeChecker || (noDiagnosticsTypeChecker = ts.createTypeChecker(program, false)); } function getDeclarationDiagnostics(targetSourceFile) { - var typeChecker = getDiagnosticsProducingTypeChecker(); - typeChecker.getDiagnostics(targetSourceFile); - var resolver = typeChecker.getEmitResolver(); + var resolver = getDiagnosticsProducingTypeChecker().getEmitResolver(targetSourceFile); return ts.getDeclarationDiagnostics(getEmitHost(), resolver, targetSourceFile); } - function invokeEmitter(targetSourceFile) { - var resolver = getDiagnosticsProducingTypeChecker().getEmitResolver(); - return ts.emitFiles(resolver, getEmitHost(), targetSourceFile); + function emit(sourceFile, writeFileCallback) { + if (options.noEmitOnError && getPreEmitDiagnostics(this).length > 0) { + return { diagnostics: [], sourceMaps: undefined, emitSkipped: true }; + } + var start = new Date().getTime(); + var emitResult = ts.emitFiles(getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile), getEmitHost(writeFileCallback), sourceFile); + ts.emitTime += new Date().getTime() - start; + return emitResult; } - function getSourceFile(filename) { - filename = host.getCanonicalFileName(filename); - return ts.hasProperty(filesByName, filename) ? filesByName[filename] : undefined; + function getSourceFile(fileName) { + fileName = host.getCanonicalFileName(fileName); + return ts.hasProperty(filesByName, fileName) ? filesByName[fileName] : undefined; } - function getDiagnostics(sourceFile) { - return sourceFile ? ts.filter(errors, function (e) { return e.file === sourceFile; }) : errors; + function getDiagnosticsHelper(sourceFile, getDiagnostics) { + if (sourceFile) { + return getDiagnostics(sourceFile); + } + var allDiagnostics = []; + ts.forEach(program.getSourceFiles(), function (sourceFile) { + ts.addRange(allDiagnostics, getDiagnostics(sourceFile)); + }); + return ts.sortAndDeduplicateDiagnostics(allDiagnostics); + } + function getSyntacticDiagnostics(sourceFile) { + return getDiagnosticsHelper(sourceFile, getSyntacticDiagnosticsForFile); + } + function getSemanticDiagnostics(sourceFile) { + return getDiagnosticsHelper(sourceFile, getSemanticDiagnosticsForFile); + } + function getSyntacticDiagnosticsForFile(sourceFile) { + return sourceFile.parseDiagnostics; + } + function getSemanticDiagnosticsForFile(sourceFile) { + var typeChecker = getDiagnosticsProducingTypeChecker(); + ts.Debug.assert(!!sourceFile.bindDiagnostics); + var bindDiagnostics = sourceFile.bindDiagnostics; + var checkDiagnostics = typeChecker.getDiagnostics(sourceFile); + var programDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName); + return bindDiagnostics.concat(checkDiagnostics).concat(programDiagnostics); } function getGlobalDiagnostics() { - return ts.filter(errors, function (e) { return !e.file; }); + var typeChecker = getDiagnosticsProducingTypeChecker(); + var allDiagnostics = []; + ts.addRange(allDiagnostics, typeChecker.getGlobalDiagnostics()); + ts.addRange(allDiagnostics, diagnostics.getGlobalDiagnostics()); + return ts.sortAndDeduplicateDiagnostics(allDiagnostics); } - function hasExtension(filename) { - return ts.getBaseFilename(filename).indexOf(".") >= 0; + function hasExtension(fileName) { + return ts.getBaseFileName(fileName).indexOf(".") >= 0; } - function processRootFile(filename, isDefaultLib) { - processSourceFile(ts.normalizePath(filename), isDefaultLib); + function processRootFile(fileName, isDefaultLib) { + processSourceFile(ts.normalizePath(fileName), isDefaultLib); } - function processSourceFile(filename, isDefaultLib, refFile, refPos, refEnd) { + function processSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd) { if (refEnd !== undefined && refPos !== undefined) { var start = refPos; var length = refEnd - refPos; } var diagnostic; - if (hasExtension(filename)) { - if (!options.allowNonTsExtensions && !ts.fileExtensionIs(filename, ".ts")) { + if (hasExtension(fileName)) { + if (!options.allowNonTsExtensions && !ts.fileExtensionIs(host.getCanonicalFileName(fileName), ".ts")) { diagnostic = ts.Diagnostics.File_0_must_have_extension_ts_or_d_ts; } - else if (!findSourceFile(filename, isDefaultLib, refFile, refPos, refEnd)) { + else if (!findSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd)) { diagnostic = ts.Diagnostics.File_0_not_found; } - else if (refFile && host.getCanonicalFileName(filename) === host.getCanonicalFileName(refFile.filename)) { + else if (refFile && host.getCanonicalFileName(fileName) === host.getCanonicalFileName(refFile.fileName)) { diagnostic = ts.Diagnostics.A_file_cannot_have_a_reference_to_itself; } } else { - if (options.allowNonTsExtensions && !findSourceFile(filename, isDefaultLib, refFile, refPos, refEnd)) { + if (options.allowNonTsExtensions && !findSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd)) { diagnostic = ts.Diagnostics.File_0_not_found; } - else if (!findSourceFile(filename + ".ts", isDefaultLib, refFile, refPos, refEnd) && !findSourceFile(filename + ".d.ts", isDefaultLib, refFile, refPos, refEnd)) { + else if (!findSourceFile(fileName + ".ts", isDefaultLib, refFile, refPos, refEnd) && !findSourceFile(fileName + ".d.ts", isDefaultLib, refFile, refPos, refEnd)) { diagnostic = ts.Diagnostics.File_0_not_found; - filename += ".ts"; + fileName += ".ts"; } } if (diagnostic) { if (refFile) { - errors.push(ts.createFileDiagnostic(refFile, start, length, diagnostic, filename)); + diagnostics.add(ts.createFileDiagnostic(refFile, start, length, diagnostic, fileName)); } else { - errors.push(ts.createCompilerDiagnostic(diagnostic, filename)); + diagnostics.add(ts.createCompilerDiagnostic(diagnostic, fileName)); } } } - function findSourceFile(filename, isDefaultLib, refFile, refStart, refLength) { - var canonicalName = host.getCanonicalFileName(filename); + function findSourceFile(fileName, isDefaultLib, refFile, refStart, refLength) { + var canonicalName = host.getCanonicalFileName(fileName); if (ts.hasProperty(filesByName, canonicalName)) { - return getSourceFileFromCache(filename, canonicalName, false); + return getSourceFileFromCache(fileName, canonicalName, false); } else { - var normalizedAbsolutePath = ts.getNormalizedAbsolutePath(filename, host.getCurrentDirectory()); + var normalizedAbsolutePath = ts.getNormalizedAbsolutePath(fileName, host.getCurrentDirectory()); var canonicalAbsolutePath = host.getCanonicalFileName(normalizedAbsolutePath); if (ts.hasProperty(filesByName, canonicalAbsolutePath)) { return getSourceFileFromCache(normalizedAbsolutePath, canonicalAbsolutePath, true); } - var file = filesByName[canonicalName] = host.getSourceFile(filename, options.target, function (hostErrorMessage) { + var file = filesByName[canonicalName] = host.getSourceFile(fileName, options.target, function (hostErrorMessage) { if (refFile) { - errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Cannot_read_file_0_Colon_1, filename, hostErrorMessage)); + diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage)); } else { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, filename, hostErrorMessage)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage)); } }); if (file) { seenNoDefaultLib = seenNoDefaultLib || file.hasNoDefaultLib; filesByName[canonicalAbsolutePath] = file; if (!options.noResolve) { - var basePath = ts.getDirectoryPath(filename); + var basePath = ts.getDirectoryPath(fileName); processReferencedFiles(file, basePath); processImportedModules(file, basePath); } @@ -19356,18 +19486,15 @@ var ts; else { files.push(file); } - ts.forEach(file.getSyntacticDiagnostics(), function (e) { - errors.push(e); - }); } } return file; - function getSourceFileFromCache(filename, canonicalName, useAbsolutePath) { + function getSourceFileFromCache(fileName, canonicalName, useAbsolutePath) { var file = filesByName[canonicalName]; if (file && host.useCaseSensitiveFileNames()) { - var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.filename, host.getCurrentDirectory()) : file.filename; + var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName; if (canonicalName !== sourceFileName) { - errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Filename_0_differs_from_already_included_filename_1_only_in_casing, filename, sourceFileName)); + diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName)); } } return file; @@ -19375,8 +19502,8 @@ var ts; } function processReferencedFiles(file, basePath) { ts.forEach(file.referencedFiles, function (ref) { - var referencedFilename = ts.isRootedDiskPath(ref.filename) ? ref.filename : ts.combinePaths(basePath, ref.filename); - processSourceFile(ts.normalizePath(referencedFilename), false, file, ref.pos, ref.end); + var referencedFileName = ts.isRootedDiskPath(ref.fileName) ? ref.fileName : ts.combinePaths(basePath, ref.fileName); + processSourceFile(ts.normalizePath(referencedFileName), false, file, ref.pos, ref.end); }); } function processImportedModules(file, basePath) { @@ -19415,17 +19542,17 @@ var ts; }); } }); - function findModuleSourceFile(filename, nameLiteral) { - return findSourceFile(filename, false, file, nameLiteral.pos, nameLiteral.end - nameLiteral.pos); + function findModuleSourceFile(fileName, nameLiteral) { + return findSourceFile(fileName, false, file, nameLiteral.pos, nameLiteral.end - nameLiteral.pos); } } function verifyCompilerOptions() { if (!options.sourceMap && (options.mapRoot || options.sourceRoot)) { if (options.mapRoot) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option)); } if (options.sourceRoot) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option)); } return; } @@ -19434,19 +19561,19 @@ var ts; var externalModuleErrorSpan = ts.getErrorSpanForNode(firstExternalModule.externalModuleIndicator); var errorStart = ts.skipTrivia(firstExternalModule.text, externalModuleErrorSpan.pos); var errorLength = externalModuleErrorSpan.end - errorStart; - errors.push(ts.createFileDiagnostic(firstExternalModule, errorStart, errorLength, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); + diagnostics.add(ts.createFileDiagnostic(firstExternalModule, errorStart, errorLength, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); } if (options.outDir || options.sourceRoot || (options.mapRoot && (!options.out || firstExternalModule !== undefined))) { var commonPathComponents; ts.forEach(files, function (sourceFile) { - if (!(sourceFile.flags & 1024 /* DeclarationFile */) && !ts.fileExtensionIs(sourceFile.filename, ".js")) { - var sourcePathComponents = ts.getNormalizedPathComponents(sourceFile.filename, host.getCurrentDirectory()); + if (!(sourceFile.flags & 1024 /* DeclarationFile */) && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { + var sourcePathComponents = ts.getNormalizedPathComponents(sourceFile.fileName, host.getCurrentDirectory()); sourcePathComponents.pop(); if (commonPathComponents) { for (var i = 0; i < Math.min(commonPathComponents.length, sourcePathComponents.length); i++) { if (commonPathComponents[i] !== sourcePathComponents[i]) { if (i === 0) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files)); return; } commonPathComponents.length = i; @@ -19469,10 +19596,10 @@ var ts; } if (options.noEmit) { if (options.out || options.outDir) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_out_or_outDir)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_out_or_outDir)); } if (options.declaration) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_declaration)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_declaration)); } } } @@ -19611,6 +19738,12 @@ var ts; type: "boolean", description: ts.Diagnostics.Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures }, + { + name: "stripInternal", + type: "boolean", + description: ts.Diagnostics.Do_not_emit_declarations_for_code_that_has_an_internal_annotation, + experimental: true + }, { name: "target", shortName: "t", @@ -19634,7 +19767,7 @@ var ts; ]; function parseCommandLine(commandLine) { var options = {}; - var filenames = []; + var fileNames = []; var errors = []; var shortOptionNames = {}; var optionNameMap = {}; @@ -19647,7 +19780,7 @@ var ts; parseStrings(commandLine); return { options: options, - filenames: filenames, + fileNames: fileNames, errors: errors }; function parseStrings(args) { @@ -19693,14 +19826,14 @@ var ts; } } else { - filenames.push(s); + fileNames.push(s); } } } - function parseResponseFile(filename) { - var text = ts.sys.readFile(filename); + function parseResponseFile(fileName) { + var text = ts.sys.readFile(fileName); if (!text) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_not_found, filename)); + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_not_found, fileName)); return; } var args = []; @@ -19720,7 +19853,7 @@ var ts; pos++; } else { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unterminated_quoted_string_in_response_file_0, filename)); + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unterminated_quoted_string_in_response_file_0, fileName)); } } else { @@ -19733,9 +19866,9 @@ var ts; } } ts.parseCommandLine = parseCommandLine; - function readConfigFile(filename) { + function readConfigFile(fileName) { try { - var text = ts.sys.readFile(filename); + var text = ts.sys.readFile(fileName); return /\S/.test(text) ? JSON.parse(text) : {}; } catch (e) { @@ -19746,7 +19879,7 @@ var ts; var errors = []; return { options: getCompilerOptions(), - filenames: getFiles(), + fileNames: getFiles(), errors: errors }; function getCompilerOptions() { @@ -19858,7 +19991,7 @@ var ts; function countLines(program) { var count = 0; ts.forEach(program.getSourceFiles(), function (file) { - count += file.getLineAndCharacterFromPosition(file.end).line; + count += ts.getLineAndCharacterOfPosition(file, file.end).line; }); return count; } @@ -19873,11 +20006,11 @@ var ts; function reportDiagnostic(diagnostic) { var output = ""; if (diagnostic.file) { - var loc = diagnostic.file.getLineAndCharacterFromPosition(diagnostic.start); - output += diagnostic.file.filename + "(" + loc.line + "," + loc.character + "): "; + var loc = ts.getLineAndCharacterOfPosition(diagnostic.file, diagnostic.start); + output += diagnostic.file.fileName + "(" + loc.line + "," + loc.character + "): "; } var category = ts.DiagnosticCategory[diagnostic.category].toLowerCase(); - output += category + " TS" + diagnostic.code + ": " + diagnostic.messageText + ts.sys.newLine; + output += category + " TS" + diagnostic.code + ": " + ts.flattenDiagnosticMessageText(diagnostic.messageText, ts.sys.newLine) + ts.sys.newLine; ts.sys.write(output); } function reportDiagnostics(diagnostics) { @@ -19911,26 +20044,26 @@ var ts; } function findConfigFile() { var searchPath = ts.normalizePath(ts.sys.getCurrentDirectory()); - var filename = "tsconfig.json"; + var fileName = "tsconfig.json"; while (true) { - if (ts.sys.fileExists(filename)) { - return filename; + if (ts.sys.fileExists(fileName)) { + return fileName; } var parentPath = ts.getDirectoryPath(searchPath); if (parentPath === searchPath) { break; } searchPath = parentPath; - filename = "../" + filename; + fileName = "../" + fileName; } return undefined; } function executeCommandLine(args) { var commandLine = ts.parseCommandLine(args); - var configFilename; + var configFileName; var configFileWatcher; var cachedProgram; - var rootFilenames; + var rootFileNames; var compilerOptions; var compilerHost; var hostGetSourceFile; @@ -19938,93 +20071,93 @@ var ts; if (commandLine.options.locale) { if (!isJSONSupported()) { reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.The_current_host_does_not_support_the_0_option, "--locale")); - return ts.sys.exit(5 /* CompilerOptionsErrors */); + return ts.sys.exit(1 /* DiagnosticsPresent_OutputsSkipped */); } validateLocaleAndSetLanguage(commandLine.options.locale, commandLine.errors); } if (commandLine.errors.length > 0) { reportDiagnostics(commandLine.errors); - return ts.sys.exit(5 /* CompilerOptionsErrors */); + return ts.sys.exit(1 /* DiagnosticsPresent_OutputsSkipped */); } if (commandLine.options.version) { reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Version_0, version)); - return ts.sys.exit(0 /* Succeeded */); + return ts.sys.exit(0 /* Success */); } if (commandLine.options.help) { printVersion(); printHelp(); - return ts.sys.exit(0 /* Succeeded */); + return ts.sys.exit(0 /* Success */); } if (commandLine.options.project) { if (!isJSONSupported()) { reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.The_current_host_does_not_support_the_0_option, "--project")); - return ts.sys.exit(5 /* CompilerOptionsErrors */); + return ts.sys.exit(1 /* DiagnosticsPresent_OutputsSkipped */); } - configFilename = ts.normalizePath(ts.combinePaths(commandLine.options.project, "tsconfig.json")); - if (commandLine.filenames.length !== 0) { + configFileName = ts.normalizePath(ts.combinePaths(commandLine.options.project, "tsconfig.json")); + if (commandLine.fileNames.length !== 0) { reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Option_project_cannot_be_mixed_with_source_files_on_a_command_line)); - return ts.sys.exit(5 /* CompilerOptionsErrors */); + return ts.sys.exit(1 /* DiagnosticsPresent_OutputsSkipped */); } } - else if (commandLine.filenames.length === 0 && isJSONSupported()) { - configFilename = findConfigFile(); + else if (commandLine.fileNames.length === 0 && isJSONSupported()) { + configFileName = findConfigFile(); } - if (commandLine.filenames.length === 0 && !configFilename) { + if (commandLine.fileNames.length === 0 && !configFileName) { printVersion(); printHelp(); - return ts.sys.exit(5 /* CompilerOptionsErrors */); + return ts.sys.exit(0 /* Success */); } if (commandLine.options.watch) { if (!ts.sys.watchFile) { reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.The_current_host_does_not_support_the_0_option, "--watch")); - return ts.sys.exit(5 /* CompilerOptionsErrors */); + return ts.sys.exit(1 /* DiagnosticsPresent_OutputsSkipped */); } - if (configFilename) { - configFileWatcher = ts.sys.watchFile(configFilename, configFileChanged); + if (configFileName) { + configFileWatcher = ts.sys.watchFile(configFileName, configFileChanged); } } performCompilation(); function performCompilation() { if (!cachedProgram) { - if (configFilename) { - var configObject = ts.readConfigFile(configFilename); + if (configFileName) { + var configObject = ts.readConfigFile(configFileName); if (!configObject) { - reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Unable_to_open_file_0, configFilename)); - return ts.sys.exit(5 /* CompilerOptionsErrors */); + reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Unable_to_open_file_0, configFileName)); + return ts.sys.exit(1 /* DiagnosticsPresent_OutputsSkipped */); } - var configParseResult = ts.parseConfigFile(configObject, ts.getDirectoryPath(configFilename)); + var configParseResult = ts.parseConfigFile(configObject, ts.getDirectoryPath(configFileName)); if (configParseResult.errors.length > 0) { reportDiagnostics(configParseResult.errors); - return ts.sys.exit(5 /* CompilerOptionsErrors */); + return ts.sys.exit(1 /* DiagnosticsPresent_OutputsSkipped */); } - rootFilenames = configParseResult.filenames; + rootFileNames = configParseResult.fileNames; compilerOptions = ts.extend(commandLine.options, configParseResult.options); } else { - rootFilenames = commandLine.filenames; + rootFileNames = commandLine.fileNames; compilerOptions = commandLine.options; } compilerHost = ts.createCompilerHost(compilerOptions); hostGetSourceFile = compilerHost.getSourceFile; compilerHost.getSourceFile = getSourceFile; } - var compileResult = compile(rootFilenames, compilerOptions, compilerHost); + var compileResult = compile(rootFileNames, compilerOptions, compilerHost); if (!commandLine.options.watch) { return ts.sys.exit(compileResult.exitStatus); } setCachedProgram(compileResult.program); reportDiagnostic(ts.createCompilerDiagnostic(ts.Diagnostics.Compilation_complete_Watching_for_file_changes)); } - function getSourceFile(filename, languageVersion, onError) { + function getSourceFile(fileName, languageVersion, onError) { if (cachedProgram) { - var sourceFile = cachedProgram.getSourceFile(filename); + var sourceFile = cachedProgram.getSourceFile(fileName); if (sourceFile && sourceFile.fileWatcher) { return sourceFile; } } - var sourceFile = hostGetSourceFile(filename, languageVersion, onError); + var sourceFile = hostGetSourceFile(fileName, languageVersion, onError); if (sourceFile && commandLine.options.watch) { - sourceFile.fileWatcher = ts.sys.watchFile(sourceFile.filename, function () { return sourceFileChanged(sourceFile); }); + sourceFile.fileWatcher = ts.sys.watchFile(sourceFile.fileName, function () { return sourceFileChanged(sourceFile); }); } return sourceFile; } @@ -20063,61 +20196,62 @@ var ts; } } ts.executeCommandLine = executeCommandLine; - function compile(filenames, compilerOptions, compilerHost) { - var parseStart = new Date().getTime(); - var program = ts.createProgram(filenames, compilerOptions, compilerHost); - var bindStart = new Date().getTime(); - var errors = program.getDiagnostics(); - var exitStatus; - if (errors.length) { - var checkStart = bindStart; - var emitStart = bindStart; - var reportStart = bindStart; - exitStatus = 1 /* AllOutputGenerationSkipped */; - } - else { - var checker = program.getTypeChecker(true); - var checkStart = new Date().getTime(); - errors = checker.getDiagnostics(); - if (program.isEmitBlocked()) { - exitStatus = 1 /* AllOutputGenerationSkipped */; - } - else if (compilerOptions.noEmit) { - exitStatus = 0 /* Succeeded */; - } - else { - var emitStart = new Date().getTime(); - var emitOutput = program.emitFiles(); - var emitErrors = emitOutput.diagnostics; - exitStatus = emitOutput.emitResultStatus; - var reportStart = new Date().getTime(); - errors = ts.concatenate(errors, emitErrors); - } - } - reportDiagnostics(errors); + function compile(fileNames, compilerOptions, compilerHost) { + ts.parseTime = 0; + ts.bindTime = 0; + ts.checkTime = 0; + ts.emitTime = 0; + var start = new Date().getTime(); + var program = ts.createProgram(fileNames, compilerOptions, compilerHost); + var exitStatus = compileProgram(); + var end = start - new Date().getTime(); if (compilerOptions.listFiles) { ts.forEach(program.getSourceFiles(), function (file) { - ts.sys.write(file.filename + ts.sys.newLine); + ts.sys.write(file.fileName + ts.sys.newLine); }); } if (compilerOptions.diagnostics) { var memoryUsed = ts.sys.getMemoryUsage ? ts.sys.getMemoryUsage() : -1; reportCountStatistic("Files", program.getSourceFiles().length); reportCountStatistic("Lines", countLines(program)); - reportCountStatistic("Nodes", checker ? checker.getNodeCount() : 0); - reportCountStatistic("Identifiers", checker ? checker.getIdentifierCount() : 0); - reportCountStatistic("Symbols", checker ? checker.getSymbolCount() : 0); - reportCountStatistic("Types", checker ? checker.getTypeCount() : 0); + reportCountStatistic("Nodes", program.getNodeCount()); + reportCountStatistic("Identifiers", program.getIdentifierCount()); + reportCountStatistic("Symbols", program.getSymbolCount()); + reportCountStatistic("Types", program.getTypeCount()); if (memoryUsed >= 0) { reportStatisticalValue("Memory used", Math.round(memoryUsed / 1000) + "K"); } - reportTimeStatistic("Parse time", bindStart - parseStart); - reportTimeStatistic("Bind time", checkStart - bindStart); - reportTimeStatistic("Check time", emitStart - checkStart); - reportTimeStatistic("Emit time", reportStart - emitStart); - reportTimeStatistic("Total time", reportStart - parseStart); + reportTimeStatistic("Parse time", ts.parseTime); + reportTimeStatistic("Bind time", ts.bindTime); + reportTimeStatistic("Check time", ts.checkTime); + reportTimeStatistic("Emit time", ts.emitTime); + reportTimeStatistic("Total time", start - end); } return { program: program, exitStatus: exitStatus }; + function compileProgram() { + var diagnostics = program.getSyntacticDiagnostics(); + reportDiagnostics(diagnostics); + if (diagnostics.length === 0) { + var diagnostics = program.getGlobalDiagnostics(); + reportDiagnostics(diagnostics); + if (diagnostics.length === 0) { + var diagnostics = program.getSemanticDiagnostics(); + reportDiagnostics(diagnostics); + } + } + if (compilerOptions.noEmit) { + return diagnostics.length ? 1 /* DiagnosticsPresent_OutputsSkipped */ : 0 /* Success */; + } + var emitOutput = program.emit(); + reportDiagnostics(emitOutput.diagnostics); + if (emitOutput.emitSkipped) { + return 1 /* DiagnosticsPresent_OutputsSkipped */; + } + if (diagnostics.length > 0 || emitOutput.diagnostics.length > 0) { + 2 /* DiagnosticsPresent_OutputsGenerated */; + } + return 0 /* Success */; + } } function printVersion() { ts.sys.write(getDiagnosticText(ts.Diagnostics.Version_0, version) + ts.sys.newLine); @@ -20137,7 +20271,7 @@ var ts; output += padding + "tsc @args.txt" + ts.sys.newLine; output += ts.sys.newLine; output += getDiagnosticText(ts.Diagnostics.Options_Colon) + ts.sys.newLine; - var optsList = ts.optionDeclarations.slice(); + var optsList = ts.filter(ts.optionDeclarations.slice(), function (v) { return !v.experimental; }); optsList.sort(function (a, b) { return ts.compareValues(a.name.toLowerCase(), b.name.toLowerCase()); }); var marginLength = 0; var usageColumn = []; diff --git a/bin/typescript.d.ts b/bin/typescript.d.ts index 11f29d7624e..e54b125f73d 100644 --- a/bin/typescript.d.ts +++ b/bin/typescript.d.ts @@ -676,7 +676,7 @@ declare module "typescript" { exportName: Identifier; } interface FileReference extends TextRange { - filename: string; + fileName: string; } interface CommentRange extends TextRange { hasTrailingNewLine?: boolean; @@ -684,42 +684,43 @@ declare module "typescript" { interface SourceFile extends Declaration { statements: NodeArray; endOfFileToken: Node; - filename: string; + fileName: string; text: string; - getLineAndCharacterFromPosition(position: number): LineAndCharacter; - getPositionFromLineAndCharacter(line: number, character: number): number; - getLineStarts(): number[]; - update(newText: string, textChangeRange: TextChangeRange): SourceFile; amdDependencies: string[]; amdModuleName: string; referencedFiles: FileReference[]; - referenceDiagnostics: Diagnostic[]; - parseDiagnostics: Diagnostic[]; - getSyntacticDiagnostics(): Diagnostic[]; - semanticDiagnostics: Diagnostic[]; hasNoDefaultLib: boolean; externalModuleIndicator: Node; - nodeCount: number; - identifierCount: number; - symbolCount: number; languageVersion: ScriptTarget; identifiers: Map; } interface ScriptReferenceHost { getCompilerOptions(): CompilerOptions; - getSourceFile(filename: string): SourceFile; + getSourceFile(fileName: string): SourceFile; getCurrentDirectory(): string; } + interface WriteFileCallback { + (fileName: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; + } interface Program extends ScriptReferenceHost { getSourceFiles(): SourceFile[]; - getCompilerHost(): CompilerHost; - getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + /** + * Emits the javascript and declaration files. If targetSourceFile is not specified, then + * the javascript and declaration files will be produced for all the files in this program. + * If targetSourceFile is specified, then only the javascript and declaration for that + * specific file will be generated. + * + * If writeFile is not specified then the writeFile callback from the compiler host will be + * used for writing the javascript and declaration files. Otherwise, the writeFile parameter + * will be invoked when writing the javascript and declaration files. + */ + emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback): EmitResult; + getSyntacticDiagnostics(sourceFile?: SourceFile): Diagnostic[]; getGlobalDiagnostics(): Diagnostic[]; - getDeclarationDiagnostics(sourceFile: SourceFile): Diagnostic[]; - getTypeChecker(produceDiagnostics: boolean): TypeChecker; + getSemanticDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getDeclarationDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getTypeChecker(): TypeChecker; getCommonSourceDirectory(): string; - emitFiles(targetSourceFile?: SourceFile): EmitResult; - isEmitBlocked(sourceFile?: SourceFile): boolean; } interface SourceMapSpan { emittedLine: number; @@ -740,33 +741,22 @@ declare module "typescript" { sourceMapMappings: string; sourceMapDecodedMappings: SourceMapSpan[]; } - enum EmitReturnStatus { - Succeeded = 0, - AllOutputGenerationSkipped = 1, - JSGeneratedWithSemanticErrors = 2, - DeclarationGenerationSkipped = 3, - EmitErrorsEncountered = 4, - CompilerOptionsErrors = 5, + enum ExitStatus { + Success = 0, + DiagnosticsPresent_OutputsSkipped = 1, + DiagnosticsPresent_OutputsGenerated = 2, } interface EmitResult { - emitResultStatus: EmitReturnStatus; + emitSkipped: boolean; diagnostics: Diagnostic[]; sourceMaps: SourceMapData[]; } interface TypeCheckerHost { getCompilerOptions(): CompilerOptions; - getCompilerHost(): CompilerHost; getSourceFiles(): SourceFile[]; - getSourceFile(filename: string): SourceFile; + getSourceFile(fileName: string): SourceFile; } interface TypeChecker { - getEmitResolver(): EmitResolver; - getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; - getGlobalDiagnostics(): Diagnostic[]; - getNodeCount(): number; - getIdentifierCount(): number; - getSymbolCount(): number; - getTypeCount(): number; getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; getDeclaredTypeOfSymbol(symbol: Symbol): Type; getPropertiesOfType(type: Type): Symbol[]; @@ -790,7 +780,7 @@ declare module "typescript" { isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; isUndefinedSymbol(symbol: Symbol): boolean; isArgumentsSymbol(symbol: Symbol): boolean; - getEnumMemberValue(node: EnumMember): number; + getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): number; isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean; getAliasedSymbol(symbol: Symbol): Symbol; } @@ -828,6 +818,7 @@ declare module "typescript" { WriteOwnNameForAnyLike = 16, WriteTypeArgumentsOfSignature = 32, InElementType = 64, + UseFullyQualifiedType = 128, } const enum SymbolFormatFlags { None = 0, @@ -855,15 +846,13 @@ declare module "typescript" { isReferencedImportDeclaration(node: ImportDeclaration): boolean; isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean; getNodeCheckFlags(node: Node): NodeCheckFlags; - getEnumMemberValue(node: EnumMember): number; - hasSemanticErrors(sourceFile?: SourceFile): boolean; isDeclarationVisible(node: Declaration): boolean; isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): SymbolAccessiblityResult; isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult; - getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number; + getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): number; isUnknownIdentifier(location: Node, name: string): boolean; } const enum SymbolFlags { @@ -1099,7 +1088,6 @@ declare module "typescript" { key: string; category: DiagnosticCategory; code: number; - isEarly?: boolean; } interface DiagnosticMessageChain { messageText: string; @@ -1111,13 +1099,9 @@ declare module "typescript" { file: SourceFile; start: number; length: number; - messageText: string; + messageText: string | DiagnosticMessageChain; category: DiagnosticCategory; code: number; - /** - * Early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit - */ - isEarly?: boolean; } enum DiagnosticCategory { Warning = 0, @@ -1154,6 +1138,7 @@ declare module "typescript" { target?: ScriptTarget; version?: boolean; watch?: boolean; + stripInternal?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { @@ -1173,7 +1158,7 @@ declare module "typescript" { } interface ParsedCommandLine { options: CompilerOptions; - filenames: string[]; + fileNames: string[]; errors: Diagnostic[]; } interface CommandLineOption { @@ -1184,6 +1169,7 @@ declare module "typescript" { description?: DiagnosticMessage; paramType?: DiagnosticMessage; error?: DiagnosticMessage; + experimental?: boolean; } const enum CharacterCodes { nullCharacter = 0, @@ -1314,10 +1300,10 @@ declare module "typescript" { isCancellationRequested(): boolean; } interface CompilerHost { - getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; - getDefaultLibFilename(options: CompilerOptions): string; + getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; + getDefaultLibFileName(options: CompilerOptions): string; getCancellationToken?(): CancellationToken; - writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; + writeFile: WriteFileCallback; getCurrentDirectory(): string; getCanonicalFileName(fileName: string): string; useCaseSensitiveFileNames(): boolean; @@ -1358,15 +1344,14 @@ declare module "typescript" { } function tokenToString(t: SyntaxKind): string; function computeLineStarts(text: string): number[]; - function getPositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; - function getLineAndCharacterOfPosition(lineStarts: number[], position: number): { - line: number; - character: number; - }; - function positionToLineAndCharacter(text: string, pos: number): { + function getPositionFromLineAndCharacter(sourceFile: SourceFile, line: number, character: number): number; + function computePositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; + function getLineStarts(sourceFile: SourceFile): number[]; + function computeLineAndCharacterOfPosition(lineStarts: number[], position: number): { line: number; character: number; }; + function getLineAndCharacterOfPosition(sourceFile: SourceFile, position: number): LineAndCharacter; function isWhiteSpace(ch: number): boolean; function isLineBreak(ch: number): boolean; function isOctalDigit(ch: number): boolean; @@ -1382,8 +1367,9 @@ declare module "typescript" { function createNode(kind: SyntaxKind): Node; function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; function modifierToFlag(token: SyntaxKind): NodeFlags; + function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile; function isEvalOrArgumentsIdentifier(node: Node): boolean; - function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; + function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; function isLeftHandSideExpression(expr: Expression): boolean; function isAssignmentOperator(token: SyntaxKind): boolean; } @@ -1392,7 +1378,9 @@ declare module "typescript" { } declare module "typescript" { function createCompilerHost(options: CompilerOptions): CompilerHost; - function createProgram(rootNames: string[], options: CompilerOptions, host: CompilerHost): Program; + function getPreEmitDiagnostics(program: Program): Diagnostic[]; + function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string; + function createProgram(rootNames: string[], options: CompilerOptions, host?: CompilerHost): Program; } declare module "typescript" { var servicesVersion: string; @@ -1437,11 +1425,14 @@ declare module "typescript" { getDocumentationComment(): SymbolDisplayPart[]; } interface SourceFile { - isOpen: boolean; version: string; scriptSnapshot: IScriptSnapshot; nameTable: Map; getNamedDeclarations(): Declaration[]; + getLineAndCharacterFromPosition(pos: number): LineAndCharacter; + getLineStarts(): number[]; + getPositionFromLineAndCharacter(line: number, character: number): number; + update(newText: string, textChangeRange: TextChangeRange): SourceFile; } /** * Represents an immutable snapshot of a script at a specified time.Once acquired, the @@ -1453,12 +1444,6 @@ declare module "typescript" { getText(start: number, end: number): string; /** Gets the length of this script snapshot. */ getLength(): number; - /** - * This call returns the array containing the start position of every line. - * i.e."[0, 10, 55]". TODO: consider making this optional. The language service could - * always determine this (albeit in a more expensive manner). - */ - getLineStartPositions(): number[]; /** * Gets the TextChangeRange that describe how the text changed between this text and * an older version. This information is used by the incremental parser to determine @@ -1476,22 +1461,19 @@ declare module "typescript" { importedFiles: FileReference[]; isLibFile: boolean; } - interface Logger { - log(s: string): void; - trace(s: string): void; - error(s: string): void; - } - interface LanguageServiceHost extends Logger { + interface LanguageServiceHost { getCompilationSettings(): CompilerOptions; getNewLine?(): string; getScriptFileNames(): string[]; getScriptVersion(fileName: string): string; - getScriptIsOpen(fileName: string): boolean; getScriptSnapshot(fileName: string): IScriptSnapshot; getLocalizedDiagnosticMessages?(): any; getCancellationToken?(): CancellationToken; getCurrentDirectory(): string; - getDefaultLibFilename(options: CompilerOptions): string; + getDefaultLibFileName(options: CompilerOptions): string; + log?(s: string): void; + trace?(s: string): void; + error?(s: string): void; } interface LanguageService { cleanupSemanticCache(): void; @@ -1521,7 +1503,8 @@ declare module "typescript" { getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions): TextChange[]; getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions): TextChange[]; getEmitOutput(fileName: string): EmitOutput; - getSourceFile(filename: string): SourceFile; + getProgram(): Program; + getSourceFile(fileName: string): SourceFile; dispose(): void; } interface ClassifiedSpan { @@ -1671,6 +1654,7 @@ declare module "typescript" { } interface CompletionInfo { isMemberCompletion: boolean; + isNewIdentifierLocation: boolean; entries: CompletionEntry[]; } interface CompletionEntry { @@ -1700,7 +1684,7 @@ declare module "typescript" { } interface EmitOutput { outputFiles: OutputFile[]; - emitOutputStatus: EmitReturnStatus; + emitSkipped: boolean; } const enum OutputFileType { JavaScript = 0, @@ -1740,10 +1724,68 @@ declare module "typescript" { interface Classifier { getClassificationsForLine(text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean): ClassificationResult; } + /** + * The document registry represents a store of SourceFile objects that can be shared between + * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) + * of files in the context. + * SourceFile objects account for most of the memory usage by the language service. Sharing + * the same DocumentRegistry instance between different instances of LanguageService allow + * for more efficient memory utilization since all projects will share at least the library + * file (lib.d.ts). + * + * A more advanced use of the document registry is to serialize sourceFile objects to disk + * and re-hydrate them when needed. + * + * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it + * to all subsequent createLanguageService calls. + */ interface DocumentRegistry { - acquireDocument(filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, isOpen: boolean): SourceFile; - updateDocument(sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, isOpen: boolean, textChangeRange: TextChangeRange): SourceFile; - releaseDocument(filename: string, compilationSettings: CompilerOptions): void; + /** + * Request a stored SourceFile with a given fileName and compilationSettings. + * The first call to acquire will call createLanguageServiceSourceFile to generate + * the SourceFile if was not found in the registry. + * + * @param fileName The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + */ + acquireDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string): SourceFile; + /** + * Request an updated version of an already existing SourceFile with a given fileName + * and compilationSettings. The update will intern call updateLanguageServiceSourceFile + * to get an updated SourceFile. + * + * Note: It is not allowed to call update on a SourceFile that was not acquired from this + * registry originally. + * + * @param sourceFile The original sourceFile object to update + * @param fileName The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm textChangeRange Change ranges since the last snapshot. Only used if the file + * was not found in the registry and a new one was created. + */ + updateDocument(sourceFile: SourceFile, fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + /** + * Informs the DocumentRegistry that a file is not needed any longer. + * + * Note: It is not allowed to call release on a SourceFile that was not acquired from + * this registry originally. + * + * @param fileName The name of the file to be released + * @param compilationSettings The compilation settings used to acquire the file + */ + releaseDocument(fileName: string, compilationSettings: CompilerOptions): void; } class ScriptElementKind { static unknown: string; @@ -1814,11 +1856,17 @@ declare module "typescript" { isCancellationRequested(): boolean; throwIfCancellationRequested(): void; } - function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, isOpen: boolean, setNodeParents: boolean): SourceFile; + function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; var disableIncrementalParsing: boolean; - function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, isOpen: boolean, textChangeRange: TextChangeRange): SourceFile; + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; - function createLanguageService(host: LanguageServiceHost, documentRegistry: DocumentRegistry): LanguageService; - function createClassifier(host: Logger): Classifier; + function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; + function createClassifier(): Classifier; + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + function getDefaultLibFilePath(options: CompilerOptions): string; } diff --git a/bin/typescriptServices.d.ts b/bin/typescriptServices.d.ts index d4fa86da1b5..74624dbca81 100644 --- a/bin/typescriptServices.d.ts +++ b/bin/typescriptServices.d.ts @@ -676,7 +676,7 @@ declare module ts { exportName: Identifier; } interface FileReference extends TextRange { - filename: string; + fileName: string; } interface CommentRange extends TextRange { hasTrailingNewLine?: boolean; @@ -684,42 +684,43 @@ declare module ts { interface SourceFile extends Declaration { statements: NodeArray; endOfFileToken: Node; - filename: string; + fileName: string; text: string; - getLineAndCharacterFromPosition(position: number): LineAndCharacter; - getPositionFromLineAndCharacter(line: number, character: number): number; - getLineStarts(): number[]; - update(newText: string, textChangeRange: TextChangeRange): SourceFile; amdDependencies: string[]; amdModuleName: string; referencedFiles: FileReference[]; - referenceDiagnostics: Diagnostic[]; - parseDiagnostics: Diagnostic[]; - getSyntacticDiagnostics(): Diagnostic[]; - semanticDiagnostics: Diagnostic[]; hasNoDefaultLib: boolean; externalModuleIndicator: Node; - nodeCount: number; - identifierCount: number; - symbolCount: number; languageVersion: ScriptTarget; identifiers: Map; } interface ScriptReferenceHost { getCompilerOptions(): CompilerOptions; - getSourceFile(filename: string): SourceFile; + getSourceFile(fileName: string): SourceFile; getCurrentDirectory(): string; } + interface WriteFileCallback { + (fileName: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; + } interface Program extends ScriptReferenceHost { getSourceFiles(): SourceFile[]; - getCompilerHost(): CompilerHost; - getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + /** + * Emits the javascript and declaration files. If targetSourceFile is not specified, then + * the javascript and declaration files will be produced for all the files in this program. + * If targetSourceFile is specified, then only the javascript and declaration for that + * specific file will be generated. + * + * If writeFile is not specified then the writeFile callback from the compiler host will be + * used for writing the javascript and declaration files. Otherwise, the writeFile parameter + * will be invoked when writing the javascript and declaration files. + */ + emit(targetSourceFile?: SourceFile, writeFile?: WriteFileCallback): EmitResult; + getSyntacticDiagnostics(sourceFile?: SourceFile): Diagnostic[]; getGlobalDiagnostics(): Diagnostic[]; - getDeclarationDiagnostics(sourceFile: SourceFile): Diagnostic[]; - getTypeChecker(produceDiagnostics: boolean): TypeChecker; + getSemanticDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getDeclarationDiagnostics(sourceFile?: SourceFile): Diagnostic[]; + getTypeChecker(): TypeChecker; getCommonSourceDirectory(): string; - emitFiles(targetSourceFile?: SourceFile): EmitResult; - isEmitBlocked(sourceFile?: SourceFile): boolean; } interface SourceMapSpan { emittedLine: number; @@ -740,33 +741,22 @@ declare module ts { sourceMapMappings: string; sourceMapDecodedMappings: SourceMapSpan[]; } - enum EmitReturnStatus { - Succeeded = 0, - AllOutputGenerationSkipped = 1, - JSGeneratedWithSemanticErrors = 2, - DeclarationGenerationSkipped = 3, - EmitErrorsEncountered = 4, - CompilerOptionsErrors = 5, + enum ExitStatus { + Success = 0, + DiagnosticsPresent_OutputsSkipped = 1, + DiagnosticsPresent_OutputsGenerated = 2, } interface EmitResult { - emitResultStatus: EmitReturnStatus; + emitSkipped: boolean; diagnostics: Diagnostic[]; sourceMaps: SourceMapData[]; } interface TypeCheckerHost { getCompilerOptions(): CompilerOptions; - getCompilerHost(): CompilerHost; getSourceFiles(): SourceFile[]; - getSourceFile(filename: string): SourceFile; + getSourceFile(fileName: string): SourceFile; } interface TypeChecker { - getEmitResolver(): EmitResolver; - getDiagnostics(sourceFile?: SourceFile): Diagnostic[]; - getGlobalDiagnostics(): Diagnostic[]; - getNodeCount(): number; - getIdentifierCount(): number; - getSymbolCount(): number; - getTypeCount(): number; getTypeOfSymbolAtLocation(symbol: Symbol, node: Node): Type; getDeclaredTypeOfSymbol(symbol: Symbol): Type; getPropertiesOfType(type: Type): Symbol[]; @@ -790,7 +780,7 @@ declare module ts { isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; isUndefinedSymbol(symbol: Symbol): boolean; isArgumentsSymbol(symbol: Symbol): boolean; - getEnumMemberValue(node: EnumMember): number; + getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): number; isValidPropertyAccess(node: PropertyAccessExpression | QualifiedName, propertyName: string): boolean; getAliasedSymbol(symbol: Symbol): Symbol; } @@ -828,6 +818,7 @@ declare module ts { WriteOwnNameForAnyLike = 16, WriteTypeArgumentsOfSignature = 32, InElementType = 64, + UseFullyQualifiedType = 128, } const enum SymbolFormatFlags { None = 0, @@ -855,15 +846,13 @@ declare module ts { isReferencedImportDeclaration(node: ImportDeclaration): boolean; isTopLevelValueImportWithEntityName(node: ImportDeclaration): boolean; getNodeCheckFlags(node: Node): NodeCheckFlags; - getEnumMemberValue(node: EnumMember): number; - hasSemanticErrors(sourceFile?: SourceFile): boolean; isDeclarationVisible(node: Declaration): boolean; isImplementationOfOverload(node: FunctionLikeDeclaration): boolean; writeTypeOfDeclaration(declaration: AccessorDeclaration | VariableLikeDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; writeReturnTypeOfSignatureDeclaration(signatureDeclaration: SignatureDeclaration, enclosingDeclaration: Node, flags: TypeFormatFlags, writer: SymbolWriter): void; isSymbolAccessible(symbol: Symbol, enclosingDeclaration: Node, meaning: SymbolFlags): SymbolAccessiblityResult; isEntityNameVisible(entityName: EntityName, enclosingDeclaration: Node): SymbolVisibilityResult; - getConstantValue(node: PropertyAccessExpression | ElementAccessExpression): number; + getConstantValue(node: EnumMember | PropertyAccessExpression | ElementAccessExpression): number; isUnknownIdentifier(location: Node, name: string): boolean; } const enum SymbolFlags { @@ -1099,7 +1088,6 @@ declare module ts { key: string; category: DiagnosticCategory; code: number; - isEarly?: boolean; } interface DiagnosticMessageChain { messageText: string; @@ -1111,13 +1099,9 @@ declare module ts { file: SourceFile; start: number; length: number; - messageText: string; + messageText: string | DiagnosticMessageChain; category: DiagnosticCategory; code: number; - /** - * Early error - any error (can be produced at parsing\binding\typechecking step) that blocks emit - */ - isEarly?: boolean; } enum DiagnosticCategory { Warning = 0, @@ -1154,6 +1138,7 @@ declare module ts { target?: ScriptTarget; version?: boolean; watch?: boolean; + stripInternal?: boolean; [option: string]: string | number | boolean; } const enum ModuleKind { @@ -1173,7 +1158,7 @@ declare module ts { } interface ParsedCommandLine { options: CompilerOptions; - filenames: string[]; + fileNames: string[]; errors: Diagnostic[]; } interface CommandLineOption { @@ -1184,6 +1169,7 @@ declare module ts { description?: DiagnosticMessage; paramType?: DiagnosticMessage; error?: DiagnosticMessage; + experimental?: boolean; } const enum CharacterCodes { nullCharacter = 0, @@ -1314,10 +1300,10 @@ declare module ts { isCancellationRequested(): boolean; } interface CompilerHost { - getSourceFile(filename: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; - getDefaultLibFilename(options: CompilerOptions): string; + getSourceFile(fileName: string, languageVersion: ScriptTarget, onError?: (message: string) => void): SourceFile; + getDefaultLibFileName(options: CompilerOptions): string; getCancellationToken?(): CancellationToken; - writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; + writeFile: WriteFileCallback; getCurrentDirectory(): string; getCanonicalFileName(fileName: string): string; useCaseSensitiveFileNames(): boolean; @@ -1358,15 +1344,14 @@ declare module ts { } function tokenToString(t: SyntaxKind): string; function computeLineStarts(text: string): number[]; - function getPositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; - function getLineAndCharacterOfPosition(lineStarts: number[], position: number): { - line: number; - character: number; - }; - function positionToLineAndCharacter(text: string, pos: number): { + function getPositionFromLineAndCharacter(sourceFile: SourceFile, line: number, character: number): number; + function computePositionFromLineAndCharacter(lineStarts: number[], line: number, character: number): number; + function getLineStarts(sourceFile: SourceFile): number[]; + function computeLineAndCharacterOfPosition(lineStarts: number[], position: number): { line: number; character: number; }; + function getLineAndCharacterOfPosition(sourceFile: SourceFile, position: number): LineAndCharacter; function isWhiteSpace(ch: number): boolean; function isLineBreak(ch: number): boolean; function isOctalDigit(ch: number): boolean; @@ -1382,8 +1367,9 @@ declare module ts { function createNode(kind: SyntaxKind): Node; function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; function modifierToFlag(token: SyntaxKind): NodeFlags; + function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile; function isEvalOrArgumentsIdentifier(node: Node): boolean; - function createSourceFile(filename: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; + function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; function isLeftHandSideExpression(expr: Expression): boolean; function isAssignmentOperator(token: SyntaxKind): boolean; } @@ -1392,7 +1378,9 @@ declare module ts { } declare module ts { function createCompilerHost(options: CompilerOptions): CompilerHost; - function createProgram(rootNames: string[], options: CompilerOptions, host: CompilerHost): Program; + function getPreEmitDiagnostics(program: Program): Diagnostic[]; + function flattenDiagnosticMessageText(messageText: string | DiagnosticMessageChain, newLine: string): string; + function createProgram(rootNames: string[], options: CompilerOptions, host?: CompilerHost): Program; } declare module ts { var servicesVersion: string; @@ -1437,11 +1425,14 @@ declare module ts { getDocumentationComment(): SymbolDisplayPart[]; } interface SourceFile { - isOpen: boolean; version: string; scriptSnapshot: IScriptSnapshot; nameTable: Map; getNamedDeclarations(): Declaration[]; + getLineAndCharacterFromPosition(pos: number): LineAndCharacter; + getLineStarts(): number[]; + getPositionFromLineAndCharacter(line: number, character: number): number; + update(newText: string, textChangeRange: TextChangeRange): SourceFile; } /** * Represents an immutable snapshot of a script at a specified time.Once acquired, the @@ -1453,12 +1444,6 @@ declare module ts { getText(start: number, end: number): string; /** Gets the length of this script snapshot. */ getLength(): number; - /** - * This call returns the array containing the start position of every line. - * i.e."[0, 10, 55]". TODO: consider making this optional. The language service could - * always determine this (albeit in a more expensive manner). - */ - getLineStartPositions(): number[]; /** * Gets the TextChangeRange that describe how the text changed between this text and * an older version. This information is used by the incremental parser to determine @@ -1476,22 +1461,19 @@ declare module ts { importedFiles: FileReference[]; isLibFile: boolean; } - interface Logger { - log(s: string): void; - trace(s: string): void; - error(s: string): void; - } - interface LanguageServiceHost extends Logger { + interface LanguageServiceHost { getCompilationSettings(): CompilerOptions; getNewLine?(): string; getScriptFileNames(): string[]; getScriptVersion(fileName: string): string; - getScriptIsOpen(fileName: string): boolean; getScriptSnapshot(fileName: string): IScriptSnapshot; getLocalizedDiagnosticMessages?(): any; getCancellationToken?(): CancellationToken; getCurrentDirectory(): string; - getDefaultLibFilename(options: CompilerOptions): string; + getDefaultLibFileName(options: CompilerOptions): string; + log?(s: string): void; + trace?(s: string): void; + error?(s: string): void; } interface LanguageService { cleanupSemanticCache(): void; @@ -1521,7 +1503,8 @@ declare module ts { getFormattingEditsForDocument(fileName: string, options: FormatCodeOptions): TextChange[]; getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: FormatCodeOptions): TextChange[]; getEmitOutput(fileName: string): EmitOutput; - getSourceFile(filename: string): SourceFile; + getProgram(): Program; + getSourceFile(fileName: string): SourceFile; dispose(): void; } interface ClassifiedSpan { @@ -1671,6 +1654,7 @@ declare module ts { } interface CompletionInfo { isMemberCompletion: boolean; + isNewIdentifierLocation: boolean; entries: CompletionEntry[]; } interface CompletionEntry { @@ -1700,7 +1684,7 @@ declare module ts { } interface EmitOutput { outputFiles: OutputFile[]; - emitOutputStatus: EmitReturnStatus; + emitSkipped: boolean; } const enum OutputFileType { JavaScript = 0, @@ -1740,10 +1724,68 @@ declare module ts { interface Classifier { getClassificationsForLine(text: string, lexState: EndOfLineState, classifyKeywordsInGenerics?: boolean): ClassificationResult; } + /** + * The document registry represents a store of SourceFile objects that can be shared between + * multiple LanguageService instances. A LanguageService instance holds on the SourceFile (AST) + * of files in the context. + * SourceFile objects account for most of the memory usage by the language service. Sharing + * the same DocumentRegistry instance between different instances of LanguageService allow + * for more efficient memory utilization since all projects will share at least the library + * file (lib.d.ts). + * + * A more advanced use of the document registry is to serialize sourceFile objects to disk + * and re-hydrate them when needed. + * + * To create a default DocumentRegistry, use createDocumentRegistry to create one, and pass it + * to all subsequent createLanguageService calls. + */ interface DocumentRegistry { - acquireDocument(filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, isOpen: boolean): SourceFile; - updateDocument(sourceFile: SourceFile, filename: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, isOpen: boolean, textChangeRange: TextChangeRange): SourceFile; - releaseDocument(filename: string, compilationSettings: CompilerOptions): void; + /** + * Request a stored SourceFile with a given fileName and compilationSettings. + * The first call to acquire will call createLanguageServiceSourceFile to generate + * the SourceFile if was not found in the registry. + * + * @param fileName The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + */ + acquireDocument(fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string): SourceFile; + /** + * Request an updated version of an already existing SourceFile with a given fileName + * and compilationSettings. The update will intern call updateLanguageServiceSourceFile + * to get an updated SourceFile. + * + * Note: It is not allowed to call update on a SourceFile that was not acquired from this + * registry originally. + * + * @param sourceFile The original sourceFile object to update + * @param fileName The name of the file requested + * @param compilationSettings Some compilation settings like target affects the + * shape of a the resulting SourceFile. This allows the DocumentRegistry to store + * multiple copies of the same file for different compilation settings. + * @parm scriptSnapshot Text of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm version Current version of the file. Only used if the file was not found + * in the registry and a new one was created. + * @parm textChangeRange Change ranges since the last snapshot. Only used if the file + * was not found in the registry and a new one was created. + */ + updateDocument(sourceFile: SourceFile, fileName: string, compilationSettings: CompilerOptions, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + /** + * Informs the DocumentRegistry that a file is not needed any longer. + * + * Note: It is not allowed to call release on a SourceFile that was not acquired from + * this registry originally. + * + * @param fileName The name of the file to be released + * @param compilationSettings The compilation settings used to acquire the file + */ + releaseDocument(fileName: string, compilationSettings: CompilerOptions): void; } class ScriptElementKind { static unknown: string; @@ -1814,11 +1856,17 @@ declare module ts { isCancellationRequested(): boolean; throwIfCancellationRequested(): void; } - function createLanguageServiceSourceFile(filename: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, isOpen: boolean, setNodeParents: boolean): SourceFile; + function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; var disableIncrementalParsing: boolean; - function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, isOpen: boolean, textChangeRange: TextChangeRange): SourceFile; + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; - function createLanguageService(host: LanguageServiceHost, documentRegistry: DocumentRegistry): LanguageService; - function createClassifier(host: Logger): Classifier; + function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; + function createClassifier(): Classifier; + /** + * Get the path of the default library file (lib.d.ts) as distributed with the typescript + * node package. + * The functionality is not supported if the ts module is consumed outside of a node module. + */ + function getDefaultLibFilePath(options: CompilerOptions): string; } diff --git a/bin/typescriptServices.js b/bin/typescriptServices.js index 0ea95acc9f6..9f532c9ae51 100644 --- a/bin/typescriptServices.js +++ b/bin/typescriptServices.js @@ -286,15 +286,12 @@ var ts; RelationComparisonResult[RelationComparisonResult["FailedAndReported"] = 3] = "FailedAndReported"; })(ts.RelationComparisonResult || (ts.RelationComparisonResult = {})); var RelationComparisonResult = ts.RelationComparisonResult; - (function (EmitReturnStatus) { - EmitReturnStatus[EmitReturnStatus["Succeeded"] = 0] = "Succeeded"; - EmitReturnStatus[EmitReturnStatus["AllOutputGenerationSkipped"] = 1] = "AllOutputGenerationSkipped"; - EmitReturnStatus[EmitReturnStatus["JSGeneratedWithSemanticErrors"] = 2] = "JSGeneratedWithSemanticErrors"; - EmitReturnStatus[EmitReturnStatus["DeclarationGenerationSkipped"] = 3] = "DeclarationGenerationSkipped"; - EmitReturnStatus[EmitReturnStatus["EmitErrorsEncountered"] = 4] = "EmitErrorsEncountered"; - EmitReturnStatus[EmitReturnStatus["CompilerOptionsErrors"] = 5] = "CompilerOptionsErrors"; - })(ts.EmitReturnStatus || (ts.EmitReturnStatus = {})); - var EmitReturnStatus = ts.EmitReturnStatus; + (function (ExitStatus) { + ExitStatus[ExitStatus["Success"] = 0] = "Success"; + ExitStatus[ExitStatus["DiagnosticsPresent_OutputsSkipped"] = 1] = "DiagnosticsPresent_OutputsSkipped"; + ExitStatus[ExitStatus["DiagnosticsPresent_OutputsGenerated"] = 2] = "DiagnosticsPresent_OutputsGenerated"; + })(ts.ExitStatus || (ts.ExitStatus = {})); + var ExitStatus = ts.ExitStatus; (function (TypeFormatFlags) { TypeFormatFlags[TypeFormatFlags["None"] = 0] = "None"; TypeFormatFlags[TypeFormatFlags["WriteArrayAsGenericType"] = 1] = "WriteArrayAsGenericType"; @@ -304,6 +301,7 @@ var ts; TypeFormatFlags[TypeFormatFlags["WriteOwnNameForAnyLike"] = 16] = "WriteOwnNameForAnyLike"; TypeFormatFlags[TypeFormatFlags["WriteTypeArgumentsOfSignature"] = 32] = "WriteTypeArgumentsOfSignature"; TypeFormatFlags[TypeFormatFlags["InElementType"] = 64] = "InElementType"; + TypeFormatFlags[TypeFormatFlags["UseFullyQualifiedType"] = 128] = "UseFullyQualifiedType"; })(ts.TypeFormatFlags || (ts.TypeFormatFlags = {})); var TypeFormatFlags = ts.TypeFormatFlags; (function (SymbolFormatFlags) { @@ -691,6 +689,12 @@ var ts; return result; } ts.sum = sum; + function addRange(to, from) { + for (var i = 0, n = from.length; i < n; i++) { + to.push(from[i]); + } + } + ts.addRange = addRange; function lastOrUndefined(array) { if (array.length === 0) { return undefined; @@ -822,8 +826,7 @@ var ts; length: length, messageText: text, category: message.category, - code: message.code, - isEarly: message.isEarly + code: message.code }; } ts.createFileDiagnostic = createFileDiagnostic; @@ -838,8 +841,7 @@ var ts; length: undefined, messageText: text, category: message.category, - code: message.code, - isEarly: message.isEarly + code: message.code }; } ts.createCompilerDiagnostic = createCompilerDiagnostic; @@ -862,51 +864,43 @@ var ts; return headChain; } ts.concatenateDiagnosticMessageChains = concatenateDiagnosticMessageChains; - function flattenDiagnosticChain(file, start, length, diagnosticChain, newLine) { - Debug.assert(start >= 0, "start must be non-negative, is " + start); - Debug.assert(length >= 0, "length must be non-negative, is " + length); - var code = diagnosticChain.code; - var category = diagnosticChain.category; - var messageText = ""; - var indent = 0; - while (diagnosticChain) { - if (indent) { - messageText += newLine; - for (var i = 0; i < indent; i++) { - messageText += " "; - } - } - messageText += diagnosticChain.messageText; - indent++; - diagnosticChain = diagnosticChain.next; - } - return { - file: file, - start: start, - length: length, - code: code, - category: category, - messageText: messageText - }; - } - ts.flattenDiagnosticChain = flattenDiagnosticChain; function compareValues(a, b) { if (a === b) - return 0 /* EqualTo */; + return 0; if (a === undefined) - return -1 /* LessThan */; + return -1; if (b === undefined) - return 1 /* GreaterThan */; - return a < b ? -1 /* LessThan */ : 1 /* GreaterThan */; + return 1; + return a < b ? -1 : 1; } ts.compareValues = compareValues; - function getDiagnosticFilename(diagnostic) { - return diagnostic.file ? diagnostic.file.filename : undefined; + function getDiagnosticFileName(diagnostic) { + return diagnostic.file ? diagnostic.file.fileName : undefined; } function compareDiagnostics(d1, d2) { - return compareValues(getDiagnosticFilename(d1), getDiagnosticFilename(d2)) || compareValues(d1.start, d2.start) || compareValues(d1.length, d2.length) || compareValues(d1.code, d2.code) || compareValues(d1.messageText, d2.messageText) || 0; + return compareValues(getDiagnosticFileName(d1), getDiagnosticFileName(d2)) || compareValues(d1.start, d2.start) || compareValues(d1.length, d2.length) || compareValues(d1.code, d2.code) || compareMessageText(d1.messageText, d2.messageText) || 0; } ts.compareDiagnostics = compareDiagnostics; + function compareMessageText(text1, text2) { + while (text1 && text2) { + var string1 = typeof text1 === "string" ? text1 : text1.messageText; + var string2 = typeof text2 === "string" ? text2 : text2.messageText; + var res = compareValues(string1, string2); + if (res) { + return res; + } + text1 = typeof text1 === "string" ? undefined : text1.next; + text2 = typeof text2 === "string" ? undefined : text2.next; + } + if (!text1 && !text2) { + return 0; + } + return text1 ? 1 : -1; + } + function sortAndDeduplicateDiagnostics(diagnostics) { + return deduplicateSortedDiagnostics(diagnostics.sort(compareDiagnostics)); + } + ts.sortAndDeduplicateDiagnostics = sortAndDeduplicateDiagnostics; function deduplicateSortedDiagnostics(diagnostics) { if (diagnostics.length < 2) { return diagnostics; @@ -915,7 +909,7 @@ var ts; var previousDiagnostic = diagnostics[0]; for (var i = 1; i < diagnostics.length; i++) { var currentDiagnostic = diagnostics[i]; - var isDupe = compareDiagnostics(currentDiagnostic, previousDiagnostic) === 0 /* EqualTo */; + var isDupe = compareDiagnostics(currentDiagnostic, previousDiagnostic) === 0; if (!isDupe) { newDiagnostics.push(currentDiagnostic); previousDiagnostic = currentDiagnostic; @@ -929,8 +923,8 @@ var ts; } ts.normalizeSlashes = normalizeSlashes; function getRootLength(path) { - if (path.charCodeAt(0) === 47 /* slash */) { - if (path.charCodeAt(1) !== 47 /* slash */) + if (path.charCodeAt(0) === 47) { + if (path.charCodeAt(1) !== 47) return 1; var p1 = path.indexOf("/", 2); if (p1 < 0) @@ -940,8 +934,8 @@ var ts; return p1 + 1; return p2 + 1; } - if (path.charCodeAt(1) === 58 /* colon */) { - if (path.charCodeAt(2) === 47 /* slash */) + if (path.charCodeAt(1) === 58) { + if (path.charCodeAt(2) === 47) return 3; return 2; } @@ -998,8 +992,8 @@ var ts; return normalizedPathComponents(path, rootLength); } ts.getNormalizedPathComponents = getNormalizedPathComponents; - function getNormalizedAbsolutePath(filename, currentDirectory) { - return getNormalizedPathFromPathComponents(getNormalizedPathComponents(filename, currentDirectory)); + function getNormalizedAbsolutePath(fileName, currentDirectory) { + return getNormalizedPathFromPathComponents(getNormalizedPathComponents(fileName, currentDirectory)); } ts.getNormalizedAbsolutePath = getNormalizedAbsolutePath; function getNormalizedPathFromPathComponents(pathComponents) { @@ -1012,7 +1006,7 @@ var ts; var urlLength = url.length; var rootLength = url.indexOf("://") + "://".length; while (rootLength < urlLength) { - if (url.charCodeAt(rootLength) === 47 /* slash */) { + if (url.charCodeAt(rootLength) === 47) { rootLength++; } else { @@ -1067,11 +1061,11 @@ var ts; return absolutePath; } ts.getRelativePathToDirectoryOrUrl = getRelativePathToDirectoryOrUrl; - function getBaseFilename(path) { + function getBaseFileName(path) { var i = path.lastIndexOf(ts.directorySeparator); return i < 0 ? path : path.substring(i + 1); } - ts.getBaseFilename = getBaseFilename; + ts.getBaseFileName = getBaseFileName; function combinePaths(path1, path2) { if (!(path1 && path1.length)) return path2; @@ -1131,6 +1125,10 @@ var ts; } } ts.escapeString = escapeString; + function getDefaultLibFileName(options) { + return options.target === 2 ? "lib.es6.d.ts" : "lib.d.ts"; + } + ts.getDefaultLibFileName = getDefaultLibFileName; function Symbol(flags, name) { this.flags = flags; this.name = name; @@ -1167,7 +1165,7 @@ var ts; var AssertionLevel = ts.AssertionLevel; var Debug; (function (Debug) { - var currentAssertionLevel = 0 /* None */; + var currentAssertionLevel = 0; function shouldAssert(level) { return currentAssertionLevel >= level; } @@ -1441,567 +1439,570 @@ var ts; var ts; (function (ts) { ts.Diagnostics = { - Unterminated_string_literal: { code: 1002, category: 1 /* Error */, key: "Unterminated string literal." }, - Identifier_expected: { code: 1003, category: 1 /* Error */, key: "Identifier expected." }, - _0_expected: { code: 1005, category: 1 /* Error */, key: "'{0}' expected.", isEarly: true }, - A_file_cannot_have_a_reference_to_itself: { code: 1006, category: 1 /* Error */, key: "A file cannot have a reference to itself." }, - Trailing_comma_not_allowed: { code: 1009, category: 1 /* Error */, key: "Trailing comma not allowed.", isEarly: true }, - Asterisk_Slash_expected: { code: 1010, category: 1 /* Error */, key: "'*/' expected." }, - Unexpected_token: { code: 1012, category: 1 /* Error */, key: "Unexpected token." }, - Catch_clause_parameter_cannot_have_a_type_annotation: { code: 1013, category: 1 /* Error */, key: "Catch clause parameter cannot have a type annotation.", isEarly: true }, - A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: 1 /* Error */, key: "A rest parameter must be last in a parameter list.", isEarly: true }, - Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: 1 /* Error */, key: "Parameter cannot have question mark and initializer.", isEarly: true }, - A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: 1 /* Error */, key: "A required parameter cannot follow an optional parameter.", isEarly: true }, - An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: 1 /* Error */, key: "An index signature cannot have a rest parameter.", isEarly: true }, - An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: 1 /* Error */, key: "An index signature parameter cannot have an accessibility modifier.", isEarly: true }, - An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: 1 /* Error */, key: "An index signature parameter cannot have a question mark.", isEarly: true }, - An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: 1 /* Error */, key: "An index signature parameter cannot have an initializer.", isEarly: true }, - An_index_signature_must_have_a_type_annotation: { code: 1021, category: 1 /* Error */, key: "An index signature must have a type annotation.", isEarly: true }, - An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: 1 /* Error */, key: "An index signature parameter must have a type annotation.", isEarly: true }, - An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: 1 /* Error */, key: "An index signature parameter type must be 'string' or 'number'.", isEarly: true }, - A_class_or_interface_declaration_can_only_have_one_extends_clause: { code: 1024, category: 1 /* Error */, key: "A class or interface declaration can only have one 'extends' clause." }, - An_extends_clause_must_precede_an_implements_clause: { code: 1025, category: 1 /* Error */, key: "An 'extends' clause must precede an 'implements' clause." }, - A_class_can_only_extend_a_single_class: { code: 1026, category: 1 /* Error */, key: "A class can only extend a single class." }, - A_class_declaration_can_only_have_one_implements_clause: { code: 1027, category: 1 /* Error */, key: "A class declaration can only have one 'implements' clause." }, - Accessibility_modifier_already_seen: { code: 1028, category: 1 /* Error */, key: "Accessibility modifier already seen.", isEarly: true }, - _0_modifier_must_precede_1_modifier: { code: 1029, category: 1 /* Error */, key: "'{0}' modifier must precede '{1}' modifier.", isEarly: true }, - _0_modifier_already_seen: { code: 1030, category: 1 /* Error */, key: "'{0}' modifier already seen.", isEarly: true }, - _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a class element.", isEarly: true }, - An_interface_declaration_cannot_have_an_implements_clause: { code: 1032, category: 1 /* Error */, key: "An interface declaration cannot have an 'implements' clause." }, - super_must_be_followed_by_an_argument_list_or_member_access: { code: 1034, category: 1 /* Error */, key: "'super' must be followed by an argument list or member access." }, - Only_ambient_modules_can_use_quoted_names: { code: 1035, category: 1 /* Error */, key: "Only ambient modules can use quoted names.", isEarly: true }, - Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: 1 /* Error */, key: "Statements are not allowed in ambient contexts.", isEarly: true }, - A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: 1 /* Error */, key: "A 'declare' modifier cannot be used in an already ambient context.", isEarly: true }, - Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: 1 /* Error */, key: "Initializers are not allowed in ambient contexts.", isEarly: true }, - _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a module element.", isEarly: true }, - A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: 1 /* Error */, key: "A 'declare' modifier cannot be used with an interface declaration.", isEarly: true }, - A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { code: 1046, category: 1 /* Error */, key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." }, - A_rest_parameter_cannot_be_optional: { code: 1047, category: 1 /* Error */, key: "A rest parameter cannot be optional.", isEarly: true }, - A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: 1 /* Error */, key: "A rest parameter cannot have an initializer.", isEarly: true }, - A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: 1 /* Error */, key: "A 'set' accessor must have exactly one parameter.", isEarly: true }, - A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: 1 /* Error */, key: "A 'set' accessor cannot have an optional parameter.", isEarly: true }, - A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: 1 /* Error */, key: "A 'set' accessor parameter cannot have an initializer.", isEarly: true }, - A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: 1 /* Error */, key: "A 'set' accessor cannot have rest parameter.", isEarly: true }, - A_get_accessor_cannot_have_parameters: { code: 1054, category: 1 /* Error */, key: "A 'get' accessor cannot have parameters.", isEarly: true }, - Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: 1 /* Error */, key: "Accessors are only available when targeting ECMAScript 5 and higher.", isEarly: true }, - Enum_member_must_have_initializer: { code: 1061, category: 1 /* Error */, key: "Enum member must have initializer.", isEarly: true }, - An_export_assignment_cannot_be_used_in_an_internal_module: { code: 1063, category: 1 /* Error */, key: "An export assignment cannot be used in an internal module.", isEarly: true }, - Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: 1 /* Error */, key: "Ambient enum elements can only have integer literal initializers.", isEarly: true }, - Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { code: 1068, category: 1 /* Error */, key: "Unexpected token. A constructor, method, accessor, or property was expected." }, - A_declare_modifier_cannot_be_used_with_an_import_declaration: { code: 1079, category: 1 /* Error */, key: "A 'declare' modifier cannot be used with an import declaration.", isEarly: true }, - Invalid_reference_directive_syntax: { code: 1084, category: 1 /* Error */, key: "Invalid 'reference' directive syntax." }, - Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: 1 /* Error */, key: "Octal literals are not available when targeting ECMAScript 5 and higher.", isEarly: true }, - An_accessor_cannot_be_declared_in_an_ambient_context: { code: 1086, category: 1 /* Error */, key: "An accessor cannot be declared in an ambient context.", isEarly: true }, - _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a constructor declaration.", isEarly: true }, - _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: 1 /* Error */, key: "'{0}' modifier cannot appear on a parameter.", isEarly: true }, - Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: 1 /* Error */, key: "Only a single variable declaration is allowed in a 'for...in' statement.", isEarly: true }, - Type_parameters_cannot_appear_on_a_constructor_declaration: { code: 1092, category: 1 /* Error */, key: "Type parameters cannot appear on a constructor declaration.", isEarly: true }, - Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: 1 /* Error */, key: "Type annotation cannot appear on a constructor declaration.", isEarly: true }, - An_accessor_cannot_have_type_parameters: { code: 1094, category: 1 /* Error */, key: "An accessor cannot have type parameters.", isEarly: true }, - A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: 1 /* Error */, key: "A 'set' accessor cannot have a return type annotation.", isEarly: true }, - An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: 1 /* Error */, key: "An index signature must have exactly one parameter.", isEarly: true }, - _0_list_cannot_be_empty: { code: 1097, category: 1 /* Error */, key: "'{0}' list cannot be empty.", isEarly: true }, - Type_parameter_list_cannot_be_empty: { code: 1098, category: 1 /* Error */, key: "Type parameter list cannot be empty.", isEarly: true }, - Type_argument_list_cannot_be_empty: { code: 1099, category: 1 /* Error */, key: "Type argument list cannot be empty.", isEarly: true }, - Invalid_use_of_0_in_strict_mode: { code: 1100, category: 1 /* Error */, key: "Invalid use of '{0}' in strict mode.", isEarly: true }, - with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: 1 /* Error */, key: "'with' statements are not allowed in strict mode.", isEarly: true }, - delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: 1 /* Error */, key: "'delete' cannot be called on an identifier in strict mode.", isEarly: true }, - A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { code: 1104, category: 1 /* Error */, key: "A 'continue' statement can only be used within an enclosing iteration statement.", isEarly: true }, - A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { code: 1105, category: 1 /* Error */, key: "A 'break' statement can only be used within an enclosing iteration or switch statement.", isEarly: true }, - Jump_target_cannot_cross_function_boundary: { code: 1107, category: 1 /* Error */, key: "Jump target cannot cross function boundary.", isEarly: true }, - A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: 1 /* Error */, key: "A 'return' statement can only be used within a function body.", isEarly: true }, - Expression_expected: { code: 1109, category: 1 /* Error */, key: "Expression expected.", isEarly: true }, - Type_expected: { code: 1110, category: 1 /* Error */, key: "Type expected.", isEarly: true }, - A_class_member_cannot_be_declared_optional: { code: 1112, category: 1 /* Error */, key: "A class member cannot be declared optional.", isEarly: true }, - A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: 1 /* Error */, key: "A 'default' clause cannot appear more than once in a 'switch' statement.", isEarly: true }, - Duplicate_label_0: { code: 1114, category: 1 /* Error */, key: "Duplicate label '{0}'", isEarly: true }, - A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: 1 /* Error */, key: "A 'continue' statement can only jump to a label of an enclosing iteration statement.", isEarly: true }, - A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { code: 1116, category: 1 /* Error */, key: "A 'break' statement can only jump to a label of an enclosing statement.", isEarly: true }, - An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { code: 1117, category: 1 /* Error */, key: "An object literal cannot have multiple properties with the same name in strict mode.", isEarly: true }, - An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { code: 1118, category: 1 /* Error */, key: "An object literal cannot have multiple get/set accessors with the same name.", isEarly: true }, - An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { code: 1119, category: 1 /* Error */, key: "An object literal cannot have property and accessor with the same name.", isEarly: true }, - An_export_assignment_cannot_have_modifiers: { code: 1120, category: 1 /* Error */, key: "An export assignment cannot have modifiers.", isEarly: true }, - Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: 1 /* Error */, key: "Octal literals are not allowed in strict mode.", isEarly: true }, - A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: 1 /* Error */, key: "A tuple type element list cannot be empty.", isEarly: true }, - Variable_declaration_list_cannot_be_empty: { code: 1123, category: 1 /* Error */, key: "Variable declaration list cannot be empty.", isEarly: true }, - Digit_expected: { code: 1124, category: 1 /* Error */, key: "Digit expected." }, - Hexadecimal_digit_expected: { code: 1125, category: 1 /* Error */, key: "Hexadecimal digit expected." }, - Unexpected_end_of_text: { code: 1126, category: 1 /* Error */, key: "Unexpected end of text." }, - Invalid_character: { code: 1127, category: 1 /* Error */, key: "Invalid character." }, - Declaration_or_statement_expected: { code: 1128, category: 1 /* Error */, key: "Declaration or statement expected." }, - Statement_expected: { code: 1129, category: 1 /* Error */, key: "Statement expected." }, - case_or_default_expected: { code: 1130, category: 1 /* Error */, key: "'case' or 'default' expected." }, - Property_or_signature_expected: { code: 1131, category: 1 /* Error */, key: "Property or signature expected." }, - Enum_member_expected: { code: 1132, category: 1 /* Error */, key: "Enum member expected." }, - Type_reference_expected: { code: 1133, category: 1 /* Error */, key: "Type reference expected." }, - Variable_declaration_expected: { code: 1134, category: 1 /* Error */, key: "Variable declaration expected." }, - Argument_expression_expected: { code: 1135, category: 1 /* Error */, key: "Argument expression expected.", isEarly: true }, - Property_assignment_expected: { code: 1136, category: 1 /* Error */, key: "Property assignment expected." }, - Expression_or_comma_expected: { code: 1137, category: 1 /* Error */, key: "Expression or comma expected." }, - Parameter_declaration_expected: { code: 1138, category: 1 /* Error */, key: "Parameter declaration expected." }, - Type_parameter_declaration_expected: { code: 1139, category: 1 /* Error */, key: "Type parameter declaration expected." }, - Type_argument_expected: { code: 1140, category: 1 /* Error */, key: "Type argument expected." }, - String_literal_expected: { code: 1141, category: 1 /* Error */, key: "String literal expected.", isEarly: true }, - Line_break_not_permitted_here: { code: 1142, category: 1 /* Error */, key: "Line break not permitted here.", isEarly: true }, - or_expected: { code: 1144, category: 1 /* Error */, key: "'{' or ';' expected." }, - Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: 1 /* Error */, key: "Modifiers not permitted on index signature members.", isEarly: true }, - Declaration_expected: { code: 1146, category: 1 /* Error */, key: "Declaration expected." }, - Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: 1 /* Error */, key: "Import declarations in an internal module cannot reference an external module.", isEarly: true }, - Cannot_compile_external_modules_unless_the_module_flag_is_provided: { code: 1148, category: 1 /* Error */, key: "Cannot compile external modules unless the '--module' flag is provided." }, - Filename_0_differs_from_already_included_filename_1_only_in_casing: { code: 1149, category: 1 /* Error */, key: "Filename '{0}' differs from already included filename '{1}' only in casing" }, - new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: 1 /* Error */, key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead.", isEarly: true }, - var_let_or_const_expected: { code: 1152, category: 1 /* Error */, key: "'var', 'let' or 'const' expected." }, - let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: 1 /* Error */, key: "'let' declarations are only available when targeting ECMAScript 6 and higher.", isEarly: true }, - const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1154, category: 1 /* Error */, key: "'const' declarations are only available when targeting ECMAScript 6 and higher.", isEarly: true }, - const_declarations_must_be_initialized: { code: 1155, category: 1 /* Error */, key: "'const' declarations must be initialized", isEarly: true }, - const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: 1 /* Error */, key: "'const' declarations can only be declared inside a block.", isEarly: true }, - let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: 1 /* Error */, key: "'let' declarations can only be declared inside a block.", isEarly: true }, - Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1159, category: 1 /* Error */, key: "Tagged templates are only available when targeting ECMAScript 6 and higher.", isEarly: true }, - Unterminated_template_literal: { code: 1160, category: 1 /* Error */, key: "Unterminated template literal." }, - Unterminated_regular_expression_literal: { code: 1161, category: 1 /* Error */, key: "Unterminated regular expression literal." }, - An_object_member_cannot_be_declared_optional: { code: 1162, category: 1 /* Error */, key: "An object member cannot be declared optional.", isEarly: true }, - yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: 1 /* Error */, key: "'yield' expression must be contained_within a generator declaration.", isEarly: true }, - Computed_property_names_are_not_allowed_in_enums: { code: 1164, category: 1 /* Error */, key: "Computed property names are not allowed in enums.", isEarly: true }, - Computed_property_names_are_not_allowed_in_an_ambient_context: { code: 1165, category: 1 /* Error */, key: "Computed property names are not allowed in an ambient context.", isEarly: true }, - Computed_property_names_are_not_allowed_in_class_property_declarations: { code: 1166, category: 1 /* Error */, key: "Computed property names are not allowed in class property declarations.", isEarly: true }, - Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: 1 /* Error */, key: "Computed property names are only available when targeting ECMAScript 6 and higher.", isEarly: true }, - Computed_property_names_are_not_allowed_in_method_overloads: { code: 1168, category: 1 /* Error */, key: "Computed property names are not allowed in method overloads.", isEarly: true }, - Computed_property_names_are_not_allowed_in_interfaces: { code: 1169, category: 1 /* Error */, key: "Computed property names are not allowed in interfaces.", isEarly: true }, - Computed_property_names_are_not_allowed_in_type_literals: { code: 1170, category: 1 /* Error */, key: "Computed property names are not allowed in type literals.", isEarly: true }, - A_comma_expression_is_not_allowed_in_a_computed_property_name: { code: 1171, category: 1 /* Error */, key: "A comma expression is not allowed in a computed property name." }, - extends_clause_already_seen: { code: 1172, category: 1 /* Error */, key: "'extends' clause already seen.", isEarly: true }, - extends_clause_must_precede_implements_clause: { code: 1173, category: 1 /* Error */, key: "'extends' clause must precede 'implements' clause.", isEarly: true }, - Classes_can_only_extend_a_single_class: { code: 1174, category: 1 /* Error */, key: "Classes can only extend a single class.", isEarly: true }, - implements_clause_already_seen: { code: 1175, category: 1 /* Error */, key: "'implements' clause already seen.", isEarly: true }, - Interface_declaration_cannot_have_implements_clause: { code: 1176, category: 1 /* Error */, key: "Interface declaration cannot have 'implements' clause.", isEarly: true }, - Binary_digit_expected: { code: 1177, category: 1 /* Error */, key: "Binary digit expected." }, - Octal_digit_expected: { code: 1178, category: 1 /* Error */, key: "Octal digit expected." }, - Unexpected_token_expected: { code: 1179, category: 1 /* Error */, key: "Unexpected token. '{' expected." }, - Property_destructuring_pattern_expected: { code: 1180, category: 1 /* Error */, key: "Property destructuring pattern expected." }, - Array_element_destructuring_pattern_expected: { code: 1181, category: 1 /* Error */, key: "Array element destructuring pattern expected." }, - A_destructuring_declaration_must_have_an_initializer: { code: 1182, category: 1 /* Error */, key: "A destructuring declaration must have an initializer.", isEarly: true }, - Destructuring_declarations_are_not_allowed_in_ambient_contexts: { code: 1183, category: 1 /* Error */, key: "Destructuring declarations are not allowed in ambient contexts.", isEarly: true }, - An_implementation_cannot_be_declared_in_ambient_contexts: { code: 1184, category: 1 /* Error */, key: "An implementation cannot be declared in ambient contexts.", isEarly: true }, - Modifiers_cannot_appear_here: { code: 1184, category: 1 /* Error */, key: "Modifiers cannot appear here." }, - Merge_conflict_marker_encountered: { code: 1185, category: 1 /* Error */, key: "Merge conflict marker encountered." }, - A_rest_element_cannot_have_an_initializer: { code: 1186, category: 1 /* Error */, key: "A rest element cannot have an initializer." }, - A_parameter_property_may_not_be_a_binding_pattern: { code: 1187, category: 1 /* Error */, key: "A parameter property may not be a binding pattern." }, - Duplicate_identifier_0: { code: 2300, category: 1 /* Error */, key: "Duplicate identifier '{0}'." }, - Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 1 /* Error */, key: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor." }, - Static_members_cannot_reference_class_type_parameters: { code: 2302, category: 1 /* Error */, key: "Static members cannot reference class type parameters." }, - Circular_definition_of_import_alias_0: { code: 2303, category: 1 /* Error */, key: "Circular definition of import alias '{0}'." }, - Cannot_find_name_0: { code: 2304, category: 1 /* Error */, key: "Cannot find name '{0}'." }, - Module_0_has_no_exported_member_1: { code: 2305, category: 1 /* Error */, key: "Module '{0}' has no exported member '{1}'." }, - File_0_is_not_an_external_module: { code: 2306, category: 1 /* Error */, key: "File '{0}' is not an external module." }, - Cannot_find_external_module_0: { code: 2307, category: 1 /* Error */, key: "Cannot find external module '{0}'." }, - A_module_cannot_have_more_than_one_export_assignment: { code: 2308, category: 1 /* Error */, key: "A module cannot have more than one export assignment." }, - An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: { code: 2309, category: 1 /* Error */, key: "An export assignment cannot be used in a module with other exported elements." }, - Type_0_recursively_references_itself_as_a_base_type: { code: 2310, category: 1 /* Error */, key: "Type '{0}' recursively references itself as a base type." }, - A_class_may_only_extend_another_class: { code: 2311, category: 1 /* Error */, key: "A class may only extend another class." }, - An_interface_may_only_extend_a_class_or_another_interface: { code: 2312, category: 1 /* Error */, key: "An interface may only extend a class or another interface." }, - Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: { code: 2313, category: 1 /* Error */, key: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list." }, - Generic_type_0_requires_1_type_argument_s: { code: 2314, category: 1 /* Error */, key: "Generic type '{0}' requires {1} type argument(s)." }, - Type_0_is_not_generic: { code: 2315, category: 1 /* Error */, key: "Type '{0}' is not generic." }, - Global_type_0_must_be_a_class_or_interface_type: { code: 2316, category: 1 /* Error */, key: "Global type '{0}' must be a class or interface type." }, - Global_type_0_must_have_1_type_parameter_s: { code: 2317, category: 1 /* Error */, key: "Global type '{0}' must have {1} type parameter(s)." }, - Cannot_find_global_type_0: { code: 2318, category: 1 /* Error */, key: "Cannot find global type '{0}'." }, - Named_properties_0_of_types_1_and_2_are_not_identical: { code: 2319, category: 1 /* Error */, key: "Named properties '{0}' of types '{1}' and '{2}' are not identical." }, - Interface_0_cannot_simultaneously_extend_types_1_and_2: { code: 2320, category: 1 /* Error */, key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." }, - Excessive_stack_depth_comparing_types_0_and_1: { code: 2321, category: 1 /* Error */, key: "Excessive stack depth comparing types '{0}' and '{1}'." }, - Type_0_is_not_assignable_to_type_1: { code: 2322, category: 1 /* Error */, key: "Type '{0}' is not assignable to type '{1}'." }, - Property_0_is_missing_in_type_1: { code: 2324, category: 1 /* Error */, key: "Property '{0}' is missing in type '{1}'." }, - Property_0_is_private_in_type_1_but_not_in_type_2: { code: 2325, category: 1 /* Error */, key: "Property '{0}' is private in type '{1}' but not in type '{2}'." }, - Types_of_property_0_are_incompatible: { code: 2326, category: 1 /* Error */, key: "Types of property '{0}' are incompatible." }, - Property_0_is_optional_in_type_1_but_required_in_type_2: { code: 2327, category: 1 /* Error */, key: "Property '{0}' is optional in type '{1}' but required in type '{2}'." }, - Types_of_parameters_0_and_1_are_incompatible: { code: 2328, category: 1 /* Error */, key: "Types of parameters '{0}' and '{1}' are incompatible." }, - Index_signature_is_missing_in_type_0: { code: 2329, category: 1 /* Error */, key: "Index signature is missing in type '{0}'." }, - Index_signatures_are_incompatible: { code: 2330, category: 1 /* Error */, key: "Index signatures are incompatible." }, - this_cannot_be_referenced_in_a_module_body: { code: 2331, category: 1 /* Error */, key: "'this' cannot be referenced in a module body." }, - this_cannot_be_referenced_in_current_location: { code: 2332, category: 1 /* Error */, key: "'this' cannot be referenced in current location." }, - this_cannot_be_referenced_in_constructor_arguments: { code: 2333, category: 1 /* Error */, key: "'this' cannot be referenced in constructor arguments." }, - this_cannot_be_referenced_in_a_static_property_initializer: { code: 2334, category: 1 /* Error */, key: "'this' cannot be referenced in a static property initializer." }, - super_can_only_be_referenced_in_a_derived_class: { code: 2335, category: 1 /* Error */, key: "'super' can only be referenced in a derived class." }, - super_cannot_be_referenced_in_constructor_arguments: { code: 2336, category: 1 /* Error */, key: "'super' cannot be referenced in constructor arguments." }, - Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: { code: 2337, category: 1 /* Error */, key: "Super calls are not permitted outside constructors or in nested functions inside constructors" }, - super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: { code: 2338, category: 1 /* Error */, key: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class" }, - Property_0_does_not_exist_on_type_1: { code: 2339, category: 1 /* Error */, key: "Property '{0}' does not exist on type '{1}'." }, - Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: { code: 2340, category: 1 /* Error */, key: "Only public and protected methods of the base class are accessible via the 'super' keyword" }, - Property_0_is_private_and_only_accessible_within_class_1: { code: 2341, category: 1 /* Error */, key: "Property '{0}' is private and only accessible within class '{1}'." }, - An_index_expression_argument_must_be_of_type_string_number_or_any: { code: 2342, category: 1 /* Error */, key: "An index expression argument must be of type 'string', 'number', or 'any'." }, - Type_0_does_not_satisfy_the_constraint_1: { code: 2344, category: 1 /* Error */, key: "Type '{0}' does not satisfy the constraint '{1}'." }, - Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: { code: 2345, category: 1 /* Error */, key: "Argument of type '{0}' is not assignable to parameter of type '{1}'." }, - Supplied_parameters_do_not_match_any_signature_of_call_target: { code: 2346, category: 1 /* Error */, key: "Supplied parameters do not match any signature of call target." }, - Untyped_function_calls_may_not_accept_type_arguments: { code: 2347, category: 1 /* Error */, key: "Untyped function calls may not accept type arguments." }, - Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: { code: 2348, category: 1 /* Error */, key: "Value of type '{0}' is not callable. Did you mean to include 'new'?" }, - Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: { code: 2349, category: 1 /* Error */, key: "Cannot invoke an expression whose type lacks a call signature." }, - Only_a_void_function_can_be_called_with_the_new_keyword: { code: 2350, category: 1 /* Error */, key: "Only a void function can be called with the 'new' keyword." }, - Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: { code: 2351, category: 1 /* Error */, key: "Cannot use 'new' with an expression whose type lacks a call or construct signature." }, - Neither_type_0_nor_type_1_is_assignable_to_the_other: { code: 2352, category: 1 /* Error */, key: "Neither type '{0}' nor type '{1}' is assignable to the other." }, - No_best_common_type_exists_among_return_expressions: { code: 2354, category: 1 /* Error */, key: "No best common type exists among return expressions." }, - A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2355, category: 1 /* Error */, key: "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement." }, - An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: { code: 2356, category: 1 /* Error */, key: "An arithmetic operand must be of type 'any', 'number' or an enum type." }, - The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: { code: 2357, category: 1 /* Error */, key: "The operand of an increment or decrement operator must be a variable, property or indexer." }, - The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2358, category: 1 /* Error */, key: "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter." }, - The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: { code: 2359, category: 1 /* Error */, key: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type." }, - The_left_hand_side_of_an_in_expression_must_be_of_types_any_string_or_number: { code: 2360, category: 1 /* Error */, key: "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'." }, - The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2361, category: 1 /* Error */, key: "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter" }, - The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2362, category: 1 /* Error */, key: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, - The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2363, category: 1 /* Error */, key: "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, - Invalid_left_hand_side_of_assignment_expression: { code: 2364, category: 1 /* Error */, key: "Invalid left-hand side of assignment expression." }, - Operator_0_cannot_be_applied_to_types_1_and_2: { code: 2365, category: 1 /* Error */, key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." }, - Type_parameter_name_cannot_be_0: { code: 2368, category: 1 /* Error */, key: "Type parameter name cannot be '{0}'" }, - A_parameter_property_is_only_allowed_in_a_constructor_implementation: { code: 2369, category: 1 /* Error */, key: "A parameter property is only allowed in a constructor implementation." }, - A_rest_parameter_must_be_of_an_array_type: { code: 2370, category: 1 /* Error */, key: "A rest parameter must be of an array type." }, - A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: { code: 2371, category: 1 /* Error */, key: "A parameter initializer is only allowed in a function or constructor implementation." }, - Parameter_0_cannot_be_referenced_in_its_initializer: { code: 2372, category: 1 /* Error */, key: "Parameter '{0}' cannot be referenced in its initializer." }, - Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { code: 2373, category: 1 /* Error */, key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." }, - Duplicate_string_index_signature: { code: 2374, category: 1 /* Error */, key: "Duplicate string index signature." }, - Duplicate_number_index_signature: { code: 2375, category: 1 /* Error */, key: "Duplicate number index signature." }, - A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: { code: 2376, category: 1 /* Error */, key: "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties." }, - Constructors_for_derived_classes_must_contain_a_super_call: { code: 2377, category: 1 /* Error */, key: "Constructors for derived classes must contain a 'super' call." }, - A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2378, category: 1 /* Error */, key: "A 'get' accessor must return a value or consist of a single 'throw' statement." }, - Getter_and_setter_accessors_do_not_agree_in_visibility: { code: 2379, category: 1 /* Error */, key: "Getter and setter accessors do not agree in visibility." }, - get_and_set_accessor_must_have_the_same_type: { code: 2380, category: 1 /* Error */, key: "'get' and 'set' accessor must have the same type." }, - A_signature_with_an_implementation_cannot_use_a_string_literal_type: { code: 2381, category: 1 /* Error */, key: "A signature with an implementation cannot use a string literal type." }, - Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: { code: 2382, category: 1 /* Error */, key: "Specialized overload signature is not assignable to any non-specialized signature." }, - Overload_signatures_must_all_be_exported_or_not_exported: { code: 2383, category: 1 /* Error */, key: "Overload signatures must all be exported or not exported." }, - Overload_signatures_must_all_be_ambient_or_non_ambient: { code: 2384, category: 1 /* Error */, key: "Overload signatures must all be ambient or non-ambient." }, - Overload_signatures_must_all_be_public_private_or_protected: { code: 2385, category: 1 /* Error */, key: "Overload signatures must all be public, private or protected." }, - Overload_signatures_must_all_be_optional_or_required: { code: 2386, category: 1 /* Error */, key: "Overload signatures must all be optional or required." }, - Function_overload_must_be_static: { code: 2387, category: 1 /* Error */, key: "Function overload must be static." }, - Function_overload_must_not_be_static: { code: 2388, category: 1 /* Error */, key: "Function overload must not be static." }, - Function_implementation_name_must_be_0: { code: 2389, category: 1 /* Error */, key: "Function implementation name must be '{0}'." }, - Constructor_implementation_is_missing: { code: 2390, category: 1 /* Error */, key: "Constructor implementation is missing." }, - Function_implementation_is_missing_or_not_immediately_following_the_declaration: { code: 2391, category: 1 /* Error */, key: "Function implementation is missing or not immediately following the declaration." }, - Multiple_constructor_implementations_are_not_allowed: { code: 2392, category: 1 /* Error */, key: "Multiple constructor implementations are not allowed." }, - Duplicate_function_implementation: { code: 2393, category: 1 /* Error */, key: "Duplicate function implementation." }, - Overload_signature_is_not_compatible_with_function_implementation: { code: 2394, category: 1 /* Error */, key: "Overload signature is not compatible with function implementation." }, - Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: { code: 2395, category: 1 /* Error */, key: "Individual declarations in merged declaration {0} must be all exported or all local." }, - Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: { code: 2396, category: 1 /* Error */, key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." }, - Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { code: 2399, category: 1 /* Error */, key: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference." }, - Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: { code: 2400, category: 1 /* Error */, key: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference." }, - Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: { code: 2401, category: 1 /* Error */, key: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference." }, - Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: { code: 2402, category: 1 /* Error */, key: "Expression resolves to '_super' that compiler uses to capture base class reference." }, - Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: { code: 2403, category: 1 /* Error */, key: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'." }, - The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: { code: 2404, category: 1 /* Error */, key: "The left-hand side of a 'for...in' statement cannot use a type annotation." }, - The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: { code: 2405, category: 1 /* Error */, key: "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'." }, - Invalid_left_hand_side_in_for_in_statement: { code: 2406, category: 1 /* Error */, key: "Invalid left-hand side in 'for...in' statement." }, - The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2407, category: 1 /* Error */, key: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter." }, - Setters_cannot_return_a_value: { code: 2408, category: 1 /* Error */, key: "Setters cannot return a value." }, - Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: { code: 2409, category: 1 /* Error */, key: "Return type of constructor signature must be assignable to the instance type of the class" }, - All_symbols_within_a_with_block_will_be_resolved_to_any: { code: 2410, category: 1 /* Error */, key: "All symbols within a 'with' block will be resolved to 'any'." }, - Property_0_of_type_1_is_not_assignable_to_string_index_type_2: { code: 2411, category: 1 /* Error */, key: "Property '{0}' of type '{1}' is not assignable to string index type '{2}'." }, - Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: { code: 2412, category: 1 /* Error */, key: "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'." }, - Numeric_index_type_0_is_not_assignable_to_string_index_type_1: { code: 2413, category: 1 /* Error */, key: "Numeric index type '{0}' is not assignable to string index type '{1}'." }, - Class_name_cannot_be_0: { code: 2414, category: 1 /* Error */, key: "Class name cannot be '{0}'" }, - Class_0_incorrectly_extends_base_class_1: { code: 2415, category: 1 /* Error */, key: "Class '{0}' incorrectly extends base class '{1}'." }, - Class_static_side_0_incorrectly_extends_base_class_static_side_1: { code: 2417, category: 1 /* Error */, key: "Class static side '{0}' incorrectly extends base class static side '{1}'." }, - Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0: { code: 2419, category: 1 /* Error */, key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." }, - Class_0_incorrectly_implements_interface_1: { code: 2420, category: 1 /* Error */, key: "Class '{0}' incorrectly implements interface '{1}'." }, - A_class_may_only_implement_another_class_or_interface: { code: 2422, category: 1 /* Error */, key: "A class may only implement another class or interface." }, - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: { code: 2423, category: 1 /* Error */, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor." }, - Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: { code: 2424, category: 1 /* Error */, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property." }, - Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2425, category: 1 /* Error */, key: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function." }, - Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2426, category: 1 /* Error */, key: "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function." }, - Interface_name_cannot_be_0: { code: 2427, category: 1 /* Error */, key: "Interface name cannot be '{0}'" }, - All_declarations_of_an_interface_must_have_identical_type_parameters: { code: 2428, category: 1 /* Error */, key: "All declarations of an interface must have identical type parameters." }, - Interface_0_incorrectly_extends_interface_1: { code: 2430, category: 1 /* Error */, key: "Interface '{0}' incorrectly extends interface '{1}'." }, - Enum_name_cannot_be_0: { code: 2431, category: 1 /* Error */, key: "Enum name cannot be '{0}'" }, - In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: { code: 2432, category: 1 /* Error */, key: "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element." }, - A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: { code: 2433, category: 1 /* Error */, key: "A module declaration cannot be in a different file from a class or function with which it is merged" }, - A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: { code: 2434, category: 1 /* Error */, key: "A module declaration cannot be located prior to a class or function with which it is merged" }, - Ambient_external_modules_cannot_be_nested_in_other_modules: { code: 2435, category: 1 /* Error */, key: "Ambient external modules cannot be nested in other modules." }, - Ambient_external_module_declaration_cannot_specify_relative_module_name: { code: 2436, category: 1 /* Error */, key: "Ambient external module declaration cannot specify relative module name." }, - Module_0_is_hidden_by_a_local_declaration_with_the_same_name: { code: 2437, category: 1 /* Error */, key: "Module '{0}' is hidden by a local declaration with the same name" }, - Import_name_cannot_be_0: { code: 2438, category: 1 /* Error */, key: "Import name cannot be '{0}'" }, - Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { code: 2439, category: 1 /* Error */, key: "Import declaration in an ambient external module declaration cannot reference external module through relative external module name." }, - Import_declaration_conflicts_with_local_declaration_of_0: { code: 2440, category: 1 /* Error */, key: "Import declaration conflicts with local declaration of '{0}'" }, - Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: { code: 2441, category: 1 /* Error */, key: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module." }, - Types_have_separate_declarations_of_a_private_property_0: { code: 2442, category: 1 /* Error */, key: "Types have separate declarations of a private property '{0}'." }, - Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: { code: 2443, category: 1 /* Error */, key: "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'." }, - Property_0_is_protected_in_type_1_but_public_in_type_2: { code: 2444, category: 1 /* Error */, key: "Property '{0}' is protected in type '{1}' but public in type '{2}'." }, - Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { code: 2445, category: 1 /* Error */, key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." }, - Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { code: 2446, category: 1 /* Error */, key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." }, - The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { code: 2447, category: 1 /* Error */, key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." }, - Block_scoped_variable_0_used_before_its_declaration: { code: 2448, category: 1 /* Error */, key: "Block-scoped variable '{0}' used before its declaration.", isEarly: true }, - The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: 1 /* Error */, key: "The operand of an increment or decrement operator cannot be a constant.", isEarly: true }, - Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: 1 /* Error */, key: "Left-hand side of assignment expression cannot be a constant.", isEarly: true }, - Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: 1 /* Error */, key: "Cannot redeclare block-scoped variable '{0}'.", isEarly: true }, - An_enum_member_cannot_have_a_numeric_name: { code: 2452, category: 1 /* Error */, key: "An enum member cannot have a numeric name." }, - The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { code: 2453, category: 1 /* Error */, key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." }, - Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: 1 /* Error */, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." }, - Type_alias_0_circularly_references_itself: { code: 2456, category: 1 /* Error */, key: "Type alias '{0}' circularly references itself." }, - Type_alias_name_cannot_be_0: { code: 2457, category: 1 /* Error */, key: "Type alias name cannot be '{0}'" }, - An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: 1 /* Error */, key: "An AMD module cannot have multiple name assignments." }, - Type_0_has_no_property_1_and_no_string_index_signature: { code: 2459, category: 1 /* Error */, key: "Type '{0}' has no property '{1}' and no string index signature." }, - Type_0_has_no_property_1: { code: 2460, category: 1 /* Error */, key: "Type '{0}' has no property '{1}'." }, - Type_0_is_not_an_array_type: { code: 2461, category: 1 /* Error */, key: "Type '{0}' is not an array type." }, - A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: 1 /* Error */, key: "A rest element must be last in an array destructuring pattern" }, - A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: 1 /* Error */, key: "A binding pattern parameter cannot be optional in an implementation signature." }, - A_computed_property_name_must_be_of_type_string_number_or_any: { code: 2464, category: 1 /* Error */, key: "A computed property name must be of type 'string', 'number', or 'any'." }, - this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: 1 /* Error */, key: "'this' cannot be referenced in a computed property name." }, - super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: 1 /* Error */, key: "'super' cannot be referenced in a computed property name." }, - A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2466, category: 1 /* Error */, key: "A computed property name cannot reference a type parameter from its containing type." }, - Import_declaration_0_is_using_private_name_1: { code: 4000, category: 1 /* Error */, key: "Import declaration '{0}' is using private name '{1}'." }, - Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: 1 /* Error */, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, - Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: 1 /* Error */, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, - Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4006, category: 1 /* Error */, key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, - Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4008, category: 1 /* Error */, key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, - Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4010, category: 1 /* Error */, key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, - Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4012, category: 1 /* Error */, key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." }, - Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4014, category: 1 /* Error */, key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." }, - Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4016, category: 1 /* Error */, key: "Type parameter '{0}' of exported function has or is using private name '{1}'." }, - Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4019, category: 1 /* Error */, key: "Implements clause of exported class '{0}' has or is using private name '{1}'." }, - Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4020, category: 1 /* Error */, key: "Extends clause of exported class '{0}' has or is using private name '{1}'." }, - Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { code: 4022, category: 1 /* Error */, key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." }, - Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4023, category: 1 /* Error */, key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." }, - Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { code: 4024, category: 1 /* Error */, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." }, - Exported_variable_0_has_or_is_using_private_name_1: { code: 4025, category: 1 /* Error */, key: "Exported variable '{0}' has or is using private name '{1}'." }, - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4026, category: 1 /* Error */, key: "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, - Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4027, category: 1 /* Error */, key: "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, - Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4028, category: 1 /* Error */, key: "Public static property '{0}' of exported class has or is using private name '{1}'." }, - Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4029, category: 1 /* Error */, key: "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, - Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4030, category: 1 /* Error */, key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, - Public_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4031, category: 1 /* Error */, key: "Public property '{0}' of exported class has or is using private name '{1}'." }, - Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4032, category: 1 /* Error */, key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." }, - Property_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4033, category: 1 /* Error */, key: "Property '{0}' of exported interface has or is using private name '{1}'." }, - Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4034, category: 1 /* Error */, key: "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4035, category: 1 /* Error */, key: "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'." }, - Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4036, category: 1 /* Error */, key: "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4037, category: 1 /* Error */, key: "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'." }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4038, category: 1 /* Error */, key: "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4039, category: 1 /* Error */, key: "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'." }, - Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4040, category: 1 /* Error */, key: "Return type of public static property getter from exported class has or is using private name '{0}'." }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4041, category: 1 /* Error */, key: "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4042, category: 1 /* Error */, key: "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'." }, - Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4043, category: 1 /* Error */, key: "Return type of public property getter from exported class has or is using private name '{0}'." }, - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4044, category: 1 /* Error */, key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." }, - Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4045, category: 1 /* Error */, key: "Return type of constructor signature from exported interface has or is using private name '{0}'." }, - Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4046, category: 1 /* Error */, key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." }, - Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4047, category: 1 /* Error */, key: "Return type of call signature from exported interface has or is using private name '{0}'." }, - Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4048, category: 1 /* Error */, key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." }, - Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4049, category: 1 /* Error */, key: "Return type of index signature from exported interface has or is using private name '{0}'." }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4050, category: 1 /* Error */, key: "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4051, category: 1 /* Error */, key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." }, - Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { code: 4052, category: 1 /* Error */, key: "Return type of public static method from exported class has or is using private name '{0}'." }, - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4053, category: 1 /* Error */, key: "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, - Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4054, category: 1 /* Error */, key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." }, - Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { code: 4055, category: 1 /* Error */, key: "Return type of public method from exported class has or is using private name '{0}'." }, - Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4056, category: 1 /* Error */, key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." }, - Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { code: 4057, category: 1 /* Error */, key: "Return type of method from exported interface has or is using private name '{0}'." }, - Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4058, category: 1 /* Error */, key: "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named." }, - Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { code: 4059, category: 1 /* Error */, key: "Return type of exported function has or is using name '{0}' from private module '{1}'." }, - Return_type_of_exported_function_has_or_is_using_private_name_0: { code: 4060, category: 1 /* Error */, key: "Return type of exported function has or is using private name '{0}'." }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4061, category: 1 /* Error */, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named." }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4062, category: 1 /* Error */, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { code: 4063, category: 1 /* Error */, key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." }, - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4064, category: 1 /* Error */, key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4065, category: 1 /* Error */, key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4066, category: 1 /* Error */, key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4067, category: 1 /* Error */, key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4068, category: 1 /* Error */, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4069, category: 1 /* Error */, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4070, category: 1 /* Error */, key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4071, category: 1 /* Error */, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4072, category: 1 /* Error */, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4073, category: 1 /* Error */, key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." }, - Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4074, category: 1 /* Error */, key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4075, category: 1 /* Error */, key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." }, - Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4076, category: 1 /* Error */, key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." }, - Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { code: 4077, category: 1 /* Error */, key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." }, - Parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4078, category: 1 /* Error */, key: "Parameter '{0}' of exported function has or is using private name '{1}'." }, - Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: 1 /* Error */, key: "Exported type alias '{0}' has or is using private name '{1}'." }, - Enum_declarations_must_all_be_const_or_non_const: { code: 4082, category: 1 /* Error */, key: "Enum declarations must all be const or non-const." }, - In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 4083, category: 1 /* Error */, key: "In 'const' enum declarations member initializer must be constant expression.", isEarly: true }, - const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { code: 4084, category: 1 /* Error */, key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." }, - A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 4085, category: 1 /* Error */, key: "A const enum member can only be accessed using a string literal.", isEarly: true }, - const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 4086, category: 1 /* Error */, key: "'const' enum member initializer was evaluated to a non-finite value." }, - const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 4087, category: 1 /* Error */, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." }, - Property_0_does_not_exist_on_const_enum_1: { code: 4088, category: 1 /* Error */, key: "Property '{0}' does not exist on 'const' enum '{1}'.", isEarly: true }, - The_current_host_does_not_support_the_0_option: { code: 5001, category: 1 /* Error */, key: "The current host does not support the '{0}' option." }, - Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: 1 /* Error */, key: "Cannot find the common subdirectory path for the input files." }, - Cannot_read_file_0_Colon_1: { code: 5012, category: 1 /* Error */, key: "Cannot read file '{0}': {1}" }, - Unsupported_file_encoding: { code: 5013, category: 1 /* Error */, key: "Unsupported file encoding." }, - Unknown_compiler_option_0: { code: 5023, category: 1 /* Error */, key: "Unknown compiler option '{0}'." }, - Compiler_option_0_requires_a_value_of_type_1: { code: 5024, category: 1 /* Error */, key: "Compiler option '{0}' requires a value of type {1}." }, - Could_not_write_file_0_Colon_1: { code: 5033, category: 1 /* Error */, key: "Could not write file '{0}': {1}" }, - Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5038, category: 1 /* Error */, key: "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option." }, - Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5039, category: 1 /* Error */, key: "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option." }, - Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: 1 /* Error */, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." }, - Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: 1 /* Error */, key: "Option 'noEmit' cannot be specified with option 'declaration'." }, - Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: 1 /* Error */, key: "Option 'project' cannot be mixed with source files on a command line." }, - Concatenate_and_emit_output_to_single_file: { code: 6001, category: 2 /* Message */, key: "Concatenate and emit output to single file." }, - Generates_corresponding_d_ts_file: { code: 6002, category: 2 /* Message */, key: "Generates corresponding '.d.ts' file." }, - Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { code: 6003, category: 2 /* Message */, key: "Specifies the location where debugger should locate map files instead of generated locations." }, - Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: { code: 6004, category: 2 /* Message */, key: "Specifies the location where debugger should locate TypeScript files instead of source locations." }, - Watch_input_files: { code: 6005, category: 2 /* Message */, key: "Watch input files." }, - Redirect_output_structure_to_the_directory: { code: 6006, category: 2 /* Message */, key: "Redirect output structure to the directory." }, - Do_not_erase_const_enum_declarations_in_generated_code: { code: 6007, category: 2 /* Message */, key: "Do not erase const enum declarations in generated code." }, - Do_not_emit_outputs_if_any_type_checking_errors_were_reported: { code: 6008, category: 2 /* Message */, key: "Do not emit outputs if any type checking errors were reported." }, - Do_not_emit_comments_to_output: { code: 6009, category: 2 /* Message */, key: "Do not emit comments to output." }, - Do_not_emit_outputs: { code: 6010, category: 2 /* Message */, key: "Do not emit outputs." }, - Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: 2 /* Message */, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, - Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: 2 /* Message */, key: "Specify module code generation: 'commonjs' or 'amd'" }, - Print_this_message: { code: 6017, category: 2 /* Message */, key: "Print this message." }, - Print_the_compiler_s_version: { code: 6019, category: 2 /* Message */, key: "Print the compiler's version." }, - Compile_the_project_in_the_given_directory: { code: 6020, category: 2 /* Message */, key: "Compile the project in the given directory." }, - Syntax_Colon_0: { code: 6023, category: 2 /* Message */, key: "Syntax: {0}" }, - options: { code: 6024, category: 2 /* Message */, key: "options" }, - file: { code: 6025, category: 2 /* Message */, key: "file" }, - Examples_Colon_0: { code: 6026, category: 2 /* Message */, key: "Examples: {0}" }, - Options_Colon: { code: 6027, category: 2 /* Message */, key: "Options:" }, - Version_0: { code: 6029, category: 2 /* Message */, key: "Version {0}" }, - Insert_command_line_options_and_files_from_a_file: { code: 6030, category: 2 /* Message */, key: "Insert command line options and files from a file." }, - File_change_detected_Starting_incremental_compilation: { code: 6032, category: 2 /* Message */, key: "File change detected. Starting incremental compilation..." }, - KIND: { code: 6034, category: 2 /* Message */, key: "KIND" }, - FILE: { code: 6035, category: 2 /* Message */, key: "FILE" }, - VERSION: { code: 6036, category: 2 /* Message */, key: "VERSION" }, - LOCATION: { code: 6037, category: 2 /* Message */, key: "LOCATION" }, - DIRECTORY: { code: 6038, category: 2 /* Message */, key: "DIRECTORY" }, - Compilation_complete_Watching_for_file_changes: { code: 6042, category: 2 /* Message */, key: "Compilation complete. Watching for file changes." }, - Generates_corresponding_map_file: { code: 6043, category: 2 /* Message */, key: "Generates corresponding '.map' file." }, - Compiler_option_0_expects_an_argument: { code: 6044, category: 1 /* Error */, key: "Compiler option '{0}' expects an argument." }, - Unterminated_quoted_string_in_response_file_0: { code: 6045, category: 1 /* Error */, key: "Unterminated quoted string in response file '{0}'." }, - Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: 1 /* Error */, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, - Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: 1 /* Error */, key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." }, - Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: 1 /* Error */, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, - Unsupported_locale_0: { code: 6049, category: 1 /* Error */, key: "Unsupported locale '{0}'." }, - Unable_to_open_file_0: { code: 6050, category: 1 /* Error */, key: "Unable to open file '{0}'." }, - Corrupted_locale_file_0: { code: 6051, category: 1 /* Error */, key: "Corrupted locale file {0}." }, - Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: 2 /* Message */, key: "Raise error on expressions and declarations with an implied 'any' type." }, - File_0_not_found: { code: 6053, category: 1 /* Error */, key: "File '{0}' not found." }, - File_0_must_have_extension_ts_or_d_ts: { code: 6054, category: 1 /* Error */, key: "File '{0}' must have extension '.ts' or '.d.ts'." }, - Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { code: 6055, category: 2 /* Message */, key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." }, - Variable_0_implicitly_has_an_1_type: { code: 7005, category: 1 /* Error */, key: "Variable '{0}' implicitly has an '{1}' type." }, - Parameter_0_implicitly_has_an_1_type: { code: 7006, category: 1 /* Error */, key: "Parameter '{0}' implicitly has an '{1}' type." }, - Member_0_implicitly_has_an_1_type: { code: 7008, category: 1 /* Error */, key: "Member '{0}' implicitly has an '{1}' type." }, - new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: { code: 7009, category: 1 /* Error */, key: "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type." }, - _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { code: 7010, category: 1 /* Error */, key: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." }, - Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { code: 7011, category: 1 /* Error */, key: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." }, - Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7013, category: 1 /* Error */, key: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." }, - Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { code: 7016, category: 1 /* Error */, key: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." }, - Index_signature_of_object_type_implicitly_has_an_any_type: { code: 7017, category: 1 /* Error */, key: "Index signature of object type implicitly has an 'any' type." }, - Object_literal_s_property_0_implicitly_has_an_1_type: { code: 7018, category: 1 /* Error */, key: "Object literal's property '{0}' implicitly has an '{1}' type." }, - Rest_parameter_0_implicitly_has_an_any_type: { code: 7019, category: 1 /* Error */, key: "Rest parameter '{0}' implicitly has an 'any[]' type." }, - Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7020, category: 1 /* Error */, key: "Call signature, which lacks return-type annotation, implicitly has an 'any' return type." }, - _0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation: { code: 7021, category: 1 /* Error */, key: "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation." }, - _0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: { code: 7022, category: 1 /* Error */, key: "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer." }, - _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7023, category: 1 /* Error */, key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, - Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7024, category: 1 /* Error */, key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, - You_cannot_rename_this_element: { code: 8000, category: 1 /* Error */, key: "You cannot rename this element." }, - yield_expressions_are_not_currently_supported: { code: 9000, category: 1 /* Error */, key: "'yield' expressions are not currently supported.", isEarly: true }, - Generators_are_not_currently_supported: { code: 9001, category: 1 /* Error */, key: "Generators are not currently supported.", isEarly: true } + Unterminated_string_literal: { code: 1002, category: 1, key: "Unterminated string literal." }, + Identifier_expected: { code: 1003, category: 1, key: "Identifier expected." }, + _0_expected: { code: 1005, category: 1, key: "'{0}' expected." }, + A_file_cannot_have_a_reference_to_itself: { code: 1006, category: 1, key: "A file cannot have a reference to itself." }, + Trailing_comma_not_allowed: { code: 1009, category: 1, key: "Trailing comma not allowed." }, + Asterisk_Slash_expected: { code: 1010, category: 1, key: "'*/' expected." }, + Unexpected_token: { code: 1012, category: 1, key: "Unexpected token." }, + Catch_clause_parameter_cannot_have_a_type_annotation: { code: 1013, category: 1, key: "Catch clause parameter cannot have a type annotation." }, + A_rest_parameter_must_be_last_in_a_parameter_list: { code: 1014, category: 1, key: "A rest parameter must be last in a parameter list." }, + Parameter_cannot_have_question_mark_and_initializer: { code: 1015, category: 1, key: "Parameter cannot have question mark and initializer." }, + A_required_parameter_cannot_follow_an_optional_parameter: { code: 1016, category: 1, key: "A required parameter cannot follow an optional parameter." }, + An_index_signature_cannot_have_a_rest_parameter: { code: 1017, category: 1, key: "An index signature cannot have a rest parameter." }, + An_index_signature_parameter_cannot_have_an_accessibility_modifier: { code: 1018, category: 1, key: "An index signature parameter cannot have an accessibility modifier." }, + An_index_signature_parameter_cannot_have_a_question_mark: { code: 1019, category: 1, key: "An index signature parameter cannot have a question mark." }, + An_index_signature_parameter_cannot_have_an_initializer: { code: 1020, category: 1, key: "An index signature parameter cannot have an initializer." }, + An_index_signature_must_have_a_type_annotation: { code: 1021, category: 1, key: "An index signature must have a type annotation." }, + An_index_signature_parameter_must_have_a_type_annotation: { code: 1022, category: 1, key: "An index signature parameter must have a type annotation." }, + An_index_signature_parameter_type_must_be_string_or_number: { code: 1023, category: 1, key: "An index signature parameter type must be 'string' or 'number'." }, + A_class_or_interface_declaration_can_only_have_one_extends_clause: { code: 1024, category: 1, key: "A class or interface declaration can only have one 'extends' clause." }, + An_extends_clause_must_precede_an_implements_clause: { code: 1025, category: 1, key: "An 'extends' clause must precede an 'implements' clause." }, + A_class_can_only_extend_a_single_class: { code: 1026, category: 1, key: "A class can only extend a single class." }, + A_class_declaration_can_only_have_one_implements_clause: { code: 1027, category: 1, key: "A class declaration can only have one 'implements' clause." }, + Accessibility_modifier_already_seen: { code: 1028, category: 1, key: "Accessibility modifier already seen." }, + _0_modifier_must_precede_1_modifier: { code: 1029, category: 1, key: "'{0}' modifier must precede '{1}' modifier." }, + _0_modifier_already_seen: { code: 1030, category: 1, key: "'{0}' modifier already seen." }, + _0_modifier_cannot_appear_on_a_class_element: { code: 1031, category: 1, key: "'{0}' modifier cannot appear on a class element." }, + An_interface_declaration_cannot_have_an_implements_clause: { code: 1032, category: 1, key: "An interface declaration cannot have an 'implements' clause." }, + super_must_be_followed_by_an_argument_list_or_member_access: { code: 1034, category: 1, key: "'super' must be followed by an argument list or member access." }, + Only_ambient_modules_can_use_quoted_names: { code: 1035, category: 1, key: "Only ambient modules can use quoted names." }, + Statements_are_not_allowed_in_ambient_contexts: { code: 1036, category: 1, key: "Statements are not allowed in ambient contexts." }, + A_declare_modifier_cannot_be_used_in_an_already_ambient_context: { code: 1038, category: 1, key: "A 'declare' modifier cannot be used in an already ambient context." }, + Initializers_are_not_allowed_in_ambient_contexts: { code: 1039, category: 1, key: "Initializers are not allowed in ambient contexts." }, + _0_modifier_cannot_appear_on_a_module_element: { code: 1044, category: 1, key: "'{0}' modifier cannot appear on a module element." }, + A_declare_modifier_cannot_be_used_with_an_interface_declaration: { code: 1045, category: 1, key: "A 'declare' modifier cannot be used with an interface declaration." }, + A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file: { code: 1046, category: 1, key: "A 'declare' modifier is required for a top level declaration in a .d.ts file." }, + A_rest_parameter_cannot_be_optional: { code: 1047, category: 1, key: "A rest parameter cannot be optional." }, + A_rest_parameter_cannot_have_an_initializer: { code: 1048, category: 1, key: "A rest parameter cannot have an initializer." }, + A_set_accessor_must_have_exactly_one_parameter: { code: 1049, category: 1, key: "A 'set' accessor must have exactly one parameter." }, + A_set_accessor_cannot_have_an_optional_parameter: { code: 1051, category: 1, key: "A 'set' accessor cannot have an optional parameter." }, + A_set_accessor_parameter_cannot_have_an_initializer: { code: 1052, category: 1, key: "A 'set' accessor parameter cannot have an initializer." }, + A_set_accessor_cannot_have_rest_parameter: { code: 1053, category: 1, key: "A 'set' accessor cannot have rest parameter." }, + A_get_accessor_cannot_have_parameters: { code: 1054, category: 1, key: "A 'get' accessor cannot have parameters." }, + Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher: { code: 1056, category: 1, key: "Accessors are only available when targeting ECMAScript 5 and higher." }, + Enum_member_must_have_initializer: { code: 1061, category: 1, key: "Enum member must have initializer." }, + An_export_assignment_cannot_be_used_in_an_internal_module: { code: 1063, category: 1, key: "An export assignment cannot be used in an internal module." }, + Ambient_enum_elements_can_only_have_integer_literal_initializers: { code: 1066, category: 1, key: "Ambient enum elements can only have integer literal initializers." }, + Unexpected_token_A_constructor_method_accessor_or_property_was_expected: { code: 1068, category: 1, key: "Unexpected token. A constructor, method, accessor, or property was expected." }, + A_declare_modifier_cannot_be_used_with_an_import_declaration: { code: 1079, category: 1, key: "A 'declare' modifier cannot be used with an import declaration." }, + Invalid_reference_directive_syntax: { code: 1084, category: 1, key: "Invalid 'reference' directive syntax." }, + Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher: { code: 1085, category: 1, key: "Octal literals are not available when targeting ECMAScript 5 and higher." }, + An_accessor_cannot_be_declared_in_an_ambient_context: { code: 1086, category: 1, key: "An accessor cannot be declared in an ambient context." }, + _0_modifier_cannot_appear_on_a_constructor_declaration: { code: 1089, category: 1, key: "'{0}' modifier cannot appear on a constructor declaration." }, + _0_modifier_cannot_appear_on_a_parameter: { code: 1090, category: 1, key: "'{0}' modifier cannot appear on a parameter." }, + Only_a_single_variable_declaration_is_allowed_in_a_for_in_statement: { code: 1091, category: 1, key: "Only a single variable declaration is allowed in a 'for...in' statement." }, + Type_parameters_cannot_appear_on_a_constructor_declaration: { code: 1092, category: 1, key: "Type parameters cannot appear on a constructor declaration." }, + Type_annotation_cannot_appear_on_a_constructor_declaration: { code: 1093, category: 1, key: "Type annotation cannot appear on a constructor declaration." }, + An_accessor_cannot_have_type_parameters: { code: 1094, category: 1, key: "An accessor cannot have type parameters." }, + A_set_accessor_cannot_have_a_return_type_annotation: { code: 1095, category: 1, key: "A 'set' accessor cannot have a return type annotation." }, + An_index_signature_must_have_exactly_one_parameter: { code: 1096, category: 1, key: "An index signature must have exactly one parameter." }, + _0_list_cannot_be_empty: { code: 1097, category: 1, key: "'{0}' list cannot be empty." }, + Type_parameter_list_cannot_be_empty: { code: 1098, category: 1, key: "Type parameter list cannot be empty." }, + Type_argument_list_cannot_be_empty: { code: 1099, category: 1, key: "Type argument list cannot be empty." }, + Invalid_use_of_0_in_strict_mode: { code: 1100, category: 1, key: "Invalid use of '{0}' in strict mode." }, + with_statements_are_not_allowed_in_strict_mode: { code: 1101, category: 1, key: "'with' statements are not allowed in strict mode." }, + delete_cannot_be_called_on_an_identifier_in_strict_mode: { code: 1102, category: 1, key: "'delete' cannot be called on an identifier in strict mode." }, + A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement: { code: 1104, category: 1, key: "A 'continue' statement can only be used within an enclosing iteration statement." }, + A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement: { code: 1105, category: 1, key: "A 'break' statement can only be used within an enclosing iteration or switch statement." }, + Jump_target_cannot_cross_function_boundary: { code: 1107, category: 1, key: "Jump target cannot cross function boundary." }, + A_return_statement_can_only_be_used_within_a_function_body: { code: 1108, category: 1, key: "A 'return' statement can only be used within a function body." }, + Expression_expected: { code: 1109, category: 1, key: "Expression expected." }, + Type_expected: { code: 1110, category: 1, key: "Type expected." }, + A_class_member_cannot_be_declared_optional: { code: 1112, category: 1, key: "A class member cannot be declared optional." }, + A_default_clause_cannot_appear_more_than_once_in_a_switch_statement: { code: 1113, category: 1, key: "A 'default' clause cannot appear more than once in a 'switch' statement." }, + Duplicate_label_0: { code: 1114, category: 1, key: "Duplicate label '{0}'" }, + A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement: { code: 1115, category: 1, key: "A 'continue' statement can only jump to a label of an enclosing iteration statement." }, + A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement: { code: 1116, category: 1, key: "A 'break' statement can only jump to a label of an enclosing statement." }, + An_object_literal_cannot_have_multiple_properties_with_the_same_name_in_strict_mode: { code: 1117, category: 1, key: "An object literal cannot have multiple properties with the same name in strict mode." }, + An_object_literal_cannot_have_multiple_get_Slashset_accessors_with_the_same_name: { code: 1118, category: 1, key: "An object literal cannot have multiple get/set accessors with the same name." }, + An_object_literal_cannot_have_property_and_accessor_with_the_same_name: { code: 1119, category: 1, key: "An object literal cannot have property and accessor with the same name." }, + An_export_assignment_cannot_have_modifiers: { code: 1120, category: 1, key: "An export assignment cannot have modifiers." }, + Octal_literals_are_not_allowed_in_strict_mode: { code: 1121, category: 1, key: "Octal literals are not allowed in strict mode." }, + A_tuple_type_element_list_cannot_be_empty: { code: 1122, category: 1, key: "A tuple type element list cannot be empty." }, + Variable_declaration_list_cannot_be_empty: { code: 1123, category: 1, key: "Variable declaration list cannot be empty." }, + Digit_expected: { code: 1124, category: 1, key: "Digit expected." }, + Hexadecimal_digit_expected: { code: 1125, category: 1, key: "Hexadecimal digit expected." }, + Unexpected_end_of_text: { code: 1126, category: 1, key: "Unexpected end of text." }, + Invalid_character: { code: 1127, category: 1, key: "Invalid character." }, + Declaration_or_statement_expected: { code: 1128, category: 1, key: "Declaration or statement expected." }, + Statement_expected: { code: 1129, category: 1, key: "Statement expected." }, + case_or_default_expected: { code: 1130, category: 1, key: "'case' or 'default' expected." }, + Property_or_signature_expected: { code: 1131, category: 1, key: "Property or signature expected." }, + Enum_member_expected: { code: 1132, category: 1, key: "Enum member expected." }, + Type_reference_expected: { code: 1133, category: 1, key: "Type reference expected." }, + Variable_declaration_expected: { code: 1134, category: 1, key: "Variable declaration expected." }, + Argument_expression_expected: { code: 1135, category: 1, key: "Argument expression expected." }, + Property_assignment_expected: { code: 1136, category: 1, key: "Property assignment expected." }, + Expression_or_comma_expected: { code: 1137, category: 1, key: "Expression or comma expected." }, + Parameter_declaration_expected: { code: 1138, category: 1, key: "Parameter declaration expected." }, + Type_parameter_declaration_expected: { code: 1139, category: 1, key: "Type parameter declaration expected." }, + Type_argument_expected: { code: 1140, category: 1, key: "Type argument expected." }, + String_literal_expected: { code: 1141, category: 1, key: "String literal expected." }, + Line_break_not_permitted_here: { code: 1142, category: 1, key: "Line break not permitted here." }, + or_expected: { code: 1144, category: 1, key: "'{' or ';' expected." }, + Modifiers_not_permitted_on_index_signature_members: { code: 1145, category: 1, key: "Modifiers not permitted on index signature members." }, + Declaration_expected: { code: 1146, category: 1, key: "Declaration expected." }, + Import_declarations_in_an_internal_module_cannot_reference_an_external_module: { code: 1147, category: 1, key: "Import declarations in an internal module cannot reference an external module." }, + Cannot_compile_external_modules_unless_the_module_flag_is_provided: { code: 1148, category: 1, key: "Cannot compile external modules unless the '--module' flag is provided." }, + File_name_0_differs_from_already_included_file_name_1_only_in_casing: { code: 1149, category: 1, key: "File name '{0}' differs from already included file name '{1}' only in casing" }, + new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead: { code: 1150, category: 1, key: "'new T[]' cannot be used to create an array. Use 'new Array()' instead." }, + var_let_or_const_expected: { code: 1152, category: 1, key: "'var', 'let' or 'const' expected." }, + let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1153, category: 1, key: "'let' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1154, category: 1, key: "'const' declarations are only available when targeting ECMAScript 6 and higher." }, + const_declarations_must_be_initialized: { code: 1155, category: 1, key: "'const' declarations must be initialized" }, + const_declarations_can_only_be_declared_inside_a_block: { code: 1156, category: 1, key: "'const' declarations can only be declared inside a block." }, + let_declarations_can_only_be_declared_inside_a_block: { code: 1157, category: 1, key: "'let' declarations can only be declared inside a block." }, + Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1159, category: 1, key: "Tagged templates are only available when targeting ECMAScript 6 and higher." }, + Unterminated_template_literal: { code: 1160, category: 1, key: "Unterminated template literal." }, + Unterminated_regular_expression_literal: { code: 1161, category: 1, key: "Unterminated regular expression literal." }, + An_object_member_cannot_be_declared_optional: { code: 1162, category: 1, key: "An object member cannot be declared optional." }, + yield_expression_must_be_contained_within_a_generator_declaration: { code: 1163, category: 1, key: "'yield' expression must be contained_within a generator declaration." }, + Computed_property_names_are_not_allowed_in_enums: { code: 1164, category: 1, key: "Computed property names are not allowed in enums." }, + Computed_property_names_are_not_allowed_in_an_ambient_context: { code: 1165, category: 1, key: "Computed property names are not allowed in an ambient context." }, + Computed_property_names_are_not_allowed_in_class_property_declarations: { code: 1166, category: 1, key: "Computed property names are not allowed in class property declarations." }, + Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher: { code: 1167, category: 1, key: "Computed property names are only available when targeting ECMAScript 6 and higher." }, + Computed_property_names_are_not_allowed_in_method_overloads: { code: 1168, category: 1, key: "Computed property names are not allowed in method overloads." }, + Computed_property_names_are_not_allowed_in_interfaces: { code: 1169, category: 1, key: "Computed property names are not allowed in interfaces." }, + Computed_property_names_are_not_allowed_in_type_literals: { code: 1170, category: 1, key: "Computed property names are not allowed in type literals." }, + A_comma_expression_is_not_allowed_in_a_computed_property_name: { code: 1171, category: 1, key: "A comma expression is not allowed in a computed property name." }, + extends_clause_already_seen: { code: 1172, category: 1, key: "'extends' clause already seen." }, + extends_clause_must_precede_implements_clause: { code: 1173, category: 1, key: "'extends' clause must precede 'implements' clause." }, + Classes_can_only_extend_a_single_class: { code: 1174, category: 1, key: "Classes can only extend a single class." }, + implements_clause_already_seen: { code: 1175, category: 1, key: "'implements' clause already seen." }, + Interface_declaration_cannot_have_implements_clause: { code: 1176, category: 1, key: "Interface declaration cannot have 'implements' clause." }, + Binary_digit_expected: { code: 1177, category: 1, key: "Binary digit expected." }, + Octal_digit_expected: { code: 1178, category: 1, key: "Octal digit expected." }, + Unexpected_token_expected: { code: 1179, category: 1, key: "Unexpected token. '{' expected." }, + Property_destructuring_pattern_expected: { code: 1180, category: 1, key: "Property destructuring pattern expected." }, + Array_element_destructuring_pattern_expected: { code: 1181, category: 1, key: "Array element destructuring pattern expected." }, + A_destructuring_declaration_must_have_an_initializer: { code: 1182, category: 1, key: "A destructuring declaration must have an initializer." }, + Destructuring_declarations_are_not_allowed_in_ambient_contexts: { code: 1183, category: 1, key: "Destructuring declarations are not allowed in ambient contexts." }, + An_implementation_cannot_be_declared_in_ambient_contexts: { code: 1184, category: 1, key: "An implementation cannot be declared in ambient contexts." }, + Modifiers_cannot_appear_here: { code: 1184, category: 1, key: "Modifiers cannot appear here." }, + Merge_conflict_marker_encountered: { code: 1185, category: 1, key: "Merge conflict marker encountered." }, + A_rest_element_cannot_have_an_initializer: { code: 1186, category: 1, key: "A rest element cannot have an initializer." }, + A_parameter_property_may_not_be_a_binding_pattern: { code: 1187, category: 1, key: "A parameter property may not be a binding pattern." }, + Duplicate_identifier_0: { code: 2300, category: 1, key: "Duplicate identifier '{0}'." }, + Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor: { code: 2301, category: 1, key: "Initializer of instance member variable '{0}' cannot reference identifier '{1}' declared in the constructor." }, + Static_members_cannot_reference_class_type_parameters: { code: 2302, category: 1, key: "Static members cannot reference class type parameters." }, + Circular_definition_of_import_alias_0: { code: 2303, category: 1, key: "Circular definition of import alias '{0}'." }, + Cannot_find_name_0: { code: 2304, category: 1, key: "Cannot find name '{0}'." }, + Module_0_has_no_exported_member_1: { code: 2305, category: 1, key: "Module '{0}' has no exported member '{1}'." }, + File_0_is_not_an_external_module: { code: 2306, category: 1, key: "File '{0}' is not an external module." }, + Cannot_find_external_module_0: { code: 2307, category: 1, key: "Cannot find external module '{0}'." }, + A_module_cannot_have_more_than_one_export_assignment: { code: 2308, category: 1, key: "A module cannot have more than one export assignment." }, + An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements: { code: 2309, category: 1, key: "An export assignment cannot be used in a module with other exported elements." }, + Type_0_recursively_references_itself_as_a_base_type: { code: 2310, category: 1, key: "Type '{0}' recursively references itself as a base type." }, + A_class_may_only_extend_another_class: { code: 2311, category: 1, key: "A class may only extend another class." }, + An_interface_may_only_extend_a_class_or_another_interface: { code: 2312, category: 1, key: "An interface may only extend a class or another interface." }, + Constraint_of_a_type_parameter_cannot_reference_any_type_parameter_from_the_same_type_parameter_list: { code: 2313, category: 1, key: "Constraint of a type parameter cannot reference any type parameter from the same type parameter list." }, + Generic_type_0_requires_1_type_argument_s: { code: 2314, category: 1, key: "Generic type '{0}' requires {1} type argument(s)." }, + Type_0_is_not_generic: { code: 2315, category: 1, key: "Type '{0}' is not generic." }, + Global_type_0_must_be_a_class_or_interface_type: { code: 2316, category: 1, key: "Global type '{0}' must be a class or interface type." }, + Global_type_0_must_have_1_type_parameter_s: { code: 2317, category: 1, key: "Global type '{0}' must have {1} type parameter(s)." }, + Cannot_find_global_type_0: { code: 2318, category: 1, key: "Cannot find global type '{0}'." }, + Named_properties_0_of_types_1_and_2_are_not_identical: { code: 2319, category: 1, key: "Named properties '{0}' of types '{1}' and '{2}' are not identical." }, + Interface_0_cannot_simultaneously_extend_types_1_and_2: { code: 2320, category: 1, key: "Interface '{0}' cannot simultaneously extend types '{1}' and '{2}'." }, + Excessive_stack_depth_comparing_types_0_and_1: { code: 2321, category: 1, key: "Excessive stack depth comparing types '{0}' and '{1}'." }, + Type_0_is_not_assignable_to_type_1: { code: 2322, category: 1, key: "Type '{0}' is not assignable to type '{1}'." }, + Property_0_is_missing_in_type_1: { code: 2324, category: 1, key: "Property '{0}' is missing in type '{1}'." }, + Property_0_is_private_in_type_1_but_not_in_type_2: { code: 2325, category: 1, key: "Property '{0}' is private in type '{1}' but not in type '{2}'." }, + Types_of_property_0_are_incompatible: { code: 2326, category: 1, key: "Types of property '{0}' are incompatible." }, + Property_0_is_optional_in_type_1_but_required_in_type_2: { code: 2327, category: 1, key: "Property '{0}' is optional in type '{1}' but required in type '{2}'." }, + Types_of_parameters_0_and_1_are_incompatible: { code: 2328, category: 1, key: "Types of parameters '{0}' and '{1}' are incompatible." }, + Index_signature_is_missing_in_type_0: { code: 2329, category: 1, key: "Index signature is missing in type '{0}'." }, + Index_signatures_are_incompatible: { code: 2330, category: 1, key: "Index signatures are incompatible." }, + this_cannot_be_referenced_in_a_module_body: { code: 2331, category: 1, key: "'this' cannot be referenced in a module body." }, + this_cannot_be_referenced_in_current_location: { code: 2332, category: 1, key: "'this' cannot be referenced in current location." }, + this_cannot_be_referenced_in_constructor_arguments: { code: 2333, category: 1, key: "'this' cannot be referenced in constructor arguments." }, + this_cannot_be_referenced_in_a_static_property_initializer: { code: 2334, category: 1, key: "'this' cannot be referenced in a static property initializer." }, + super_can_only_be_referenced_in_a_derived_class: { code: 2335, category: 1, key: "'super' can only be referenced in a derived class." }, + super_cannot_be_referenced_in_constructor_arguments: { code: 2336, category: 1, key: "'super' cannot be referenced in constructor arguments." }, + Super_calls_are_not_permitted_outside_constructors_or_in_nested_functions_inside_constructors: { code: 2337, category: 1, key: "Super calls are not permitted outside constructors or in nested functions inside constructors" }, + super_property_access_is_permitted_only_in_a_constructor_member_function_or_member_accessor_of_a_derived_class: { code: 2338, category: 1, key: "'super' property access is permitted only in a constructor, member function, or member accessor of a derived class" }, + Property_0_does_not_exist_on_type_1: { code: 2339, category: 1, key: "Property '{0}' does not exist on type '{1}'." }, + Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword: { code: 2340, category: 1, key: "Only public and protected methods of the base class are accessible via the 'super' keyword" }, + Property_0_is_private_and_only_accessible_within_class_1: { code: 2341, category: 1, key: "Property '{0}' is private and only accessible within class '{1}'." }, + An_index_expression_argument_must_be_of_type_string_number_or_any: { code: 2342, category: 1, key: "An index expression argument must be of type 'string', 'number', or 'any'." }, + Type_0_does_not_satisfy_the_constraint_1: { code: 2344, category: 1, key: "Type '{0}' does not satisfy the constraint '{1}'." }, + Argument_of_type_0_is_not_assignable_to_parameter_of_type_1: { code: 2345, category: 1, key: "Argument of type '{0}' is not assignable to parameter of type '{1}'." }, + Supplied_parameters_do_not_match_any_signature_of_call_target: { code: 2346, category: 1, key: "Supplied parameters do not match any signature of call target." }, + Untyped_function_calls_may_not_accept_type_arguments: { code: 2347, category: 1, key: "Untyped function calls may not accept type arguments." }, + Value_of_type_0_is_not_callable_Did_you_mean_to_include_new: { code: 2348, category: 1, key: "Value of type '{0}' is not callable. Did you mean to include 'new'?" }, + Cannot_invoke_an_expression_whose_type_lacks_a_call_signature: { code: 2349, category: 1, key: "Cannot invoke an expression whose type lacks a call signature." }, + Only_a_void_function_can_be_called_with_the_new_keyword: { code: 2350, category: 1, key: "Only a void function can be called with the 'new' keyword." }, + Cannot_use_new_with_an_expression_whose_type_lacks_a_call_or_construct_signature: { code: 2351, category: 1, key: "Cannot use 'new' with an expression whose type lacks a call or construct signature." }, + Neither_type_0_nor_type_1_is_assignable_to_the_other: { code: 2352, category: 1, key: "Neither type '{0}' nor type '{1}' is assignable to the other." }, + No_best_common_type_exists_among_return_expressions: { code: 2354, category: 1, key: "No best common type exists among return expressions." }, + A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2355, category: 1, key: "A function whose declared type is neither 'void' nor 'any' must return a value or consist of a single 'throw' statement." }, + An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type: { code: 2356, category: 1, key: "An arithmetic operand must be of type 'any', 'number' or an enum type." }, + The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer: { code: 2357, category: 1, key: "The operand of an increment or decrement operator must be a variable, property or indexer." }, + The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2358, category: 1, key: "The left-hand side of an 'instanceof' expression must be of type 'any', an object type or a type parameter." }, + The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type: { code: 2359, category: 1, key: "The right-hand side of an 'instanceof' expression must be of type 'any' or of a type assignable to the 'Function' interface type." }, + The_left_hand_side_of_an_in_expression_must_be_of_types_any_string_or_number: { code: 2360, category: 1, key: "The left-hand side of an 'in' expression must be of types 'any', 'string' or 'number'." }, + The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2361, category: 1, key: "The right-hand side of an 'in' expression must be of type 'any', an object type or a type parameter" }, + The_left_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2362, category: 1, key: "The left-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, + The_right_hand_side_of_an_arithmetic_operation_must_be_of_type_any_number_or_an_enum_type: { code: 2363, category: 1, key: "The right-hand side of an arithmetic operation must be of type 'any', 'number' or an enum type." }, + Invalid_left_hand_side_of_assignment_expression: { code: 2364, category: 1, key: "Invalid left-hand side of assignment expression." }, + Operator_0_cannot_be_applied_to_types_1_and_2: { code: 2365, category: 1, key: "Operator '{0}' cannot be applied to types '{1}' and '{2}'." }, + Type_parameter_name_cannot_be_0: { code: 2368, category: 1, key: "Type parameter name cannot be '{0}'" }, + A_parameter_property_is_only_allowed_in_a_constructor_implementation: { code: 2369, category: 1, key: "A parameter property is only allowed in a constructor implementation." }, + A_rest_parameter_must_be_of_an_array_type: { code: 2370, category: 1, key: "A rest parameter must be of an array type." }, + A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation: { code: 2371, category: 1, key: "A parameter initializer is only allowed in a function or constructor implementation." }, + Parameter_0_cannot_be_referenced_in_its_initializer: { code: 2372, category: 1, key: "Parameter '{0}' cannot be referenced in its initializer." }, + Initializer_of_parameter_0_cannot_reference_identifier_1_declared_after_it: { code: 2373, category: 1, key: "Initializer of parameter '{0}' cannot reference identifier '{1}' declared after it." }, + Duplicate_string_index_signature: { code: 2374, category: 1, key: "Duplicate string index signature." }, + Duplicate_number_index_signature: { code: 2375, category: 1, key: "Duplicate number index signature." }, + A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties: { code: 2376, category: 1, key: "A 'super' call must be the first statement in the constructor when a class contains initialized properties or has parameter properties." }, + Constructors_for_derived_classes_must_contain_a_super_call: { code: 2377, category: 1, key: "Constructors for derived classes must contain a 'super' call." }, + A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement: { code: 2378, category: 1, key: "A 'get' accessor must return a value or consist of a single 'throw' statement." }, + Getter_and_setter_accessors_do_not_agree_in_visibility: { code: 2379, category: 1, key: "Getter and setter accessors do not agree in visibility." }, + get_and_set_accessor_must_have_the_same_type: { code: 2380, category: 1, key: "'get' and 'set' accessor must have the same type." }, + A_signature_with_an_implementation_cannot_use_a_string_literal_type: { code: 2381, category: 1, key: "A signature with an implementation cannot use a string literal type." }, + Specialized_overload_signature_is_not_assignable_to_any_non_specialized_signature: { code: 2382, category: 1, key: "Specialized overload signature is not assignable to any non-specialized signature." }, + Overload_signatures_must_all_be_exported_or_not_exported: { code: 2383, category: 1, key: "Overload signatures must all be exported or not exported." }, + Overload_signatures_must_all_be_ambient_or_non_ambient: { code: 2384, category: 1, key: "Overload signatures must all be ambient or non-ambient." }, + Overload_signatures_must_all_be_public_private_or_protected: { code: 2385, category: 1, key: "Overload signatures must all be public, private or protected." }, + Overload_signatures_must_all_be_optional_or_required: { code: 2386, category: 1, key: "Overload signatures must all be optional or required." }, + Function_overload_must_be_static: { code: 2387, category: 1, key: "Function overload must be static." }, + Function_overload_must_not_be_static: { code: 2388, category: 1, key: "Function overload must not be static." }, + Function_implementation_name_must_be_0: { code: 2389, category: 1, key: "Function implementation name must be '{0}'." }, + Constructor_implementation_is_missing: { code: 2390, category: 1, key: "Constructor implementation is missing." }, + Function_implementation_is_missing_or_not_immediately_following_the_declaration: { code: 2391, category: 1, key: "Function implementation is missing or not immediately following the declaration." }, + Multiple_constructor_implementations_are_not_allowed: { code: 2392, category: 1, key: "Multiple constructor implementations are not allowed." }, + Duplicate_function_implementation: { code: 2393, category: 1, key: "Duplicate function implementation." }, + Overload_signature_is_not_compatible_with_function_implementation: { code: 2394, category: 1, key: "Overload signature is not compatible with function implementation." }, + Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local: { code: 2395, category: 1, key: "Individual declarations in merged declaration {0} must be all exported or all local." }, + Duplicate_identifier_arguments_Compiler_uses_arguments_to_initialize_rest_parameters: { code: 2396, category: 1, key: "Duplicate identifier 'arguments'. Compiler uses 'arguments' to initialize rest parameters." }, + Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference: { code: 2399, category: 1, key: "Duplicate identifier '_this'. Compiler uses variable declaration '_this' to capture 'this' reference." }, + Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference: { code: 2400, category: 1, key: "Expression resolves to variable declaration '_this' that compiler uses to capture 'this' reference." }, + Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference: { code: 2401, category: 1, key: "Duplicate identifier '_super'. Compiler uses '_super' to capture base class reference." }, + Expression_resolves_to_super_that_compiler_uses_to_capture_base_class_reference: { code: 2402, category: 1, key: "Expression resolves to '_super' that compiler uses to capture base class reference." }, + Subsequent_variable_declarations_must_have_the_same_type_Variable_0_must_be_of_type_1_but_here_has_type_2: { code: 2403, category: 1, key: "Subsequent variable declarations must have the same type. Variable '{0}' must be of type '{1}', but here has type '{2}'." }, + The_left_hand_side_of_a_for_in_statement_cannot_use_a_type_annotation: { code: 2404, category: 1, key: "The left-hand side of a 'for...in' statement cannot use a type annotation." }, + The_left_hand_side_of_a_for_in_statement_must_be_of_type_string_or_any: { code: 2405, category: 1, key: "The left-hand side of a 'for...in' statement must be of type 'string' or 'any'." }, + Invalid_left_hand_side_in_for_in_statement: { code: 2406, category: 1, key: "Invalid left-hand side in 'for...in' statement." }, + The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter: { code: 2407, category: 1, key: "The right-hand side of a 'for...in' statement must be of type 'any', an object type or a type parameter." }, + Setters_cannot_return_a_value: { code: 2408, category: 1, key: "Setters cannot return a value." }, + Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class: { code: 2409, category: 1, key: "Return type of constructor signature must be assignable to the instance type of the class" }, + All_symbols_within_a_with_block_will_be_resolved_to_any: { code: 2410, category: 1, key: "All symbols within a 'with' block will be resolved to 'any'." }, + Property_0_of_type_1_is_not_assignable_to_string_index_type_2: { code: 2411, category: 1, key: "Property '{0}' of type '{1}' is not assignable to string index type '{2}'." }, + Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2: { code: 2412, category: 1, key: "Property '{0}' of type '{1}' is not assignable to numeric index type '{2}'." }, + Numeric_index_type_0_is_not_assignable_to_string_index_type_1: { code: 2413, category: 1, key: "Numeric index type '{0}' is not assignable to string index type '{1}'." }, + Class_name_cannot_be_0: { code: 2414, category: 1, key: "Class name cannot be '{0}'" }, + Class_0_incorrectly_extends_base_class_1: { code: 2415, category: 1, key: "Class '{0}' incorrectly extends base class '{1}'." }, + Class_static_side_0_incorrectly_extends_base_class_static_side_1: { code: 2417, category: 1, key: "Class static side '{0}' incorrectly extends base class static side '{1}'." }, + Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0: { code: 2419, category: 1, key: "Type name '{0}' in extends clause does not reference constructor function for '{0}'." }, + Class_0_incorrectly_implements_interface_1: { code: 2420, category: 1, key: "Class '{0}' incorrectly implements interface '{1}'." }, + A_class_may_only_implement_another_class_or_interface: { code: 2422, category: 1, key: "A class may only implement another class or interface." }, + Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor: { code: 2423, category: 1, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member accessor." }, + Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property: { code: 2424, category: 1, key: "Class '{0}' defines instance member function '{1}', but extended class '{2}' defines it as instance member property." }, + Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2425, category: 1, key: "Class '{0}' defines instance member property '{1}', but extended class '{2}' defines it as instance member function." }, + Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function: { code: 2426, category: 1, key: "Class '{0}' defines instance member accessor '{1}', but extended class '{2}' defines it as instance member function." }, + Interface_name_cannot_be_0: { code: 2427, category: 1, key: "Interface name cannot be '{0}'" }, + All_declarations_of_an_interface_must_have_identical_type_parameters: { code: 2428, category: 1, key: "All declarations of an interface must have identical type parameters." }, + Interface_0_incorrectly_extends_interface_1: { code: 2430, category: 1, key: "Interface '{0}' incorrectly extends interface '{1}'." }, + Enum_name_cannot_be_0: { code: 2431, category: 1, key: "Enum name cannot be '{0}'" }, + In_an_enum_with_multiple_declarations_only_one_declaration_can_omit_an_initializer_for_its_first_enum_element: { code: 2432, category: 1, key: "In an enum with multiple declarations, only one declaration can omit an initializer for its first enum element." }, + A_module_declaration_cannot_be_in_a_different_file_from_a_class_or_function_with_which_it_is_merged: { code: 2433, category: 1, key: "A module declaration cannot be in a different file from a class or function with which it is merged" }, + A_module_declaration_cannot_be_located_prior_to_a_class_or_function_with_which_it_is_merged: { code: 2434, category: 1, key: "A module declaration cannot be located prior to a class or function with which it is merged" }, + Ambient_external_modules_cannot_be_nested_in_other_modules: { code: 2435, category: 1, key: "Ambient external modules cannot be nested in other modules." }, + Ambient_external_module_declaration_cannot_specify_relative_module_name: { code: 2436, category: 1, key: "Ambient external module declaration cannot specify relative module name." }, + Module_0_is_hidden_by_a_local_declaration_with_the_same_name: { code: 2437, category: 1, key: "Module '{0}' is hidden by a local declaration with the same name" }, + Import_name_cannot_be_0: { code: 2438, category: 1, key: "Import name cannot be '{0}'" }, + Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name: { code: 2439, category: 1, key: "Import declaration in an ambient external module declaration cannot reference external module through relative external module name." }, + Import_declaration_conflicts_with_local_declaration_of_0: { code: 2440, category: 1, key: "Import declaration conflicts with local declaration of '{0}'" }, + Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module: { code: 2441, category: 1, key: "Duplicate identifier '{0}'. Compiler reserves name '{1}' in top level scope of an external module." }, + Types_have_separate_declarations_of_a_private_property_0: { code: 2442, category: 1, key: "Types have separate declarations of a private property '{0}'." }, + Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2: { code: 2443, category: 1, key: "Property '{0}' is protected but type '{1}' is not a class derived from '{2}'." }, + Property_0_is_protected_in_type_1_but_public_in_type_2: { code: 2444, category: 1, key: "Property '{0}' is protected in type '{1}' but public in type '{2}'." }, + Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses: { code: 2445, category: 1, key: "Property '{0}' is protected and only accessible within class '{1}' and its subclasses." }, + Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1: { code: 2446, category: 1, key: "Property '{0}' is protected and only accessible through an instance of class '{1}'." }, + The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead: { code: 2447, category: 1, key: "The '{0}' operator is not allowed for boolean types. Consider using '{1}' instead." }, + Block_scoped_variable_0_used_before_its_declaration: { code: 2448, category: 1, key: "Block-scoped variable '{0}' used before its declaration." }, + The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant: { code: 2449, category: 1, key: "The operand of an increment or decrement operator cannot be a constant." }, + Left_hand_side_of_assignment_expression_cannot_be_a_constant: { code: 2450, category: 1, key: "Left-hand side of assignment expression cannot be a constant." }, + Cannot_redeclare_block_scoped_variable_0: { code: 2451, category: 1, key: "Cannot redeclare block-scoped variable '{0}'." }, + An_enum_member_cannot_have_a_numeric_name: { code: 2452, category: 1, key: "An enum member cannot have a numeric name." }, + The_type_argument_for_type_parameter_0_cannot_be_inferred_from_the_usage_Consider_specifying_the_type_arguments_explicitly: { code: 2453, category: 1, key: "The type argument for type parameter '{0}' cannot be inferred from the usage. Consider specifying the type arguments explicitly." }, + Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0: { code: 2455, category: 1, key: "Type argument candidate '{1}' is not a valid type argument because it is not a supertype of candidate '{0}'." }, + Type_alias_0_circularly_references_itself: { code: 2456, category: 1, key: "Type alias '{0}' circularly references itself." }, + Type_alias_name_cannot_be_0: { code: 2457, category: 1, key: "Type alias name cannot be '{0}'" }, + An_AMD_module_cannot_have_multiple_name_assignments: { code: 2458, category: 1, key: "An AMD module cannot have multiple name assignments." }, + Type_0_has_no_property_1_and_no_string_index_signature: { code: 2459, category: 1, key: "Type '{0}' has no property '{1}' and no string index signature." }, + Type_0_has_no_property_1: { code: 2460, category: 1, key: "Type '{0}' has no property '{1}'." }, + Type_0_is_not_an_array_type: { code: 2461, category: 1, key: "Type '{0}' is not an array type." }, + A_rest_element_must_be_last_in_an_array_destructuring_pattern: { code: 2462, category: 1, key: "A rest element must be last in an array destructuring pattern" }, + A_binding_pattern_parameter_cannot_be_optional_in_an_implementation_signature: { code: 2463, category: 1, key: "A binding pattern parameter cannot be optional in an implementation signature." }, + A_computed_property_name_must_be_of_type_string_number_or_any: { code: 2464, category: 1, key: "A computed property name must be of type 'string', 'number', or 'any'." }, + this_cannot_be_referenced_in_a_computed_property_name: { code: 2465, category: 1, key: "'this' cannot be referenced in a computed property name." }, + super_cannot_be_referenced_in_a_computed_property_name: { code: 2466, category: 1, key: "'super' cannot be referenced in a computed property name." }, + A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type: { code: 2466, category: 1, key: "A computed property name cannot reference a type parameter from its containing type." }, + Import_declaration_0_is_using_private_name_1: { code: 4000, category: 1, key: "Import declaration '{0}' is using private name '{1}'." }, + Type_parameter_0_of_exported_class_has_or_is_using_private_name_1: { code: 4002, category: 1, key: "Type parameter '{0}' of exported class has or is using private name '{1}'." }, + Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4004, category: 1, key: "Type parameter '{0}' of exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4006, category: 1, key: "Type parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4008, category: 1, key: "Type parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4010, category: 1, key: "Type parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, + Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4012, category: 1, key: "Type parameter '{0}' of public method from exported class has or is using private name '{1}'." }, + Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4014, category: 1, key: "Type parameter '{0}' of method from exported interface has or is using private name '{1}'." }, + Type_parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4016, category: 1, key: "Type parameter '{0}' of exported function has or is using private name '{1}'." }, + Implements_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4019, category: 1, key: "Implements clause of exported class '{0}' has or is using private name '{1}'." }, + Extends_clause_of_exported_class_0_has_or_is_using_private_name_1: { code: 4020, category: 1, key: "Extends clause of exported class '{0}' has or is using private name '{1}'." }, + Extends_clause_of_exported_interface_0_has_or_is_using_private_name_1: { code: 4022, category: 1, key: "Extends clause of exported interface '{0}' has or is using private name '{1}'." }, + Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4023, category: 1, key: "Exported variable '{0}' has or is using name '{1}' from external module {2} but cannot be named." }, + Exported_variable_0_has_or_is_using_name_1_from_private_module_2: { code: 4024, category: 1, key: "Exported variable '{0}' has or is using name '{1}' from private module '{2}'." }, + Exported_variable_0_has_or_is_using_private_name_1: { code: 4025, category: 1, key: "Exported variable '{0}' has or is using private name '{1}'." }, + Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4026, category: 1, key: "Public static property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4027, category: 1, key: "Public static property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, + Public_static_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4028, category: 1, key: "Public static property '{0}' of exported class has or is using private name '{1}'." }, + Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4029, category: 1, key: "Public property '{0}' of exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4030, category: 1, key: "Public property '{0}' of exported class has or is using name '{1}' from private module '{2}'." }, + Public_property_0_of_exported_class_has_or_is_using_private_name_1: { code: 4031, category: 1, key: "Public property '{0}' of exported class has or is using private name '{1}'." }, + Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4032, category: 1, key: "Property '{0}' of exported interface has or is using name '{1}' from private module '{2}'." }, + Property_0_of_exported_interface_has_or_is_using_private_name_1: { code: 4033, category: 1, key: "Property '{0}' of exported interface has or is using private name '{1}'." }, + Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4034, category: 1, key: "Parameter '{0}' of public static property setter from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4035, category: 1, key: "Parameter '{0}' of public static property setter from exported class has or is using private name '{1}'." }, + Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4036, category: 1, key: "Parameter '{0}' of public property setter from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_property_setter_from_exported_class_has_or_is_using_private_name_1: { code: 4037, category: 1, key: "Parameter '{0}' of public property setter from exported class has or is using private name '{1}'." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4038, category: 1, key: "Return type of public static property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4039, category: 1, key: "Return type of public static property getter from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4040, category: 1, key: "Return type of public static property getter from exported class has or is using private name '{0}'." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4041, category: 1, key: "Return type of public property getter from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4042, category: 1, key: "Return type of public property getter from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0: { code: 4043, category: 1, key: "Return type of public property getter from exported class has or is using private name '{0}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4044, category: 1, key: "Return type of constructor signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4045, category: 1, key: "Return type of constructor signature from exported interface has or is using private name '{0}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4046, category: 1, key: "Return type of call signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4047, category: 1, key: "Return type of call signature from exported interface has or is using private name '{0}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4048, category: 1, key: "Return type of index signature from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0: { code: 4049, category: 1, key: "Return type of index signature from exported interface has or is using private name '{0}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4050, category: 1, key: "Return type of public static method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4051, category: 1, key: "Return type of public static method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0: { code: 4052, category: 1, key: "Return type of public static method from exported class has or is using private name '{0}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4053, category: 1, key: "Return type of public method from exported class has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1: { code: 4054, category: 1, key: "Return type of public method from exported class has or is using name '{0}' from private module '{1}'." }, + Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0: { code: 4055, category: 1, key: "Return type of public method from exported class has or is using private name '{0}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1: { code: 4056, category: 1, key: "Return type of method from exported interface has or is using name '{0}' from private module '{1}'." }, + Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0: { code: 4057, category: 1, key: "Return type of method from exported interface has or is using private name '{0}'." }, + Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named: { code: 4058, category: 1, key: "Return type of exported function has or is using name '{0}' from external module {1} but cannot be named." }, + Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1: { code: 4059, category: 1, key: "Return type of exported function has or is using name '{0}' from private module '{1}'." }, + Return_type_of_exported_function_has_or_is_using_private_name_0: { code: 4060, category: 1, key: "Return type of exported function has or is using private name '{0}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4061, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4062, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1: { code: 4063, category: 1, key: "Parameter '{0}' of constructor from exported class has or is using private name '{1}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4064, category: 1, key: "Parameter '{0}' of constructor signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4065, category: 1, key: "Parameter '{0}' of constructor signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4066, category: 1, key: "Parameter '{0}' of call signature from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1: { code: 4067, category: 1, key: "Parameter '{0}' of call signature from exported interface has or is using private name '{1}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4068, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4069, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1: { code: 4070, category: 1, key: "Parameter '{0}' of public static method from exported class has or is using private name '{1}'." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4071, category: 1, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2: { code: 4072, category: 1, key: "Parameter '{0}' of public method from exported class has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1: { code: 4073, category: 1, key: "Parameter '{0}' of public method from exported class has or is using private name '{1}'." }, + Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2: { code: 4074, category: 1, key: "Parameter '{0}' of method from exported interface has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1: { code: 4075, category: 1, key: "Parameter '{0}' of method from exported interface has or is using private name '{1}'." }, + Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named: { code: 4076, category: 1, key: "Parameter '{0}' of exported function has or is using name '{1}' from external module {2} but cannot be named." }, + Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2: { code: 4077, category: 1, key: "Parameter '{0}' of exported function has or is using name '{1}' from private module '{2}'." }, + Parameter_0_of_exported_function_has_or_is_using_private_name_1: { code: 4078, category: 1, key: "Parameter '{0}' of exported function has or is using private name '{1}'." }, + Exported_type_alias_0_has_or_is_using_private_name_1: { code: 4081, category: 1, key: "Exported type alias '{0}' has or is using private name '{1}'." }, + Enum_declarations_must_all_be_const_or_non_const: { code: 4082, category: 1, key: "Enum declarations must all be const or non-const." }, + In_const_enum_declarations_member_initializer_must_be_constant_expression: { code: 4083, category: 1, key: "In 'const' enum declarations member initializer must be constant expression." }, + const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment: { code: 4084, category: 1, key: "'const' enums can only be used in property or index access expressions or the right hand side of an import declaration or export assignment." }, + A_const_enum_member_can_only_be_accessed_using_a_string_literal: { code: 4085, category: 1, key: "A const enum member can only be accessed using a string literal." }, + const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 4086, category: 1, key: "'const' enum member initializer was evaluated to a non-finite value." }, + const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 4087, category: 1, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." }, + Property_0_does_not_exist_on_const_enum_1: { code: 4088, category: 1, key: "Property '{0}' does not exist on 'const' enum '{1}'." }, + The_current_host_does_not_support_the_0_option: { code: 5001, category: 1, key: "The current host does not support the '{0}' option." }, + Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: 1, key: "Cannot find the common subdirectory path for the input files." }, + Cannot_read_file_0_Colon_1: { code: 5012, category: 1, key: "Cannot read file '{0}': {1}" }, + Unsupported_file_encoding: { code: 5013, category: 1, key: "Unsupported file encoding." }, + Unknown_compiler_option_0: { code: 5023, category: 1, key: "Unknown compiler option '{0}'." }, + Compiler_option_0_requires_a_value_of_type_1: { code: 5024, category: 1, key: "Compiler option '{0}' requires a value of type {1}." }, + Could_not_write_file_0_Colon_1: { code: 5033, category: 1, key: "Could not write file '{0}': {1}" }, + Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5038, category: 1, key: "Option 'mapRoot' cannot be specified without specifying 'sourcemap' option." }, + Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option: { code: 5039, category: 1, key: "Option 'sourceRoot' cannot be specified without specifying 'sourcemap' option." }, + Option_noEmit_cannot_be_specified_with_option_out_or_outDir: { code: 5040, category: 1, key: "Option 'noEmit' cannot be specified with option 'out' or 'outDir'." }, + Option_noEmit_cannot_be_specified_with_option_declaration: { code: 5041, category: 1, key: "Option 'noEmit' cannot be specified with option 'declaration'." }, + Option_project_cannot_be_mixed_with_source_files_on_a_command_line: { code: 5042, category: 1, key: "Option 'project' cannot be mixed with source files on a command line." }, + Concatenate_and_emit_output_to_single_file: { code: 6001, category: 2, key: "Concatenate and emit output to single file." }, + Generates_corresponding_d_ts_file: { code: 6002, category: 2, key: "Generates corresponding '.d.ts' file." }, + Specifies_the_location_where_debugger_should_locate_map_files_instead_of_generated_locations: { code: 6003, category: 2, key: "Specifies the location where debugger should locate map files instead of generated locations." }, + Specifies_the_location_where_debugger_should_locate_TypeScript_files_instead_of_source_locations: { code: 6004, category: 2, key: "Specifies the location where debugger should locate TypeScript files instead of source locations." }, + Watch_input_files: { code: 6005, category: 2, key: "Watch input files." }, + Redirect_output_structure_to_the_directory: { code: 6006, category: 2, key: "Redirect output structure to the directory." }, + Do_not_erase_const_enum_declarations_in_generated_code: { code: 6007, category: 2, key: "Do not erase const enum declarations in generated code." }, + Do_not_emit_outputs_if_any_type_checking_errors_were_reported: { code: 6008, category: 2, key: "Do not emit outputs if any type checking errors were reported." }, + Do_not_emit_comments_to_output: { code: 6009, category: 2, key: "Do not emit comments to output." }, + Do_not_emit_outputs: { code: 6010, category: 2, key: "Do not emit outputs." }, + Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental: { code: 6015, category: 2, key: "Specify ECMAScript target version: 'ES3' (default), 'ES5', or 'ES6' (experimental)" }, + Specify_module_code_generation_Colon_commonjs_or_amd: { code: 6016, category: 2, key: "Specify module code generation: 'commonjs' or 'amd'" }, + Print_this_message: { code: 6017, category: 2, key: "Print this message." }, + Print_the_compiler_s_version: { code: 6019, category: 2, key: "Print the compiler's version." }, + Compile_the_project_in_the_given_directory: { code: 6020, category: 2, key: "Compile the project in the given directory." }, + Syntax_Colon_0: { code: 6023, category: 2, key: "Syntax: {0}" }, + options: { code: 6024, category: 2, key: "options" }, + file: { code: 6025, category: 2, key: "file" }, + Examples_Colon_0: { code: 6026, category: 2, key: "Examples: {0}" }, + Options_Colon: { code: 6027, category: 2, key: "Options:" }, + Version_0: { code: 6029, category: 2, key: "Version {0}" }, + Insert_command_line_options_and_files_from_a_file: { code: 6030, category: 2, key: "Insert command line options and files from a file." }, + File_change_detected_Starting_incremental_compilation: { code: 6032, category: 2, key: "File change detected. Starting incremental compilation..." }, + KIND: { code: 6034, category: 2, key: "KIND" }, + FILE: { code: 6035, category: 2, key: "FILE" }, + VERSION: { code: 6036, category: 2, key: "VERSION" }, + LOCATION: { code: 6037, category: 2, key: "LOCATION" }, + DIRECTORY: { code: 6038, category: 2, key: "DIRECTORY" }, + Compilation_complete_Watching_for_file_changes: { code: 6042, category: 2, key: "Compilation complete. Watching for file changes." }, + Generates_corresponding_map_file: { code: 6043, category: 2, key: "Generates corresponding '.map' file." }, + Compiler_option_0_expects_an_argument: { code: 6044, category: 1, key: "Compiler option '{0}' expects an argument." }, + Unterminated_quoted_string_in_response_file_0: { code: 6045, category: 1, key: "Unterminated quoted string in response file '{0}'." }, + Argument_for_module_option_must_be_commonjs_or_amd: { code: 6046, category: 1, key: "Argument for '--module' option must be 'commonjs' or 'amd'." }, + Argument_for_target_option_must_be_es3_es5_or_es6: { code: 6047, category: 1, key: "Argument for '--target' option must be 'es3', 'es5', or 'es6'." }, + Locale_must_be_of_the_form_language_or_language_territory_For_example_0_or_1: { code: 6048, category: 1, key: "Locale must be of the form or -. For example '{0}' or '{1}'." }, + Unsupported_locale_0: { code: 6049, category: 1, key: "Unsupported locale '{0}'." }, + Unable_to_open_file_0: { code: 6050, category: 1, key: "Unable to open file '{0}'." }, + Corrupted_locale_file_0: { code: 6051, category: 1, key: "Corrupted locale file {0}." }, + Raise_error_on_expressions_and_declarations_with_an_implied_any_type: { code: 6052, category: 2, key: "Raise error on expressions and declarations with an implied 'any' type." }, + File_0_not_found: { code: 6053, category: 1, key: "File '{0}' not found." }, + File_0_must_have_extension_ts_or_d_ts: { code: 6054, category: 1, key: "File '{0}' must have extension '.ts' or '.d.ts'." }, + Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures: { code: 6055, category: 2, key: "Suppress noImplicitAny errors for indexing objects lacking index signatures." }, + Do_not_emit_declarations_for_code_that_has_an_internal_annotation: { code: 6056, category: 2, key: "Do not emit declarations for code that has an '@internal' annotation." }, + Variable_0_implicitly_has_an_1_type: { code: 7005, category: 1, key: "Variable '{0}' implicitly has an '{1}' type." }, + Parameter_0_implicitly_has_an_1_type: { code: 7006, category: 1, key: "Parameter '{0}' implicitly has an '{1}' type." }, + Member_0_implicitly_has_an_1_type: { code: 7008, category: 1, key: "Member '{0}' implicitly has an '{1}' type." }, + new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type: { code: 7009, category: 1, key: "'new' expression, whose target lacks a construct signature, implicitly has an 'any' type." }, + _0_which_lacks_return_type_annotation_implicitly_has_an_1_return_type: { code: 7010, category: 1, key: "'{0}', which lacks return-type annotation, implicitly has an '{1}' return type." }, + Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type: { code: 7011, category: 1, key: "Function expression, which lacks return-type annotation, implicitly has an '{0}' return type." }, + Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7013, category: 1, key: "Construct signature, which lacks return-type annotation, implicitly has an 'any' return type." }, + Property_0_implicitly_has_type_any_because_its_set_accessor_lacks_a_type_annotation: { code: 7016, category: 1, key: "Property '{0}' implicitly has type 'any', because its 'set' accessor lacks a type annotation." }, + Index_signature_of_object_type_implicitly_has_an_any_type: { code: 7017, category: 1, key: "Index signature of object type implicitly has an 'any' type." }, + Object_literal_s_property_0_implicitly_has_an_1_type: { code: 7018, category: 1, key: "Object literal's property '{0}' implicitly has an '{1}' type." }, + Rest_parameter_0_implicitly_has_an_any_type: { code: 7019, category: 1, key: "Rest parameter '{0}' implicitly has an 'any[]' type." }, + Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type: { code: 7020, category: 1, key: "Call signature, which lacks return-type annotation, implicitly has an 'any' return type." }, + _0_implicitly_has_type_any_because_it_is_referenced_directly_or_indirectly_in_its_own_type_annotation: { code: 7021, category: 1, key: "'{0}' implicitly has type 'any' because it is referenced directly or indirectly in its own type annotation." }, + _0_implicitly_has_type_any_because_it_is_does_not_have_a_type_annotation_and_is_referenced_directly_or_indirectly_in_its_own_initializer: { code: 7022, category: 1, key: "'{0}' implicitly has type 'any' because it is does not have a type annotation and is referenced directly or indirectly in its own initializer." }, + _0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7023, category: 1, key: "'{0}' implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, + Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions: { code: 7024, category: 1, key: "Function implicitly has return type 'any' because it does not have a return type annotation and is referenced directly or indirectly in one of its return expressions." }, + You_cannot_rename_this_element: { code: 8000, category: 1, key: "You cannot rename this element." }, + You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library: { code: 8001, category: 1, key: "You cannot rename elements that are defined in the standard TypeScript library." }, + yield_expressions_are_not_currently_supported: { code: 9000, category: 1, key: "'yield' expressions are not currently supported." }, + Generators_are_not_currently_supported: { code: 9001, category: 1, key: "Generators are not currently supported." }, + The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression: { code: 9002, category: 1, key: "The 'arguments' object cannot be referenced in an arrow function. Consider using a standard function expression." } }; })(ts || (ts = {})); var ts; (function (ts) { var textToToken = { - "any": 110 /* AnyKeyword */, - "boolean": 111 /* BooleanKeyword */, - "break": 65 /* BreakKeyword */, - "case": 66 /* CaseKeyword */, - "catch": 67 /* CatchKeyword */, - "class": 68 /* ClassKeyword */, - "continue": 70 /* ContinueKeyword */, - "const": 69 /* ConstKeyword */, - "constructor": 112 /* ConstructorKeyword */, - "debugger": 71 /* DebuggerKeyword */, - "declare": 113 /* DeclareKeyword */, - "default": 72 /* DefaultKeyword */, - "delete": 73 /* DeleteKeyword */, - "do": 74 /* DoKeyword */, - "else": 75 /* ElseKeyword */, - "enum": 76 /* EnumKeyword */, - "export": 77 /* ExportKeyword */, - "extends": 78 /* ExtendsKeyword */, - "false": 79 /* FalseKeyword */, - "finally": 80 /* FinallyKeyword */, - "for": 81 /* ForKeyword */, - "function": 82 /* FunctionKeyword */, - "get": 114 /* GetKeyword */, - "if": 83 /* IfKeyword */, - "implements": 101 /* ImplementsKeyword */, - "import": 84 /* ImportKeyword */, - "in": 85 /* InKeyword */, - "instanceof": 86 /* InstanceOfKeyword */, - "interface": 102 /* InterfaceKeyword */, - "let": 103 /* LetKeyword */, - "module": 115 /* ModuleKeyword */, - "new": 87 /* NewKeyword */, - "null": 88 /* NullKeyword */, - "number": 117 /* NumberKeyword */, - "package": 104 /* PackageKeyword */, - "private": 105 /* PrivateKeyword */, - "protected": 106 /* ProtectedKeyword */, - "public": 107 /* PublicKeyword */, - "require": 116 /* RequireKeyword */, - "return": 89 /* ReturnKeyword */, - "set": 118 /* SetKeyword */, - "static": 108 /* StaticKeyword */, - "string": 119 /* StringKeyword */, - "super": 90 /* SuperKeyword */, - "switch": 91 /* SwitchKeyword */, - "this": 92 /* ThisKeyword */, - "throw": 93 /* ThrowKeyword */, - "true": 94 /* TrueKeyword */, - "try": 95 /* TryKeyword */, - "type": 120 /* TypeKeyword */, - "typeof": 96 /* TypeOfKeyword */, - "var": 97 /* VarKeyword */, - "void": 98 /* VoidKeyword */, - "while": 99 /* WhileKeyword */, - "with": 100 /* WithKeyword */, - "yield": 109 /* YieldKeyword */, - "{": 14 /* OpenBraceToken */, - "}": 15 /* CloseBraceToken */, - "(": 16 /* OpenParenToken */, - ")": 17 /* CloseParenToken */, - "[": 18 /* OpenBracketToken */, - "]": 19 /* CloseBracketToken */, - ".": 20 /* DotToken */, - "...": 21 /* DotDotDotToken */, - ";": 22 /* SemicolonToken */, - ",": 23 /* CommaToken */, - "<": 24 /* LessThanToken */, - ">": 25 /* GreaterThanToken */, - "<=": 26 /* LessThanEqualsToken */, - ">=": 27 /* GreaterThanEqualsToken */, - "==": 28 /* EqualsEqualsToken */, - "!=": 29 /* ExclamationEqualsToken */, - "===": 30 /* EqualsEqualsEqualsToken */, - "!==": 31 /* ExclamationEqualsEqualsToken */, - "=>": 32 /* EqualsGreaterThanToken */, - "+": 33 /* PlusToken */, - "-": 34 /* MinusToken */, - "*": 35 /* AsteriskToken */, - "/": 36 /* SlashToken */, - "%": 37 /* PercentToken */, - "++": 38 /* PlusPlusToken */, - "--": 39 /* MinusMinusToken */, - "<<": 40 /* LessThanLessThanToken */, - ">>": 41 /* GreaterThanGreaterThanToken */, - ">>>": 42 /* GreaterThanGreaterThanGreaterThanToken */, - "&": 43 /* AmpersandToken */, - "|": 44 /* BarToken */, - "^": 45 /* CaretToken */, - "!": 46 /* ExclamationToken */, - "~": 47 /* TildeToken */, - "&&": 48 /* AmpersandAmpersandToken */, - "||": 49 /* BarBarToken */, - "?": 50 /* QuestionToken */, - ":": 51 /* ColonToken */, - "=": 52 /* EqualsToken */, - "+=": 53 /* PlusEqualsToken */, - "-=": 54 /* MinusEqualsToken */, - "*=": 55 /* AsteriskEqualsToken */, - "/=": 56 /* SlashEqualsToken */, - "%=": 57 /* PercentEqualsToken */, - "<<=": 58 /* LessThanLessThanEqualsToken */, - ">>=": 59 /* GreaterThanGreaterThanEqualsToken */, - ">>>=": 60 /* GreaterThanGreaterThanGreaterThanEqualsToken */, - "&=": 61 /* AmpersandEqualsToken */, - "|=": 62 /* BarEqualsToken */, - "^=": 63 /* CaretEqualsToken */ + "any": 110, + "boolean": 111, + "break": 65, + "case": 66, + "catch": 67, + "class": 68, + "continue": 70, + "const": 69, + "constructor": 112, + "debugger": 71, + "declare": 113, + "default": 72, + "delete": 73, + "do": 74, + "else": 75, + "enum": 76, + "export": 77, + "extends": 78, + "false": 79, + "finally": 80, + "for": 81, + "function": 82, + "get": 114, + "if": 83, + "implements": 101, + "import": 84, + "in": 85, + "instanceof": 86, + "interface": 102, + "let": 103, + "module": 115, + "new": 87, + "null": 88, + "number": 117, + "package": 104, + "private": 105, + "protected": 106, + "public": 107, + "require": 116, + "return": 89, + "set": 118, + "static": 108, + "string": 119, + "super": 90, + "switch": 91, + "this": 92, + "throw": 93, + "true": 94, + "try": 95, + "type": 120, + "typeof": 96, + "var": 97, + "void": 98, + "while": 99, + "with": 100, + "yield": 109, + "{": 14, + "}": 15, + "(": 16, + ")": 17, + "[": 18, + "]": 19, + ".": 20, + "...": 21, + ";": 22, + ",": 23, + "<": 24, + ">": 25, + "<=": 26, + ">=": 27, + "==": 28, + "!=": 29, + "===": 30, + "!==": 31, + "=>": 32, + "+": 33, + "-": 34, + "*": 35, + "/": 36, + "%": 37, + "++": 38, + "--": 39, + "<<": 40, + ">>": 41, + ">>>": 42, + "&": 43, + "|": 44, + "^": 45, + "!": 46, + "~": 47, + "&&": 48, + "||": 49, + "?": 50, + ":": 51, + "=": 52, + "+=": 53, + "-=": 54, + "*=": 55, + "/=": 56, + "%=": 57, + "<<=": 58, + ">>=": 59, + ">>>=": 60, + "&=": 61, + "|=": 62, + "^=": 63 }; var unicodeES3IdentifierStart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1610, 1649, 1747, 1749, 1749, 1765, 1766, 1786, 1788, 1808, 1808, 1810, 1836, 1920, 1957, 2309, 2361, 2365, 2365, 2384, 2384, 2392, 2401, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2524, 2525, 2527, 2529, 2544, 2545, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2652, 2654, 2654, 2674, 2676, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2749, 2749, 2768, 2768, 2784, 2784, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2877, 2877, 2908, 2909, 2911, 2913, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3168, 3169, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3294, 3294, 3296, 3297, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3424, 3425, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3585, 3632, 3634, 3635, 3648, 3654, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3760, 3762, 3763, 3773, 3773, 3776, 3780, 3782, 3782, 3804, 3805, 3840, 3840, 3904, 3911, 3913, 3946, 3976, 3979, 4096, 4129, 4131, 4135, 4137, 4138, 4176, 4181, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6067, 6176, 6263, 6272, 6312, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8319, 8319, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12329, 12337, 12341, 12344, 12346, 12353, 12436, 12445, 12446, 12449, 12538, 12540, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64285, 64287, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65136, 65138, 65140, 65140, 65142, 65276, 65313, 65338, 65345, 65370, 65382, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; var unicodeES3IdentifierPart = [170, 170, 181, 181, 186, 186, 192, 214, 216, 246, 248, 543, 546, 563, 592, 685, 688, 696, 699, 705, 720, 721, 736, 740, 750, 750, 768, 846, 864, 866, 890, 890, 902, 902, 904, 906, 908, 908, 910, 929, 931, 974, 976, 983, 986, 1011, 1024, 1153, 1155, 1158, 1164, 1220, 1223, 1224, 1227, 1228, 1232, 1269, 1272, 1273, 1329, 1366, 1369, 1369, 1377, 1415, 1425, 1441, 1443, 1465, 1467, 1469, 1471, 1471, 1473, 1474, 1476, 1476, 1488, 1514, 1520, 1522, 1569, 1594, 1600, 1621, 1632, 1641, 1648, 1747, 1749, 1756, 1759, 1768, 1770, 1773, 1776, 1788, 1808, 1836, 1840, 1866, 1920, 1968, 2305, 2307, 2309, 2361, 2364, 2381, 2384, 2388, 2392, 2403, 2406, 2415, 2433, 2435, 2437, 2444, 2447, 2448, 2451, 2472, 2474, 2480, 2482, 2482, 2486, 2489, 2492, 2492, 2494, 2500, 2503, 2504, 2507, 2509, 2519, 2519, 2524, 2525, 2527, 2531, 2534, 2545, 2562, 2562, 2565, 2570, 2575, 2576, 2579, 2600, 2602, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2620, 2620, 2622, 2626, 2631, 2632, 2635, 2637, 2649, 2652, 2654, 2654, 2662, 2676, 2689, 2691, 2693, 2699, 2701, 2701, 2703, 2705, 2707, 2728, 2730, 2736, 2738, 2739, 2741, 2745, 2748, 2757, 2759, 2761, 2763, 2765, 2768, 2768, 2784, 2784, 2790, 2799, 2817, 2819, 2821, 2828, 2831, 2832, 2835, 2856, 2858, 2864, 2866, 2867, 2870, 2873, 2876, 2883, 2887, 2888, 2891, 2893, 2902, 2903, 2908, 2909, 2911, 2913, 2918, 2927, 2946, 2947, 2949, 2954, 2958, 2960, 2962, 2965, 2969, 2970, 2972, 2972, 2974, 2975, 2979, 2980, 2984, 2986, 2990, 2997, 2999, 3001, 3006, 3010, 3014, 3016, 3018, 3021, 3031, 3031, 3047, 3055, 3073, 3075, 3077, 3084, 3086, 3088, 3090, 3112, 3114, 3123, 3125, 3129, 3134, 3140, 3142, 3144, 3146, 3149, 3157, 3158, 3168, 3169, 3174, 3183, 3202, 3203, 3205, 3212, 3214, 3216, 3218, 3240, 3242, 3251, 3253, 3257, 3262, 3268, 3270, 3272, 3274, 3277, 3285, 3286, 3294, 3294, 3296, 3297, 3302, 3311, 3330, 3331, 3333, 3340, 3342, 3344, 3346, 3368, 3370, 3385, 3390, 3395, 3398, 3400, 3402, 3405, 3415, 3415, 3424, 3425, 3430, 3439, 3458, 3459, 3461, 3478, 3482, 3505, 3507, 3515, 3517, 3517, 3520, 3526, 3530, 3530, 3535, 3540, 3542, 3542, 3544, 3551, 3570, 3571, 3585, 3642, 3648, 3662, 3664, 3673, 3713, 3714, 3716, 3716, 3719, 3720, 3722, 3722, 3725, 3725, 3732, 3735, 3737, 3743, 3745, 3747, 3749, 3749, 3751, 3751, 3754, 3755, 3757, 3769, 3771, 3773, 3776, 3780, 3782, 3782, 3784, 3789, 3792, 3801, 3804, 3805, 3840, 3840, 3864, 3865, 3872, 3881, 3893, 3893, 3895, 3895, 3897, 3897, 3902, 3911, 3913, 3946, 3953, 3972, 3974, 3979, 3984, 3991, 3993, 4028, 4038, 4038, 4096, 4129, 4131, 4135, 4137, 4138, 4140, 4146, 4150, 4153, 4160, 4169, 4176, 4185, 4256, 4293, 4304, 4342, 4352, 4441, 4447, 4514, 4520, 4601, 4608, 4614, 4616, 4678, 4680, 4680, 4682, 4685, 4688, 4694, 4696, 4696, 4698, 4701, 4704, 4742, 4744, 4744, 4746, 4749, 4752, 4782, 4784, 4784, 4786, 4789, 4792, 4798, 4800, 4800, 4802, 4805, 4808, 4814, 4816, 4822, 4824, 4846, 4848, 4878, 4880, 4880, 4882, 4885, 4888, 4894, 4896, 4934, 4936, 4954, 4969, 4977, 5024, 5108, 5121, 5740, 5743, 5750, 5761, 5786, 5792, 5866, 6016, 6099, 6112, 6121, 6160, 6169, 6176, 6263, 6272, 6313, 7680, 7835, 7840, 7929, 7936, 7957, 7960, 7965, 7968, 8005, 8008, 8013, 8016, 8023, 8025, 8025, 8027, 8027, 8029, 8029, 8031, 8061, 8064, 8116, 8118, 8124, 8126, 8126, 8130, 8132, 8134, 8140, 8144, 8147, 8150, 8155, 8160, 8172, 8178, 8180, 8182, 8188, 8255, 8256, 8319, 8319, 8400, 8412, 8417, 8417, 8450, 8450, 8455, 8455, 8458, 8467, 8469, 8469, 8473, 8477, 8484, 8484, 8486, 8486, 8488, 8488, 8490, 8493, 8495, 8497, 8499, 8505, 8544, 8579, 12293, 12295, 12321, 12335, 12337, 12341, 12344, 12346, 12353, 12436, 12441, 12442, 12445, 12446, 12449, 12542, 12549, 12588, 12593, 12686, 12704, 12727, 13312, 19893, 19968, 40869, 40960, 42124, 44032, 55203, 63744, 64045, 64256, 64262, 64275, 64279, 64285, 64296, 64298, 64310, 64312, 64316, 64318, 64318, 64320, 64321, 64323, 64324, 64326, 64433, 64467, 64829, 64848, 64911, 64914, 64967, 65008, 65019, 65056, 65059, 65075, 65076, 65101, 65103, 65136, 65138, 65140, 65140, 65142, 65276, 65296, 65305, 65313, 65338, 65343, 65343, 65345, 65370, 65381, 65470, 65474, 65479, 65482, 65487, 65490, 65495, 65498, 65500,]; @@ -2030,10 +2031,10 @@ var ts; return false; } function isUnicodeIdentifierStart(code, languageVersion) { - return languageVersion >= 1 /* ES5 */ ? lookupInUnicodeMap(code, unicodeES5IdentifierStart) : lookupInUnicodeMap(code, unicodeES3IdentifierStart); + return languageVersion >= 1 ? lookupInUnicodeMap(code, unicodeES5IdentifierStart) : lookupInUnicodeMap(code, unicodeES3IdentifierStart); } function isUnicodeIdentifierPart(code, languageVersion) { - return languageVersion >= 1 /* ES5 */ ? lookupInUnicodeMap(code, unicodeES5IdentifierPart) : lookupInUnicodeMap(code, unicodeES3IdentifierPart); + return languageVersion >= 1 ? lookupInUnicodeMap(code, unicodeES5IdentifierPart) : lookupInUnicodeMap(code, unicodeES3IdentifierPart); } function makeReverseMap(source) { var result = []; @@ -2056,16 +2057,16 @@ var ts; while (pos < text.length) { var ch = text.charCodeAt(pos++); switch (ch) { - case 13 /* carriageReturn */: - if (text.charCodeAt(pos) === 10 /* lineFeed */) { + case 13: + if (text.charCodeAt(pos) === 10) { pos++; } - case 10 /* lineFeed */: + case 10: result.push(lineStart); lineStart = pos; break; default: - if (ch > 127 /* maxAsciiCharacter */ && isLineBreak(ch)) { + if (ch > 127 && isLineBreak(ch)) { result.push(lineStart); lineStart = pos; } @@ -2076,12 +2077,20 @@ var ts; return result; } ts.computeLineStarts = computeLineStarts; - function getPositionFromLineAndCharacter(lineStarts, line, character) { + function getPositionFromLineAndCharacter(sourceFile, line, character) { + return computePositionFromLineAndCharacter(getLineStarts(sourceFile), line, character); + } + ts.getPositionFromLineAndCharacter = getPositionFromLineAndCharacter; + function computePositionFromLineAndCharacter(lineStarts, line, character) { ts.Debug.assert(line > 0 && line <= lineStarts.length); return lineStarts[line - 1] + character - 1; } - ts.getPositionFromLineAndCharacter = getPositionFromLineAndCharacter; - function getLineAndCharacterOfPosition(lineStarts, position) { + ts.computePositionFromLineAndCharacter = computePositionFromLineAndCharacter; + function getLineStarts(sourceFile) { + return sourceFile.lineMap || (sourceFile.lineMap = computeLineStarts(sourceFile.text)); + } + ts.getLineStarts = getLineStarts; + function computeLineAndCharacterOfPosition(lineStarts, position) { var lineNumber = ts.binarySearch(lineStarts, position); if (lineNumber < 0) { lineNumber = (~lineNumber) - 1; @@ -2091,50 +2100,49 @@ var ts; character: position - lineStarts[lineNumber] + 1 }; } - ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition; - function positionToLineAndCharacter(text, pos) { - var lineStarts = computeLineStarts(text); - return getLineAndCharacterOfPosition(lineStarts, pos); + ts.computeLineAndCharacterOfPosition = computeLineAndCharacterOfPosition; + function getLineAndCharacterOfPosition(sourceFile, position) { + return computeLineAndCharacterOfPosition(getLineStarts(sourceFile), position); } - ts.positionToLineAndCharacter = positionToLineAndCharacter; + ts.getLineAndCharacterOfPosition = getLineAndCharacterOfPosition; var hasOwnProperty = Object.prototype.hasOwnProperty; function isWhiteSpace(ch) { - return ch === 32 /* space */ || ch === 9 /* tab */ || ch === 11 /* verticalTab */ || ch === 12 /* formFeed */ || ch === 160 /* nonBreakingSpace */ || ch === 5760 /* ogham */ || ch >= 8192 /* enQuad */ && ch <= 8203 /* zeroWidthSpace */ || ch === 8239 /* narrowNoBreakSpace */ || ch === 8287 /* mathematicalSpace */ || ch === 12288 /* ideographicSpace */ || ch === 65279 /* byteOrderMark */; + return ch === 32 || ch === 9 || ch === 11 || ch === 12 || ch === 160 || ch === 5760 || ch >= 8192 && ch <= 8203 || ch === 8239 || ch === 8287 || ch === 12288 || ch === 65279; } ts.isWhiteSpace = isWhiteSpace; function isLineBreak(ch) { - return ch === 10 /* lineFeed */ || ch === 13 /* carriageReturn */ || ch === 8232 /* lineSeparator */ || ch === 8233 /* paragraphSeparator */ || ch === 133 /* nextLine */; + return ch === 10 || ch === 13 || ch === 8232 || ch === 8233 || ch === 133; } ts.isLineBreak = isLineBreak; function isDigit(ch) { - return ch >= 48 /* _0 */ && ch <= 57 /* _9 */; + return ch >= 48 && ch <= 57; } function isOctalDigit(ch) { - return ch >= 48 /* _0 */ && ch <= 55 /* _7 */; + return ch >= 48 && ch <= 55; } ts.isOctalDigit = isOctalDigit; function skipTrivia(text, pos, stopAfterLineBreak) { while (true) { var ch = text.charCodeAt(pos); switch (ch) { - case 13 /* carriageReturn */: - if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) { + case 13: + if (text.charCodeAt(pos + 1) === 10) { pos++; } - case 10 /* lineFeed */: + case 10: pos++; if (stopAfterLineBreak) { return pos; } continue; - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 32 /* space */: + case 9: + case 11: + case 12: + case 32: pos++; continue; - case 47 /* slash */: - if (text.charCodeAt(pos + 1) === 47 /* slash */) { + case 47: + if (text.charCodeAt(pos + 1) === 47) { pos += 2; while (pos < text.length) { if (isLineBreak(text.charCodeAt(pos))) { @@ -2144,10 +2152,10 @@ var ts; } continue; } - if (text.charCodeAt(pos + 1) === 42 /* asterisk */) { + if (text.charCodeAt(pos + 1) === 42) { pos += 2; while (pos < text.length) { - if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { + if (text.charCodeAt(pos) === 42 && text.charCodeAt(pos + 1) === 47) { pos += 2; break; } @@ -2156,16 +2164,16 @@ var ts; continue; } break; - case 60 /* lessThan */: - case 61 /* equals */: - case 62 /* greaterThan */: + case 60: + case 61: + case 62: if (isConflictMarkerTrivia(text, pos)) { pos = scanConflictMarkerTrivia(text, pos); continue; } break; default: - if (ch > 127 /* maxAsciiCharacter */ && (isWhiteSpace(ch) || isLineBreak(ch))) { + if (ch > 127 && (isWhiteSpace(ch) || isLineBreak(ch))) { pos++; continue; } @@ -2186,7 +2194,7 @@ var ts; return false; } } - return ch === 61 /* equals */ || text.charCodeAt(pos + mergeConflictMarkerLength) === 32 /* space */; + return ch === 61 || text.charCodeAt(pos + mergeConflictMarkerLength) === 32; } } return false; @@ -2197,16 +2205,16 @@ var ts; } var ch = text.charCodeAt(pos); var len = text.length; - if (ch === 60 /* lessThan */ || ch === 62 /* greaterThan */) { + if (ch === 60 || ch === 62) { while (pos < len && !isLineBreak(text.charCodeAt(pos))) { pos++; } } else { - ts.Debug.assert(ch === 61 /* equals */); + ts.Debug.assert(ch === 61); while (pos < len) { var ch = text.charCodeAt(pos); - if (ch === 62 /* greaterThan */ && isConflictMarkerTrivia(text, pos)) { + if (ch === 62 && isConflictMarkerTrivia(text, pos)) { break; } pos++; @@ -2220,10 +2228,10 @@ var ts; while (true) { var ch = text.charCodeAt(pos); switch (ch) { - case 13 /* carriageReturn */: - if (text.charCodeAt(pos + 1) === 10 /* lineFeed */) + case 13: + if (text.charCodeAt(pos + 1) === 10) pos++; - case 10 /* lineFeed */: + case 10: pos++; if (trailing) { return result; @@ -2233,19 +2241,19 @@ var ts; result[result.length - 1].hasTrailingNewLine = true; } continue; - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 32 /* space */: + case 9: + case 11: + case 12: + case 32: pos++; continue; - case 47 /* slash */: + case 47: var nextChar = text.charCodeAt(pos + 1); var hasTrailingNewLine = false; - if (nextChar === 47 /* slash */ || nextChar === 42 /* asterisk */) { + if (nextChar === 47 || nextChar === 42) { var startPos = pos; pos += 2; - if (nextChar === 47 /* slash */) { + if (nextChar === 47) { while (pos < text.length) { if (isLineBreak(text.charCodeAt(pos))) { hasTrailingNewLine = true; @@ -2256,7 +2264,7 @@ var ts; } else { while (pos < text.length) { - if (text.charCodeAt(pos) === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { + if (text.charCodeAt(pos) === 42 && text.charCodeAt(pos + 1) === 47) { pos += 2; break; } @@ -2272,7 +2280,7 @@ var ts; } break; default: - if (ch > 127 /* maxAsciiCharacter */ && (isWhiteSpace(ch) || isLineBreak(ch))) { + if (ch > 127 && (isWhiteSpace(ch) || isLineBreak(ch))) { if (result && result.length && isLineBreak(ch)) { result[result.length - 1].hasTrailingNewLine = true; } @@ -2293,11 +2301,11 @@ var ts; } ts.getTrailingCommentRanges = getTrailingCommentRanges; function isIdentifierStart(ch, languageVersion) { - return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); } ts.isIdentifierStart = isIdentifierStart; function isIdentifierPart(ch, languageVersion) { - return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); } ts.isIdentifierPart = isIdentifierPart; function createScanner(languageVersion, skipTrivia, text, onError) { @@ -2315,24 +2323,24 @@ var ts; } } function isIdentifierStart(ch) { - return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierStart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierStart(ch, languageVersion); } function isIdentifierPart(ch) { - return ch >= 65 /* A */ && ch <= 90 /* Z */ || ch >= 97 /* a */ && ch <= 122 /* z */ || ch >= 48 /* _0 */ && ch <= 57 /* _9 */ || ch === 36 /* $ */ || ch === 95 /* _ */ || ch > 127 /* maxAsciiCharacter */ && isUnicodeIdentifierPart(ch, languageVersion); + return ch >= 65 && ch <= 90 || ch >= 97 && ch <= 122 || ch >= 48 && ch <= 57 || ch === 36 || ch === 95 || ch > 127 && isUnicodeIdentifierPart(ch, languageVersion); } function scanNumber() { var start = pos; while (isDigit(text.charCodeAt(pos))) pos++; - if (text.charCodeAt(pos) === 46 /* dot */) { + if (text.charCodeAt(pos) === 46) { pos++; while (isDigit(text.charCodeAt(pos))) pos++; } var end = pos; - if (text.charCodeAt(pos) === 69 /* E */ || text.charCodeAt(pos) === 101 /* e */) { + if (text.charCodeAt(pos) === 69 || text.charCodeAt(pos) === 101) { pos++; - if (text.charCodeAt(pos) === 43 /* plus */ || text.charCodeAt(pos) === 45 /* minus */) + if (text.charCodeAt(pos) === 43 || text.charCodeAt(pos) === 45) pos++; if (isDigit(text.charCodeAt(pos))) { pos++; @@ -2358,14 +2366,14 @@ var ts; var value = 0; while (digits < count || !mustMatchCount) { var ch = text.charCodeAt(pos); - if (ch >= 48 /* _0 */ && ch <= 57 /* _9 */) { - value = value * 16 + ch - 48 /* _0 */; + if (ch >= 48 && ch <= 57) { + value = value * 16 + ch - 48; } - else if (ch >= 65 /* A */ && ch <= 70 /* F */) { - value = value * 16 + ch - 65 /* A */ + 10; + else if (ch >= 65 && ch <= 70) { + value = value * 16 + ch - 65 + 10; } - else if (ch >= 97 /* a */ && ch <= 102 /* f */) { - value = value * 16 + ch - 97 /* a */ + 10; + else if (ch >= 97 && ch <= 102) { + value = value * 16 + ch - 97 + 10; } else { break; @@ -2395,7 +2403,7 @@ var ts; pos++; break; } - if (ch === 92 /* backslash */) { + if (ch === 92) { result += text.substring(start, pos); result += scanEscapeSequence(); start = pos; @@ -2412,7 +2420,7 @@ var ts; return result; } function scanTemplateAndSetTokenValue() { - var startedWithBacktick = text.charCodeAt(pos) === 96 /* backtick */; + var startedWithBacktick = text.charCodeAt(pos) === 96; pos++; var start = pos; var contents = ""; @@ -2422,32 +2430,32 @@ var ts; contents += text.substring(start, pos); tokenIsUnterminated = true; error(ts.Diagnostics.Unterminated_template_literal); - resultingToken = startedWithBacktick ? 10 /* NoSubstitutionTemplateLiteral */ : 13 /* TemplateTail */; + resultingToken = startedWithBacktick ? 10 : 13; break; } var currChar = text.charCodeAt(pos); - if (currChar === 96 /* backtick */) { + if (currChar === 96) { contents += text.substring(start, pos); pos++; - resultingToken = startedWithBacktick ? 10 /* NoSubstitutionTemplateLiteral */ : 13 /* TemplateTail */; + resultingToken = startedWithBacktick ? 10 : 13; break; } - if (currChar === 36 /* $ */ && pos + 1 < len && text.charCodeAt(pos + 1) === 123 /* openBrace */) { + if (currChar === 36 && pos + 1 < len && text.charCodeAt(pos + 1) === 123) { contents += text.substring(start, pos); pos += 2; - resultingToken = startedWithBacktick ? 11 /* TemplateHead */ : 12 /* TemplateMiddle */; + resultingToken = startedWithBacktick ? 11 : 12; break; } - if (currChar === 92 /* backslash */) { + if (currChar === 92) { contents += text.substring(start, pos); contents += scanEscapeSequence(); start = pos; continue; } - if (currChar === 13 /* carriageReturn */) { + if (currChar === 13) { contents += text.substring(start, pos); pos++; - if (pos < len && text.charCodeAt(pos) === 10 /* lineFeed */) { + if (pos < len && text.charCodeAt(pos) === 10) { pos++; } contents += "\n"; @@ -2468,27 +2476,27 @@ var ts; } var ch = text.charCodeAt(pos++); switch (ch) { - case 48 /* _0 */: + case 48: return "\0"; - case 98 /* b */: + case 98: return "\b"; - case 116 /* t */: + case 116: return "\t"; - case 110 /* n */: + case 110: return "\n"; - case 118 /* v */: + case 118: return "\v"; - case 102 /* f */: + case 102: return "\f"; - case 114 /* r */: + case 114: return "\r"; - case 39 /* singleQuote */: + case 39: return "\'"; - case 34 /* doubleQuote */: + case 34: return "\""; - case 120 /* x */: - case 117 /* u */: - var ch = scanHexDigits(ch === 120 /* x */ ? 2 : 4, true); + case 120: + case 117: + var ch = scanHexDigits(ch === 120 ? 2 : 4, true); if (ch >= 0) { return String.fromCharCode(ch); } @@ -2496,20 +2504,20 @@ var ts; error(ts.Diagnostics.Hexadecimal_digit_expected); return ""; } - case 13 /* carriageReturn */: - if (pos < len && text.charCodeAt(pos) === 10 /* lineFeed */) { + case 13: + if (pos < len && text.charCodeAt(pos) === 10) { pos++; } - case 10 /* lineFeed */: - case 8232 /* lineSeparator */: - case 8233 /* paragraphSeparator */: + case 10: + case 8232: + case 8233: return ""; default: return String.fromCharCode(ch); } } function peekUnicodeEscape() { - if (pos + 5 < len && text.charCodeAt(pos + 1) === 117 /* u */) { + if (pos + 5 < len && text.charCodeAt(pos + 1) === 117) { var start = pos; pos += 2; var value = scanHexDigits(4, true); @@ -2526,7 +2534,7 @@ var ts; if (isIdentifierPart(ch)) { pos++; } - else if (ch === 92 /* backslash */) { + else if (ch === 92) { ch = peekUnicodeEscape(); if (!(ch >= 0 && isIdentifierPart(ch))) { break; @@ -2547,11 +2555,11 @@ var ts; var len = tokenValue.length; if (len >= 2 && len <= 11) { var ch = tokenValue.charCodeAt(0); - if (ch >= 97 /* a */ && ch <= 122 /* z */ && hasOwnProperty.call(textToToken, tokenValue)) { + if (ch >= 97 && ch <= 122 && hasOwnProperty.call(textToToken, tokenValue)) { return token = textToToken[tokenValue]; } } - return token = 64 /* Identifier */; + return token = 64; } function scanBinaryOrOctalDigits(base) { ts.Debug.assert(base !== 2 || base !== 8, "Expected either base 2 or base 8"); @@ -2559,7 +2567,7 @@ var ts; var numberOfDigits = 0; while (true) { var ch = text.charCodeAt(pos); - var valueOfCh = ch - 48 /* _0 */; + var valueOfCh = ch - 48; if (!isDigit(ch) || valueOfCh >= base) { break; } @@ -2579,30 +2587,30 @@ var ts; while (true) { tokenPos = pos; if (pos >= len) { - return token = 1 /* EndOfFileToken */; + return token = 1; } var ch = text.charCodeAt(pos); switch (ch) { - case 10 /* lineFeed */: - case 13 /* carriageReturn */: + case 10: + case 13: precedingLineBreak = true; if (skipTrivia) { pos++; continue; } else { - if (ch === 13 /* carriageReturn */ && pos + 1 < len && text.charCodeAt(pos + 1) === 10 /* lineFeed */) { + if (ch === 13 && pos + 1 < len && text.charCodeAt(pos + 1) === 10) { pos += 2; } else { pos++; } - return token = 4 /* NewLineTrivia */; + return token = 4; } - case 9 /* tab */: - case 11 /* verticalTab */: - case 12 /* formFeed */: - case 32 /* space */: + case 9: + case 11: + case 12: + case 32: if (skipTrivia) { pos++; continue; @@ -2611,73 +2619,73 @@ var ts; while (pos < len && isWhiteSpace(text.charCodeAt(pos))) { pos++; } - return token = 5 /* WhitespaceTrivia */; + return token = 5; } - case 33 /* exclamation */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 31 /* ExclamationEqualsEqualsToken */; + case 33: + if (text.charCodeAt(pos + 1) === 61) { + if (text.charCodeAt(pos + 2) === 61) { + return pos += 3, token = 31; } - return pos += 2, token = 29 /* ExclamationEqualsToken */; + return pos += 2, token = 29; } - return pos++, token = 46 /* ExclamationToken */; - case 34 /* doubleQuote */: - case 39 /* singleQuote */: + return pos++, token = 46; + case 34: + case 39: tokenValue = scanString(); - return token = 8 /* StringLiteral */; - case 96 /* backtick */: + return token = 8; + case 96: return token = scanTemplateAndSetTokenValue(); - case 37 /* percent */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 57 /* PercentEqualsToken */; + case 37: + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 57; } - return pos++, token = 37 /* PercentToken */; - case 38 /* ampersand */: - if (text.charCodeAt(pos + 1) === 38 /* ampersand */) { - return pos += 2, token = 48 /* AmpersandAmpersandToken */; + return pos++, token = 37; + case 38: + if (text.charCodeAt(pos + 1) === 38) { + return pos += 2, token = 48; } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 61 /* AmpersandEqualsToken */; + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 61; } - return pos++, token = 43 /* AmpersandToken */; - case 40 /* openParen */: - return pos++, token = 16 /* OpenParenToken */; - case 41 /* closeParen */: - return pos++, token = 17 /* CloseParenToken */; - case 42 /* asterisk */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 55 /* AsteriskEqualsToken */; + return pos++, token = 43; + case 40: + return pos++, token = 16; + case 41: + return pos++, token = 17; + case 42: + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 55; } - return pos++, token = 35 /* AsteriskToken */; - case 43 /* plus */: - if (text.charCodeAt(pos + 1) === 43 /* plus */) { - return pos += 2, token = 38 /* PlusPlusToken */; + return pos++, token = 35; + case 43: + if (text.charCodeAt(pos + 1) === 43) { + return pos += 2, token = 38; } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 53 /* PlusEqualsToken */; + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 53; } - return pos++, token = 33 /* PlusToken */; - case 44 /* comma */: - return pos++, token = 23 /* CommaToken */; - case 45 /* minus */: - if (text.charCodeAt(pos + 1) === 45 /* minus */) { - return pos += 2, token = 39 /* MinusMinusToken */; + return pos++, token = 33; + case 44: + return pos++, token = 23; + case 45: + if (text.charCodeAt(pos + 1) === 45) { + return pos += 2, token = 39; } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 54 /* MinusEqualsToken */; + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 54; } - return pos++, token = 34 /* MinusToken */; - case 46 /* dot */: + return pos++, token = 34; + case 46: if (isDigit(text.charCodeAt(pos + 1))) { tokenValue = "" + scanNumber(); - return token = 7 /* NumericLiteral */; + return token = 7; } - if (text.charCodeAt(pos + 1) === 46 /* dot */ && text.charCodeAt(pos + 2) === 46 /* dot */) { - return pos += 3, token = 21 /* DotDotDotToken */; + if (text.charCodeAt(pos + 1) === 46 && text.charCodeAt(pos + 2) === 46) { + return pos += 3, token = 21; } - return pos++, token = 20 /* DotToken */; - case 47 /* slash */: - if (text.charCodeAt(pos + 1) === 47 /* slash */) { + return pos++, token = 20; + case 47: + if (text.charCodeAt(pos + 1) === 47) { pos += 2; while (pos < len) { if (isLineBreak(text.charCodeAt(pos))) { @@ -2689,15 +2697,15 @@ var ts; continue; } else { - return token = 2 /* SingleLineCommentTrivia */; + return token = 2; } } - if (text.charCodeAt(pos + 1) === 42 /* asterisk */) { + if (text.charCodeAt(pos + 1) === 42) { pos += 2; var commentClosed = false; while (pos < len) { var ch = text.charCodeAt(pos); - if (ch === 42 /* asterisk */ && text.charCodeAt(pos + 1) === 47 /* slash */) { + if (ch === 42 && text.charCodeAt(pos + 1) === 47) { pos += 2; commentClosed = true; break; @@ -2715,15 +2723,15 @@ var ts; } else { tokenIsUnterminated = !commentClosed; - return token = 3 /* MultiLineCommentTrivia */; + return token = 3; } } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 56 /* SlashEqualsToken */; + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 56; } - return pos++, token = 36 /* SlashToken */; - case 48 /* _0 */: - if (pos + 2 < len && (text.charCodeAt(pos + 1) === 88 /* X */ || text.charCodeAt(pos + 1) === 120 /* x */)) { + return pos++, token = 36; + case 48: + if (pos + 2 < len && (text.charCodeAt(pos + 1) === 88 || text.charCodeAt(pos + 1) === 120)) { pos += 2; var value = scanHexDigits(1, false); if (value < 0) { @@ -2731,9 +2739,9 @@ var ts; value = 0; } tokenValue = "" + value; - return token = 7 /* NumericLiteral */; + return token = 7; } - else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 66 /* B */ || text.charCodeAt(pos + 1) === 98 /* b */)) { + else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 66 || text.charCodeAt(pos + 1) === 98)) { pos += 2; var value = scanBinaryOrOctalDigits(2); if (value < 0) { @@ -2741,9 +2749,9 @@ var ts; value = 0; } tokenValue = "" + value; - return token = 7 /* NumericLiteral */; + return token = 7; } - else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 79 /* O */ || text.charCodeAt(pos + 1) === 111 /* o */)) { + else if (pos + 2 < len && (text.charCodeAt(pos + 1) === 79 || text.charCodeAt(pos + 1) === 111)) { pos += 2; var value = scanBinaryOrOctalDigits(8); if (value < 0) { @@ -2751,104 +2759,104 @@ var ts; value = 0; } tokenValue = "" + value; - return token = 7 /* NumericLiteral */; + return token = 7; } if (pos + 1 < len && isOctalDigit(text.charCodeAt(pos + 1))) { tokenValue = "" + scanOctalDigits(); - return token = 7 /* NumericLiteral */; + return token = 7; } - case 49 /* _1 */: - case 50 /* _2 */: - case 51 /* _3 */: - case 52 /* _4 */: - case 53 /* _5 */: - case 54 /* _6 */: - case 55 /* _7 */: - case 56 /* _8 */: - case 57 /* _9 */: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: tokenValue = "" + scanNumber(); - return token = 7 /* NumericLiteral */; - case 58 /* colon */: - return pos++, token = 51 /* ColonToken */; - case 59 /* semicolon */: - return pos++, token = 22 /* SemicolonToken */; - case 60 /* lessThan */: + return token = 7; + case 58: + return pos++, token = 51; + case 59: + return pos++, token = 22; + case 60: if (isConflictMarkerTrivia(text, pos)) { pos = scanConflictMarkerTrivia(text, pos, error); if (skipTrivia) { continue; } else { - return token = 6 /* ConflictMarkerTrivia */; + return token = 6; } } - if (text.charCodeAt(pos + 1) === 60 /* lessThan */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 58 /* LessThanLessThanEqualsToken */; + if (text.charCodeAt(pos + 1) === 60) { + if (text.charCodeAt(pos + 2) === 61) { + return pos += 3, token = 58; } - return pos += 2, token = 40 /* LessThanLessThanToken */; + return pos += 2, token = 40; } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 26 /* LessThanEqualsToken */; + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 26; } - return pos++, token = 24 /* LessThanToken */; - case 61 /* equals */: + return pos++, token = 24; + case 61: if (isConflictMarkerTrivia(text, pos)) { pos = scanConflictMarkerTrivia(text, pos, error); if (skipTrivia) { continue; } else { - return token = 6 /* ConflictMarkerTrivia */; + return token = 6; } } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 30 /* EqualsEqualsEqualsToken */; + if (text.charCodeAt(pos + 1) === 61) { + if (text.charCodeAt(pos + 2) === 61) { + return pos += 3, token = 30; } - return pos += 2, token = 28 /* EqualsEqualsToken */; + return pos += 2, token = 28; } - if (text.charCodeAt(pos + 1) === 62 /* greaterThan */) { - return pos += 2, token = 32 /* EqualsGreaterThanToken */; + if (text.charCodeAt(pos + 1) === 62) { + return pos += 2, token = 32; } - return pos++, token = 52 /* EqualsToken */; - case 62 /* greaterThan */: + return pos++, token = 52; + case 62: if (isConflictMarkerTrivia(text, pos)) { pos = scanConflictMarkerTrivia(text, pos, error); if (skipTrivia) { continue; } else { - return token = 6 /* ConflictMarkerTrivia */; + return token = 6; } } - return pos++, token = 25 /* GreaterThanToken */; - case 63 /* question */: - return pos++, token = 50 /* QuestionToken */; - case 91 /* openBracket */: - return pos++, token = 18 /* OpenBracketToken */; - case 93 /* closeBracket */: - return pos++, token = 19 /* CloseBracketToken */; - case 94 /* caret */: - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 63 /* CaretEqualsToken */; + return pos++, token = 25; + case 63: + return pos++, token = 50; + case 91: + return pos++, token = 18; + case 93: + return pos++, token = 19; + case 94: + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 63; } - return pos++, token = 45 /* CaretToken */; - case 123 /* openBrace */: - return pos++, token = 14 /* OpenBraceToken */; - case 124 /* bar */: - if (text.charCodeAt(pos + 1) === 124 /* bar */) { - return pos += 2, token = 49 /* BarBarToken */; + return pos++, token = 45; + case 123: + return pos++, token = 14; + case 124: + if (text.charCodeAt(pos + 1) === 124) { + return pos += 2, token = 49; } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 62 /* BarEqualsToken */; + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 62; } - return pos++, token = 44 /* BarToken */; - case 125 /* closeBrace */: - return pos++, token = 15 /* CloseBraceToken */; - case 126 /* tilde */: - return pos++, token = 47 /* TildeToken */; - case 92 /* backslash */: + return pos++, token = 44; + case 125: + return pos++, token = 15; + case 126: + return pos++, token = 47; + case 92: var ch = peekUnicodeEscape(); if (ch >= 0 && isIdentifierStart(ch)) { pos += 6; @@ -2856,14 +2864,14 @@ var ts; return token = getIdentifierToken(); } error(ts.Diagnostics.Invalid_character); - return pos++, token = 0 /* Unknown */; + return pos++, token = 0; default: if (isIdentifierStart(ch)) { pos++; while (pos < len && isIdentifierPart(ch = text.charCodeAt(pos))) pos++; tokenValue = text.substring(tokenPos, pos); - if (ch === 92 /* backslash */) { + if (ch === 92) { tokenValue += scanIdentifierParts(); } return token = getIdentifierToken(); @@ -2878,32 +2886,32 @@ var ts; continue; } error(ts.Diagnostics.Invalid_character); - return pos++, token = 0 /* Unknown */; + return pos++, token = 0; } } } function reScanGreaterToken() { - if (token === 25 /* GreaterThanToken */) { - if (text.charCodeAt(pos) === 62 /* greaterThan */) { - if (text.charCodeAt(pos + 1) === 62 /* greaterThan */) { - if (text.charCodeAt(pos + 2) === 61 /* equals */) { - return pos += 3, token = 60 /* GreaterThanGreaterThanGreaterThanEqualsToken */; + if (token === 25) { + if (text.charCodeAt(pos) === 62) { + if (text.charCodeAt(pos + 1) === 62) { + if (text.charCodeAt(pos + 2) === 61) { + return pos += 3, token = 60; } - return pos += 2, token = 42 /* GreaterThanGreaterThanGreaterThanToken */; + return pos += 2, token = 42; } - if (text.charCodeAt(pos + 1) === 61 /* equals */) { - return pos += 2, token = 59 /* GreaterThanGreaterThanEqualsToken */; + if (text.charCodeAt(pos + 1) === 61) { + return pos += 2, token = 59; } - return pos++, token = 41 /* GreaterThanGreaterThanToken */; + return pos++, token = 41; } - if (text.charCodeAt(pos) === 61 /* equals */) { - return pos++, token = 27 /* GreaterThanEqualsToken */; + if (text.charCodeAt(pos) === 61) { + return pos++, token = 27; } } return token; } function reScanSlashToken() { - if (token === 36 /* SlashToken */ || token === 56 /* SlashEqualsToken */) { + if (token === 36 || token === 56) { var p = tokenPos + 1; var inEscape = false; var inCharacterClass = false; @@ -2922,17 +2930,17 @@ var ts; if (inEscape) { inEscape = false; } - else if (ch === 47 /* slash */ && !inCharacterClass) { + else if (ch === 47 && !inCharacterClass) { p++; break; } - else if (ch === 91 /* openBracket */) { + else if (ch === 91) { inCharacterClass = true; } - else if (ch === 92 /* backslash */) { + else if (ch === 92) { inEscape = true; } - else if (ch === 93 /* closeBracket */) { + else if (ch === 93) { inCharacterClass = false; } p++; @@ -2942,12 +2950,12 @@ var ts; } pos = p; tokenValue = text.substring(tokenPos, pos); - token = 9 /* RegularExpressionLiteral */; + token = 9; } return token; } function reScanTemplateToken() { - ts.Debug.assert(token === 15 /* CloseBraceToken */, "'reScanTemplateToken' should only be called on a '}'"); + ts.Debug.assert(token === 15, "'reScanTemplateToken' should only be called on a '}'"); pos = tokenPos; return token = scanTemplateAndSetTokenValue(); } @@ -2984,7 +2992,7 @@ var ts; pos = textPos; startPos = textPos; tokenPos = textPos; - token = 0 /* Unknown */; + token = 0; precedingLineBreak = false; } setText(text); @@ -2996,8 +3004,8 @@ var ts; getTokenText: function () { return text.substring(tokenPos, pos); }, getTokenValue: function () { return tokenValue; }, hasPrecedingLineBreak: function () { return precedingLineBreak; }, - isIdentifier: function () { return token === 64 /* Identifier */ || token > 100 /* LastReservedWord */; }, - isReservedWord: function () { return token >= 65 /* FirstReservedWord */ && token <= 100 /* LastReservedWord */; }, + isIdentifier: function () { return token === 64 || token > 100; }, + isReservedWord: function () { return token >= 65 && token <= 100; }, isUnterminated: function () { return tokenIsUnterminated; }, reScanGreaterToken: reScanGreaterToken, reScanSlashToken: reScanSlashToken, @@ -3062,20 +3070,20 @@ var ts; ts.getFullWidth = getFullWidth; function containsParseError(node) { aggregateChildData(node); - return (node.parserContextFlags & 32 /* ThisNodeOrAnySubNodesHasError */) !== 0; + return (node.parserContextFlags & 32) !== 0; } ts.containsParseError = containsParseError; function aggregateChildData(node) { - if (!(node.parserContextFlags & 64 /* HasAggregatedChildData */)) { - var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & 16 /* ThisNodeHasError */) !== 0) || ts.forEachChild(node, containsParseError); + if (!(node.parserContextFlags & 64)) { + var thisNodeOrAnySubNodesHasError = ((node.parserContextFlags & 16) !== 0) || ts.forEachChild(node, containsParseError); if (thisNodeOrAnySubNodesHasError) { - node.parserContextFlags |= 32 /* ThisNodeOrAnySubNodesHasError */; + node.parserContextFlags |= 32; } - node.parserContextFlags |= 64 /* HasAggregatedChildData */; + node.parserContextFlags |= 64; } } function getSourceFileOfNode(node) { - while (node && node.kind !== 207 /* SourceFile */) { + while (node && node.kind !== 207) { node = node.parent; } return node; @@ -3083,8 +3091,8 @@ var ts; ts.getSourceFileOfNode = getSourceFileOfNode; function nodePosToString(node) { var file = getSourceFileOfNode(node); - var loc = file.getLineAndCharacterFromPosition(node.pos); - return file.filename + "(" + loc.line + "," + loc.character + ")"; + var loc = ts.getLineAndCharacterOfPosition(file, node.pos); + return file.fileName + "(" + loc.line + "," + loc.character + ")"; } ts.nodePosToString = nodePosToString; function getStartPosOfNode(node) { @@ -3095,7 +3103,7 @@ var ts; if (!node) { return true; } - return node.pos === node.end && node.kind !== 1 /* EndOfFileToken */; + return node.pos === node.end && node.kind !== 1; } ts.nodeIsMissing = nodeIsMissing; function nodeIsPresent(node) { @@ -3129,11 +3137,11 @@ var ts; } ts.getTextOfNode = getTextOfNode; function escapeIdentifier(identifier) { - return identifier.length >= 2 && identifier.charCodeAt(0) === 95 /* _ */ && identifier.charCodeAt(1) === 95 /* _ */ ? "_" + identifier : identifier; + return identifier.length >= 2 && identifier.charCodeAt(0) === 95 && identifier.charCodeAt(1) === 95 ? "_" + identifier : identifier; } ts.escapeIdentifier = escapeIdentifier; function unescapeIdentifier(identifier) { - return identifier.length >= 3 && identifier.charCodeAt(0) === 95 /* _ */ && identifier.charCodeAt(1) === 95 /* _ */ && identifier.charCodeAt(2) === 95 /* _ */ ? identifier.substr(1) : identifier; + return identifier.length >= 3 && identifier.charCodeAt(0) === 95 && identifier.charCodeAt(1) === 95 && identifier.charCodeAt(2) === 95 ? identifier.substr(1) : identifier; } ts.unescapeIdentifier = unescapeIdentifier; function declarationNameToString(name) { @@ -3148,24 +3156,31 @@ var ts; return ts.createFileDiagnostic(file, start, length, message, arg0, arg1, arg2); } ts.createDiagnosticForNode = createDiagnosticForNode; - function createDiagnosticForNodeFromMessageChain(node, messageChain, newLine) { + function createDiagnosticForNodeFromMessageChain(node, messageChain) { node = getErrorSpanForNode(node); var file = getSourceFileOfNode(node); var start = ts.skipTrivia(file.text, node.pos); var length = node.end - start; - return ts.flattenDiagnosticChain(file, start, length, messageChain, newLine); + return { + file: file, + start: start, + length: length, + code: messageChain.code, + category: messageChain.category, + messageText: messageChain.next ? messageChain : messageChain.messageText + }; } ts.createDiagnosticForNodeFromMessageChain = createDiagnosticForNodeFromMessageChain; function getErrorSpanForNode(node) { var errorSpan; switch (node.kind) { - case 188 /* VariableDeclaration */: - case 146 /* BindingElement */: - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 195 /* ModuleDeclaration */: - case 194 /* EnumDeclaration */: - case 206 /* EnumMember */: + case 188: + case 146: + case 191: + case 192: + case 195: + case 194: + case 206: errorSpan = node.name; break; } @@ -3177,15 +3192,15 @@ var ts; } ts.isExternalModule = isExternalModule; function isDeclarationFile(file) { - return (file.flags & 1024 /* DeclarationFile */) !== 0; + return (file.flags & 1024) !== 0; } ts.isDeclarationFile = isDeclarationFile; function isConstEnumDeclaration(node) { - return node.kind === 194 /* EnumDeclaration */ && isConst(node); + return node.kind === 194 && isConst(node); } ts.isConstEnumDeclaration = isConstEnumDeclaration; function walkUpBindingElementsAndPatterns(node) { - while (node && (node.kind === 146 /* BindingElement */ || isBindingPattern(node))) { + while (node && (node.kind === 146 || isBindingPattern(node))) { node = node.parent; } return node; @@ -3193,34 +3208,34 @@ var ts; function getCombinedNodeFlags(node) { node = walkUpBindingElementsAndPatterns(node); var flags = node.flags; - if (node.kind === 188 /* VariableDeclaration */) { + if (node.kind === 188) { node = node.parent; } - if (node && node.kind === 189 /* VariableDeclarationList */) { + if (node && node.kind === 189) { flags |= node.flags; node = node.parent; } - if (node && node.kind === 171 /* VariableStatement */) { + if (node && node.kind === 171) { flags |= node.flags; } return flags; } ts.getCombinedNodeFlags = getCombinedNodeFlags; function isConst(node) { - return !!(getCombinedNodeFlags(node) & 4096 /* Const */); + return !!(getCombinedNodeFlags(node) & 4096); } ts.isConst = isConst; function isLet(node) { - return !!(getCombinedNodeFlags(node) & 2048 /* Let */); + return !!(getCombinedNodeFlags(node) & 2048); } ts.isLet = isLet; function isPrologueDirective(node) { - return node.kind === 173 /* ExpressionStatement */ && node.expression.kind === 8 /* StringLiteral */; + return node.kind === 173 && node.expression.kind === 8; } ts.isPrologueDirective = isPrologueDirective; function getLeadingCommentRangesOfNode(node, sourceFileOfNode) { sourceFileOfNode = sourceFileOfNode || getSourceFileOfNode(node); - if (node.kind === 124 /* Parameter */ || node.kind === 123 /* TypeParameter */) { + if (node.kind === 124 || node.kind === 123) { return ts.concatenate(ts.getTrailingCommentRanges(sourceFileOfNode.text, node.pos), ts.getLeadingCommentRanges(sourceFileOfNode.text, node.pos)); } else { @@ -3231,7 +3246,7 @@ var ts; function getJsDocComments(node, sourceFileOfNode) { return ts.filter(getLeadingCommentRangesOfNode(node, sourceFileOfNode), isJsDocComment); function isJsDocComment(comment) { - return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */ && sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 /* asterisk */ && sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47 /* slash */; + return sourceFileOfNode.text.charCodeAt(comment.pos + 1) === 42 && sourceFileOfNode.text.charCodeAt(comment.pos + 2) === 42 && sourceFileOfNode.text.charCodeAt(comment.pos + 3) !== 47; } } ts.getJsDocComments = getJsDocComments; @@ -3240,21 +3255,21 @@ var ts; return traverse(body); function traverse(node) { switch (node.kind) { - case 181 /* ReturnStatement */: + case 181: return visitor(node); - case 170 /* Block */: - case 174 /* IfStatement */: - case 175 /* DoStatement */: - case 176 /* WhileStatement */: - case 177 /* ForStatement */: - case 178 /* ForInStatement */: - case 182 /* WithStatement */: - case 183 /* SwitchStatement */: - case 200 /* CaseClause */: - case 201 /* DefaultClause */: - case 184 /* LabeledStatement */: - case 186 /* TryStatement */: - case 203 /* CatchClause */: + case 170: + case 174: + case 175: + case 176: + case 177: + case 178: + case 182: + case 183: + case 200: + case 201: + case 184: + case 186: + case 203: return ts.forEachChild(node, traverse); } } @@ -3263,22 +3278,22 @@ var ts; function isAnyFunction(node) { if (node) { switch (node.kind) { - case 129 /* Constructor */: - case 156 /* FunctionExpression */: - case 190 /* FunctionDeclaration */: - case 157 /* ArrowFunction */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 132 /* CallSignature */: - case 133 /* ConstructSignature */: - case 134 /* IndexSignature */: - case 136 /* FunctionType */: - case 137 /* ConstructorType */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: - case 190 /* FunctionDeclaration */: + case 129: + case 156: + case 190: + case 157: + case 128: + case 127: + case 130: + case 131: + case 132: + case 133: + case 134: + case 136: + case 137: + case 156: + case 157: + case 190: return true; } } @@ -3286,11 +3301,11 @@ var ts; } ts.isAnyFunction = isAnyFunction; function isFunctionBlock(node) { - return node && node.kind === 170 /* Block */ && isAnyFunction(node.parent); + return node && node.kind === 170 && isAnyFunction(node.parent); } ts.isFunctionBlock = isFunctionBlock; function isObjectLiteralMethod(node) { - return node && node.kind === 128 /* MethodDeclaration */ && node.parent.kind === 148 /* ObjectLiteralExpression */; + return node && node.kind === 128 && node.parent.kind === 148; } ts.isObjectLiteralMethod = isObjectLiteralMethod; function getContainingFunction(node) { @@ -3309,28 +3324,28 @@ var ts; return undefined; } switch (node.kind) { - case 122 /* ComputedPropertyName */: - if (node.parent.parent.kind === 191 /* ClassDeclaration */) { + case 122: + if (node.parent.parent.kind === 191) { return node; } node = node.parent; break; - case 157 /* ArrowFunction */: + case 157: if (!includeArrowFunctions) { continue; } - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 195 /* ModuleDeclaration */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 194 /* EnumDeclaration */: - case 207 /* SourceFile */: + case 190: + case 156: + case 195: + case 126: + case 125: + case 128: + case 127: + case 129: + case 130: + case 131: + case 194: + case 207: return node; } } @@ -3342,32 +3357,32 @@ var ts; if (!node) return node; switch (node.kind) { - case 122 /* ComputedPropertyName */: - if (node.parent.parent.kind === 191 /* ClassDeclaration */) { + case 122: + if (node.parent.parent.kind === 191) { return node; } node = node.parent; break; - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: + case 190: + case 156: + case 157: if (!includeFunctions) { continue; } - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: + case 126: + case 125: + case 128: + case 127: + case 129: + case 130: + case 131: return node; } } } ts.getSuperContainer = getSuperContainer; function getInvokedExpression(node) { - if (node.kind === 153 /* TaggedTemplateExpression */) { + if (node.kind === 153) { return node.tag; } return node.expression; @@ -3375,78 +3390,78 @@ var ts; ts.getInvokedExpression = getInvokedExpression; function isExpression(node) { switch (node.kind) { - case 92 /* ThisKeyword */: - case 90 /* SuperKeyword */: - case 88 /* NullKeyword */: - case 94 /* TrueKeyword */: - case 79 /* FalseKeyword */: - case 9 /* RegularExpressionLiteral */: - case 147 /* ArrayLiteralExpression */: - case 148 /* ObjectLiteralExpression */: - case 149 /* PropertyAccessExpression */: - case 150 /* ElementAccessExpression */: - case 151 /* CallExpression */: - case 152 /* NewExpression */: - case 153 /* TaggedTemplateExpression */: - case 154 /* TypeAssertionExpression */: - case 155 /* ParenthesizedExpression */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: - case 160 /* VoidExpression */: - case 158 /* DeleteExpression */: - case 159 /* TypeOfExpression */: - case 161 /* PrefixUnaryExpression */: - case 162 /* PostfixUnaryExpression */: - case 163 /* BinaryExpression */: - case 164 /* ConditionalExpression */: - case 167 /* SpreadElementExpression */: - case 165 /* TemplateExpression */: - case 10 /* NoSubstitutionTemplateLiteral */: - case 168 /* OmittedExpression */: + case 92: + case 90: + case 88: + case 94: + case 79: + case 9: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 160: + case 158: + case 159: + case 161: + case 162: + case 163: + case 164: + case 167: + case 165: + case 10: + case 168: return true; - case 121 /* QualifiedName */: - while (node.parent.kind === 121 /* QualifiedName */) { + case 121: + while (node.parent.kind === 121) { node = node.parent; } - return node.parent.kind === 138 /* TypeQuery */; - case 64 /* Identifier */: - if (node.parent.kind === 138 /* TypeQuery */) { + return node.parent.kind === 138; + case 64: + if (node.parent.kind === 138) { return true; } - case 7 /* NumericLiteral */: - case 8 /* StringLiteral */: + case 7: + case 8: var parent = node.parent; switch (parent.kind) { - case 188 /* VariableDeclaration */: - case 124 /* Parameter */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 206 /* EnumMember */: - case 204 /* PropertyAssignment */: - case 146 /* BindingElement */: + case 188: + case 124: + case 126: + case 125: + case 206: + case 204: + case 146: return parent.initializer === node; - case 173 /* ExpressionStatement */: - case 174 /* IfStatement */: - case 175 /* DoStatement */: - case 176 /* WhileStatement */: - case 181 /* ReturnStatement */: - case 182 /* WithStatement */: - case 183 /* SwitchStatement */: - case 200 /* CaseClause */: - case 185 /* ThrowStatement */: - case 183 /* SwitchStatement */: + case 173: + case 174: + case 175: + case 176: + case 181: + case 182: + case 183: + case 200: + case 185: + case 183: return parent.expression === node; - case 177 /* ForStatement */: + case 177: var forStatement = parent; - return (forStatement.initializer === node && forStatement.initializer.kind !== 189 /* VariableDeclarationList */) || forStatement.condition === node || forStatement.iterator === node; - case 178 /* ForInStatement */: + return (forStatement.initializer === node && forStatement.initializer.kind !== 189) || forStatement.condition === node || forStatement.iterator === node; + case 178: var forInStatement = parent; - return (forInStatement.initializer === node && forInStatement.initializer.kind !== 189 /* VariableDeclarationList */) || forInStatement.expression === node; - case 154 /* TypeAssertionExpression */: + return (forInStatement.initializer === node && forInStatement.initializer.kind !== 189) || forInStatement.expression === node; + case 154: return node === parent.expression; - case 169 /* TemplateSpan */: + case 169: return node === parent.expression; - case 122 /* ComputedPropertyName */: + case 122: return node === parent.expression; default: if (isExpression(parent)) { @@ -3459,11 +3474,11 @@ var ts; ts.isExpression = isExpression; function isInstantiatedModule(node, preserveConstEnums) { var moduleState = ts.getModuleInstanceState(node); - return moduleState === 1 /* Instantiated */ || (preserveConstEnums && moduleState === 2 /* ConstEnumOnly */); + return moduleState === 1 || (preserveConstEnums && moduleState === 2); } ts.isInstantiatedModule = isInstantiatedModule; function isExternalModuleImportDeclaration(node) { - return node.kind === 197 /* ImportDeclaration */ && node.moduleReference.kind === 199 /* ExternalModuleReference */; + return node.kind === 197 && node.moduleReference.kind === 199; } ts.isExternalModuleImportDeclaration = isExternalModuleImportDeclaration; function getExternalModuleImportDeclarationExpression(node) { @@ -3472,25 +3487,25 @@ var ts; } ts.getExternalModuleImportDeclarationExpression = getExternalModuleImportDeclarationExpression; function isInternalModuleImportDeclaration(node) { - return node.kind === 197 /* ImportDeclaration */ && node.moduleReference.kind !== 199 /* ExternalModuleReference */; + return node.kind === 197 && node.moduleReference.kind !== 199; } ts.isInternalModuleImportDeclaration = isInternalModuleImportDeclaration; function hasDotDotDotToken(node) { - return node && node.kind === 124 /* Parameter */ && node.dotDotDotToken !== undefined; + return node && node.kind === 124 && node.dotDotDotToken !== undefined; } ts.hasDotDotDotToken = hasDotDotDotToken; function hasQuestionToken(node) { if (node) { switch (node.kind) { - case 124 /* Parameter */: + case 124: return node.questionToken !== undefined; - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: + case 128: + case 127: return node.questionToken !== undefined; - case 205 /* ShorthandPropertyAssignment */: - case 204 /* PropertyAssignment */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: + case 205: + case 204: + case 126: + case 125: return node.questionToken !== undefined; } } @@ -3502,24 +3517,24 @@ var ts; } ts.hasRestParameters = hasRestParameters; function isLiteralKind(kind) { - return 7 /* FirstLiteralToken */ <= kind && kind <= 10 /* LastLiteralToken */; + return 7 <= kind && kind <= 10; } ts.isLiteralKind = isLiteralKind; function isTextualLiteralKind(kind) { - return kind === 8 /* StringLiteral */ || kind === 10 /* NoSubstitutionTemplateLiteral */; + return kind === 8 || kind === 10; } ts.isTextualLiteralKind = isTextualLiteralKind; function isTemplateLiteralKind(kind) { - return 10 /* FirstTemplateToken */ <= kind && kind <= 13 /* LastTemplateToken */; + return 10 <= kind && kind <= 13; } ts.isTemplateLiteralKind = isTemplateLiteralKind; function isBindingPattern(node) { - return node.kind === 145 /* ArrayBindingPattern */ || node.kind === 144 /* ObjectBindingPattern */; + return node.kind === 145 || node.kind === 144; } ts.isBindingPattern = isBindingPattern; function isInAmbientContext(node) { while (node) { - if (node.flags & (2 /* Ambient */ | 1024 /* DeclarationFile */)) { + if (node.flags & (2 | 1024)) { return true; } node = node.parent; @@ -3529,27 +3544,27 @@ var ts; ts.isInAmbientContext = isInAmbientContext; function isDeclaration(node) { switch (node.kind) { - case 123 /* TypeParameter */: - case 124 /* Parameter */: - case 188 /* VariableDeclaration */: - case 146 /* BindingElement */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 204 /* PropertyAssignment */: - case 205 /* ShorthandPropertyAssignment */: - case 206 /* EnumMember */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 190 /* FunctionDeclaration */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 129 /* Constructor */: - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 193 /* TypeAliasDeclaration */: - case 194 /* EnumDeclaration */: - case 195 /* ModuleDeclaration */: - case 197 /* ImportDeclaration */: + case 123: + case 124: + case 188: + case 146: + case 126: + case 125: + case 204: + case 205: + case 206: + case 128: + case 127: + case 190: + case 130: + case 131: + case 129: + case 191: + case 192: + case 193: + case 194: + case 195: + case 197: return true; } return false; @@ -3557,24 +3572,24 @@ var ts; ts.isDeclaration = isDeclaration; function isStatement(n) { switch (n.kind) { - case 180 /* BreakStatement */: - case 179 /* ContinueStatement */: - case 187 /* DebuggerStatement */: - case 175 /* DoStatement */: - case 173 /* ExpressionStatement */: - case 172 /* EmptyStatement */: - case 178 /* ForInStatement */: - case 177 /* ForStatement */: - case 174 /* IfStatement */: - case 184 /* LabeledStatement */: - case 181 /* ReturnStatement */: - case 183 /* SwitchStatement */: - case 93 /* ThrowKeyword */: - case 186 /* TryStatement */: - case 171 /* VariableStatement */: - case 176 /* WhileStatement */: - case 182 /* WithStatement */: - case 198 /* ExportAssignment */: + case 180: + case 179: + case 187: + case 175: + case 173: + case 172: + case 178: + case 177: + case 174: + case 184: + case 181: + case 183: + case 93: + case 186: + case 171: + case 176: + case 182: + case 198: return true; default: return false; @@ -3582,31 +3597,31 @@ var ts; } ts.isStatement = isStatement; function isDeclarationOrFunctionExpressionOrCatchVariableName(name) { - if (name.kind !== 64 /* Identifier */ && name.kind !== 8 /* StringLiteral */ && name.kind !== 7 /* NumericLiteral */) { + if (name.kind !== 64 && name.kind !== 8 && name.kind !== 7) { return false; } var parent = name.parent; - if (isDeclaration(parent) || parent.kind === 156 /* FunctionExpression */) { + if (isDeclaration(parent) || parent.kind === 156) { return parent.name === name; } - if (parent.kind === 203 /* CatchClause */) { + if (parent.kind === 203) { return parent.name === name; } return false; } ts.isDeclarationOrFunctionExpressionOrCatchVariableName = isDeclarationOrFunctionExpressionOrCatchVariableName; function getClassBaseTypeNode(node) { - var heritageClause = getHeritageClause(node.heritageClauses, 78 /* ExtendsKeyword */); + var heritageClause = getHeritageClause(node.heritageClauses, 78); return heritageClause && heritageClause.types.length > 0 ? heritageClause.types[0] : undefined; } ts.getClassBaseTypeNode = getClassBaseTypeNode; function getClassImplementedTypeNodes(node) { - var heritageClause = getHeritageClause(node.heritageClauses, 101 /* ImplementsKeyword */); + var heritageClause = getHeritageClause(node.heritageClauses, 101); return heritageClause ? heritageClause.types : undefined; } ts.getClassImplementedTypeNodes = getClassImplementedTypeNodes; function getInterfaceBaseTypeNodes(node) { - var heritageClause = getHeritageClause(node.heritageClauses, 78 /* ExtendsKeyword */); + var heritageClause = getHeritageClause(node.heritageClauses, 78); return heritageClause ? heritageClause.types : undefined; } ts.getInterfaceBaseTypeNodes = getInterfaceBaseTypeNodes; @@ -3623,7 +3638,7 @@ var ts; ts.getHeritageClause = getHeritageClause; function tryResolveScriptReference(host, sourceFile, reference) { if (!host.getCompilerOptions().noResolve) { - var referenceFileName = ts.isRootedDiskPath(reference.filename) ? reference.filename : ts.combinePaths(ts.getDirectoryPath(sourceFile.filename), reference.filename); + var referenceFileName = ts.isRootedDiskPath(reference.fileName) ? reference.fileName : ts.combinePaths(ts.getDirectoryPath(sourceFile.fileName), reference.fileName); referenceFileName = ts.getNormalizedAbsolutePath(referenceFileName, host.getCurrentDirectory()); return host.getSourceFile(referenceFileName); } @@ -3631,16 +3646,16 @@ var ts; ts.tryResolveScriptReference = tryResolveScriptReference; function getAncestor(node, kind) { switch (kind) { - case 191 /* ClassDeclaration */: + case 191: while (node) { switch (node.kind) { - case 191 /* ClassDeclaration */: + case 191: return node; - case 194 /* EnumDeclaration */: - case 192 /* InterfaceDeclaration */: - case 193 /* TypeAliasDeclaration */: - case 195 /* ModuleDeclaration */: - case 197 /* ImportDeclaration */: + case 194: + case 192: + case 193: + case 195: + case 197: return undefined; default: node = node.parent; @@ -3678,7 +3693,7 @@ var ts; fileReference: { pos: start, end: end, - filename: matchResult[3] + fileName: matchResult[3] }, isNoDefaultLib: false }; @@ -3695,42 +3710,27 @@ var ts; } ts.getFileReferenceFromReferencePath = getFileReferenceFromReferencePath; function isKeyword(token) { - return 65 /* FirstKeyword */ <= token && token <= 120 /* LastKeyword */; + return 65 <= token && token <= 120; } ts.isKeyword = isKeyword; function isTrivia(token) { - return 2 /* FirstTriviaToken */ <= token && token <= 6 /* LastTriviaToken */; + return 2 <= token && token <= 6; } ts.isTrivia = isTrivia; function isModifier(token) { switch (token) { - case 107 /* PublicKeyword */: - case 105 /* PrivateKeyword */: - case 106 /* ProtectedKeyword */: - case 108 /* StaticKeyword */: - case 77 /* ExportKeyword */: - case 113 /* DeclareKeyword */: - case 69 /* ConstKeyword */: + case 107: + case 105: + case 106: + case 108: + case 77: + case 113: + case 69: return true; } return false; } ts.isModifier = isModifier; - function createEmitHostFromProgram(program) { - var compilerHost = program.getCompilerHost(); - return { - getCanonicalFileName: compilerHost.getCanonicalFileName, - getCommonSourceDirectory: program.getCommonSourceDirectory, - getCompilerOptions: program.getCompilerOptions, - getCurrentDirectory: compilerHost.getCurrentDirectory, - getNewLine: compilerHost.getNewLine, - getSourceFile: program.getSourceFile, - getSourceFiles: program.getSourceFiles, - isEmitBlocked: program.isEmitBlocked, - writeFile: compilerHost.writeFile - }; - } - ts.createEmitHostFromProgram = createEmitHostFromProgram; function textSpanEnd(span) { return span.start + span.length; } @@ -3840,10 +3840,76 @@ var ts; return createTextChangeRange(createTextSpanFromBounds(oldStartN, oldEndN), newEndN - oldStartN); } ts.collapseTextChangeRangesAcrossMultipleVersions = collapseTextChangeRangesAcrossMultipleVersions; + function createDiagnosticCollection() { + var nonFileDiagnostics = []; + var fileDiagnostics = {}; + var diagnosticsModified = false; + var modificationCount = 0; + return { + add: add, + getGlobalDiagnostics: getGlobalDiagnostics, + getDiagnostics: getDiagnostics, + getModificationCount: getModificationCount + }; + function getModificationCount() { + return modificationCount; + } + function add(diagnostic) { + var diagnostics; + if (diagnostic.file) { + diagnostics = fileDiagnostics[diagnostic.file.fileName]; + if (!diagnostics) { + diagnostics = []; + fileDiagnostics[diagnostic.file.fileName] = diagnostics; + } + } + else { + diagnostics = nonFileDiagnostics; + } + diagnostics.push(diagnostic); + diagnosticsModified = true; + modificationCount++; + } + function getGlobalDiagnostics() { + sortAndDeduplicate(); + return nonFileDiagnostics; + } + function getDiagnostics(fileName) { + sortAndDeduplicate(); + if (fileName) { + return fileDiagnostics[fileName] || []; + } + var allDiagnostics = []; + function pushDiagnostic(d) { + allDiagnostics.push(d); + } + ts.forEach(nonFileDiagnostics, pushDiagnostic); + for (var key in fileDiagnostics) { + if (ts.hasProperty(fileDiagnostics, key)) { + ts.forEach(fileDiagnostics[key], pushDiagnostic); + } + } + return ts.sortAndDeduplicateDiagnostics(allDiagnostics); + } + function sortAndDeduplicate() { + if (!diagnosticsModified) { + return; + } + diagnosticsModified = false; + nonFileDiagnostics = ts.sortAndDeduplicateDiagnostics(nonFileDiagnostics); + for (var key in fileDiagnostics) { + if (ts.hasProperty(fileDiagnostics, key)) { + fileDiagnostics[key] = ts.sortAndDeduplicateDiagnostics(fileDiagnostics[key]); + } + } + } + } + ts.createDiagnosticCollection = createDiagnosticCollection; })(ts || (ts = {})); var ts; (function (ts) { - var nodeConstructors = new Array(209 /* Count */); + var nodeConstructors = new Array(209); + ts.parseTime = 0; function getNodeConstructor(kind) { return nodeConstructors[kind] || (nodeConstructors[kind] = ts.objectAllocator.getNodeConstructor(kind)); } @@ -3879,152 +3945,152 @@ var ts; var visitNodes = cbNodeArray ? visitNodeArray : visitEachNode; var cbNodes = cbNodeArray || cbNode; switch (node.kind) { - case 121 /* QualifiedName */: + case 121: return visitNode(cbNode, node.left) || visitNode(cbNode, node.right); - case 123 /* TypeParameter */: + case 123: return visitNode(cbNode, node.name) || visitNode(cbNode, node.constraint) || visitNode(cbNode, node.expression); - case 124 /* Parameter */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 204 /* PropertyAssignment */: - case 205 /* ShorthandPropertyAssignment */: - case 188 /* VariableDeclaration */: - case 146 /* BindingElement */: + case 124: + case 126: + case 125: + case 204: + case 205: + case 188: + case 146: return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.propertyName) || visitNode(cbNode, node.dotDotDotToken) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || visitNode(cbNode, node.type) || visitNode(cbNode, node.initializer); - case 136 /* FunctionType */: - case 137 /* ConstructorType */: - case 132 /* CallSignature */: - case 133 /* ConstructSignature */: - case 134 /* IndexSignature */: + case 136: + case 137: + case 132: + case 133: + case 134: return visitNodes(cbNodes, node.modifiers) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.parameters) || visitNode(cbNode, node.type); - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 156 /* FunctionExpression */: - case 190 /* FunctionDeclaration */: - case 157 /* ArrowFunction */: + case 128: + case 127: + case 129: + case 130: + case 131: + case 156: + case 190: + case 157: return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.asteriskToken) || visitNode(cbNode, node.name) || visitNode(cbNode, node.questionToken) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.parameters) || visitNode(cbNode, node.type) || visitNode(cbNode, node.body); - case 135 /* TypeReference */: + case 135: return visitNode(cbNode, node.typeName) || visitNodes(cbNodes, node.typeArguments); - case 138 /* TypeQuery */: + case 138: return visitNode(cbNode, node.exprName); - case 139 /* TypeLiteral */: + case 139: return visitNodes(cbNodes, node.members); - case 140 /* ArrayType */: + case 140: return visitNode(cbNode, node.elementType); - case 141 /* TupleType */: + case 141: return visitNodes(cbNodes, node.elementTypes); - case 142 /* UnionType */: + case 142: return visitNodes(cbNodes, node.types); - case 143 /* ParenthesizedType */: + case 143: return visitNode(cbNode, node.type); - case 144 /* ObjectBindingPattern */: - case 145 /* ArrayBindingPattern */: + case 144: + case 145: return visitNodes(cbNodes, node.elements); - case 147 /* ArrayLiteralExpression */: + case 147: return visitNodes(cbNodes, node.elements); - case 148 /* ObjectLiteralExpression */: + case 148: return visitNodes(cbNodes, node.properties); - case 149 /* PropertyAccessExpression */: + case 149: return visitNode(cbNode, node.expression) || visitNode(cbNode, node.name); - case 150 /* ElementAccessExpression */: + case 150: return visitNode(cbNode, node.expression) || visitNode(cbNode, node.argumentExpression); - case 151 /* CallExpression */: - case 152 /* NewExpression */: + case 151: + case 152: return visitNode(cbNode, node.expression) || visitNodes(cbNodes, node.typeArguments) || visitNodes(cbNodes, node.arguments); - case 153 /* TaggedTemplateExpression */: + case 153: return visitNode(cbNode, node.tag) || visitNode(cbNode, node.template); - case 154 /* TypeAssertionExpression */: + case 154: return visitNode(cbNode, node.type) || visitNode(cbNode, node.expression); - case 155 /* ParenthesizedExpression */: + case 155: return visitNode(cbNode, node.expression); - case 158 /* DeleteExpression */: + case 158: return visitNode(cbNode, node.expression); - case 159 /* TypeOfExpression */: + case 159: return visitNode(cbNode, node.expression); - case 160 /* VoidExpression */: + case 160: return visitNode(cbNode, node.expression); - case 161 /* PrefixUnaryExpression */: + case 161: return visitNode(cbNode, node.operand); - case 166 /* YieldExpression */: + case 166: return visitNode(cbNode, node.asteriskToken) || visitNode(cbNode, node.expression); - case 162 /* PostfixUnaryExpression */: + case 162: return visitNode(cbNode, node.operand); - case 163 /* BinaryExpression */: + case 163: return visitNode(cbNode, node.left) || visitNode(cbNode, node.right); - case 164 /* ConditionalExpression */: + case 164: return visitNode(cbNode, node.condition) || visitNode(cbNode, node.whenTrue) || visitNode(cbNode, node.whenFalse); - case 167 /* SpreadElementExpression */: + case 167: return visitNode(cbNode, node.expression); - case 170 /* Block */: - case 196 /* ModuleBlock */: + case 170: + case 196: return visitNodes(cbNodes, node.statements); - case 207 /* SourceFile */: + case 207: return visitNodes(cbNodes, node.statements) || visitNode(cbNode, node.endOfFileToken); - case 171 /* VariableStatement */: + case 171: return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.declarationList); - case 189 /* VariableDeclarationList */: + case 189: return visitNodes(cbNodes, node.declarations); - case 173 /* ExpressionStatement */: + case 173: return visitNode(cbNode, node.expression); - case 174 /* IfStatement */: + case 174: return visitNode(cbNode, node.expression) || visitNode(cbNode, node.thenStatement) || visitNode(cbNode, node.elseStatement); - case 175 /* DoStatement */: + case 175: return visitNode(cbNode, node.statement) || visitNode(cbNode, node.expression); - case 176 /* WhileStatement */: + case 176: return visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); - case 177 /* ForStatement */: + case 177: return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.condition) || visitNode(cbNode, node.iterator) || visitNode(cbNode, node.statement); - case 178 /* ForInStatement */: + case 178: return visitNode(cbNode, node.initializer) || visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); - case 179 /* ContinueStatement */: - case 180 /* BreakStatement */: + case 179: + case 180: return visitNode(cbNode, node.label); - case 181 /* ReturnStatement */: + case 181: return visitNode(cbNode, node.expression); - case 182 /* WithStatement */: + case 182: return visitNode(cbNode, node.expression) || visitNode(cbNode, node.statement); - case 183 /* SwitchStatement */: + case 183: return visitNode(cbNode, node.expression) || visitNodes(cbNodes, node.clauses); - case 200 /* CaseClause */: + case 200: return visitNode(cbNode, node.expression) || visitNodes(cbNodes, node.statements); - case 201 /* DefaultClause */: + case 201: return visitNodes(cbNodes, node.statements); - case 184 /* LabeledStatement */: + case 184: return visitNode(cbNode, node.label) || visitNode(cbNode, node.statement); - case 185 /* ThrowStatement */: + case 185: return visitNode(cbNode, node.expression); - case 186 /* TryStatement */: + case 186: return visitNode(cbNode, node.tryBlock) || visitNode(cbNode, node.catchClause) || visitNode(cbNode, node.finallyBlock); - case 203 /* CatchClause */: + case 203: return visitNode(cbNode, node.name) || visitNode(cbNode, node.type) || visitNode(cbNode, node.block); - case 191 /* ClassDeclaration */: + case 191: return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.heritageClauses) || visitNodes(cbNodes, node.members); - case 192 /* InterfaceDeclaration */: + case 192: return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.typeParameters) || visitNodes(cbNodes, node.heritageClauses) || visitNodes(cbNodes, node.members); - case 193 /* TypeAliasDeclaration */: + case 193: return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.type); - case 194 /* EnumDeclaration */: + case 194: return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNodes(cbNodes, node.members); - case 206 /* EnumMember */: + case 206: return visitNode(cbNode, node.name) || visitNode(cbNode, node.initializer); - case 195 /* ModuleDeclaration */: + case 195: return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.body); - case 197 /* ImportDeclaration */: + case 197: return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.name) || visitNode(cbNode, node.moduleReference); - case 198 /* ExportAssignment */: + case 198: return visitNodes(cbNodes, node.modifiers) || visitNode(cbNode, node.exportName); - case 165 /* TemplateExpression */: + case 165: return visitNode(cbNode, node.head) || visitNodes(cbNodes, node.templateSpans); - case 169 /* TemplateSpan */: + case 169: return visitNode(cbNode, node.expression) || visitNode(cbNode, node.literal); - case 122 /* ComputedPropertyName */: + case 122: return visitNode(cbNode, node.expression); - case 202 /* HeritageClause */: + case 202: return visitNodes(cbNodes, node.types); - case 199 /* ExternalModuleReference */: + case 199: return visitNode(cbNode, node.expression); } } @@ -4061,38 +4127,38 @@ var ts; })(Tristate || (Tristate = {})); function parsingContextErrors(context) { switch (context) { - case 0 /* SourceElements */: return ts.Diagnostics.Declaration_or_statement_expected; - case 1 /* ModuleElements */: return ts.Diagnostics.Declaration_or_statement_expected; - case 2 /* BlockStatements */: return ts.Diagnostics.Statement_expected; - case 3 /* SwitchClauses */: return ts.Diagnostics.case_or_default_expected; - case 4 /* SwitchClauseStatements */: return ts.Diagnostics.Statement_expected; - case 5 /* TypeMembers */: return ts.Diagnostics.Property_or_signature_expected; - case 6 /* ClassMembers */: return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; - case 7 /* EnumMembers */: return ts.Diagnostics.Enum_member_expected; - case 8 /* TypeReferences */: return ts.Diagnostics.Type_reference_expected; - case 9 /* VariableDeclarations */: return ts.Diagnostics.Variable_declaration_expected; - case 10 /* ObjectBindingElements */: return ts.Diagnostics.Property_destructuring_pattern_expected; - case 11 /* ArrayBindingElements */: return ts.Diagnostics.Array_element_destructuring_pattern_expected; - case 12 /* ArgumentExpressions */: return ts.Diagnostics.Argument_expression_expected; - case 13 /* ObjectLiteralMembers */: return ts.Diagnostics.Property_assignment_expected; - case 14 /* ArrayLiteralMembers */: return ts.Diagnostics.Expression_or_comma_expected; - case 15 /* Parameters */: return ts.Diagnostics.Parameter_declaration_expected; - case 16 /* TypeParameters */: return ts.Diagnostics.Type_parameter_declaration_expected; - case 17 /* TypeArguments */: return ts.Diagnostics.Type_argument_expected; - case 18 /* TupleElementTypes */: return ts.Diagnostics.Type_expected; - case 19 /* HeritageClauses */: return ts.Diagnostics.Unexpected_token_expected; + case 0: return ts.Diagnostics.Declaration_or_statement_expected; + case 1: return ts.Diagnostics.Declaration_or_statement_expected; + case 2: return ts.Diagnostics.Statement_expected; + case 3: return ts.Diagnostics.case_or_default_expected; + case 4: return ts.Diagnostics.Statement_expected; + case 5: return ts.Diagnostics.Property_or_signature_expected; + case 6: return ts.Diagnostics.Unexpected_token_A_constructor_method_accessor_or_property_was_expected; + case 7: return ts.Diagnostics.Enum_member_expected; + case 8: return ts.Diagnostics.Type_reference_expected; + case 9: return ts.Diagnostics.Variable_declaration_expected; + case 10: return ts.Diagnostics.Property_destructuring_pattern_expected; + case 11: return ts.Diagnostics.Array_element_destructuring_pattern_expected; + case 12: return ts.Diagnostics.Argument_expression_expected; + case 13: return ts.Diagnostics.Property_assignment_expected; + case 14: return ts.Diagnostics.Expression_or_comma_expected; + case 15: return ts.Diagnostics.Parameter_declaration_expected; + case 16: return ts.Diagnostics.Type_parameter_declaration_expected; + case 17: return ts.Diagnostics.Type_argument_expected; + case 18: return ts.Diagnostics.Type_expected; + case 19: return ts.Diagnostics.Unexpected_token_expected; } } ; function modifierToFlag(token) { switch (token) { - case 108 /* StaticKeyword */: return 128 /* Static */; - case 107 /* PublicKeyword */: return 16 /* Public */; - case 106 /* ProtectedKeyword */: return 64 /* Protected */; - case 105 /* PrivateKeyword */: return 32 /* Private */; - case 77 /* ExportKeyword */: return 1 /* Export */; - case 113 /* DeclareKeyword */: return 2 /* Ambient */; - case 69 /* ConstKeyword */: return 4096 /* Const */; + case 108: return 128; + case 107: return 16; + case 106: return 64; + case 105: return 32; + case 77: return 1; + case 113: return 2; + case 69: return 4096; } return 0; } @@ -4110,8 +4176,157 @@ var ts; } forEachChild(sourceFile, walk); } + function moveElementEntirelyPastChangeRange(element, delta) { + if (element.length) { + visitArray(element); + } + else { + visitNode(element); + } + function visitNode(node) { + node._children = undefined; + node.pos += delta; + node.end += delta; + forEachChild(node, visitNode, visitArray); + } + function visitArray(array) { + array.pos += delta; + array.end += delta; + for (var i = 0, n = array.length; i < n; i++) { + visitNode(array[i]); + } + } + } + function adjustIntersectingElement(element, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) { + ts.Debug.assert(element.end >= changeStart, "Adjusting an element that was entirely before the change range"); + ts.Debug.assert(element.pos <= changeRangeOldEnd, "Adjusting an element that was entirely after the change range"); + element.pos = Math.min(element.pos, changeRangeNewEnd); + if (element.end >= changeRangeOldEnd) { + element.end += delta; + } + else { + element.end = Math.min(element.end, changeRangeNewEnd); + } + ts.Debug.assert(element.pos <= element.end); + if (element.parent) { + ts.Debug.assert(element.pos >= element.parent.pos); + ts.Debug.assert(element.end <= element.parent.end); + } + } + function updateTokenPositionsAndMarkElements(node, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) { + visitNode(node); + function visitNode(child) { + if (child.pos > changeRangeOldEnd) { + moveElementEntirelyPastChangeRange(child, delta); + return; + } + var fullEnd = child.end; + if (fullEnd >= changeStart) { + child.intersectsChange = true; + adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); + forEachChild(child, visitNode, visitArray); + return; + } + } + function visitArray(array) { + if (array.pos > changeRangeOldEnd) { + moveElementEntirelyPastChangeRange(array, delta); + } + else { + var fullEnd = array.end; + if (fullEnd >= changeStart) { + array.intersectsChange = true; + adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); + for (var i = 0, n = array.length; i < n; i++) { + visitNode(array[i]); + } + } + } + } + } + function extendToAffectedRange(sourceFile, changeRange) { + var maxLookahead = 1; + var start = changeRange.span.start; + for (var i = 0; start > 0 && i <= maxLookahead; i++) { + var nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start); + var position = nearestNode.pos; + start = Math.max(0, position - 1); + } + var finalSpan = ts.createTextSpanFromBounds(start, ts.textSpanEnd(changeRange.span)); + var finalLength = changeRange.newLength + (changeRange.span.start - start); + return ts.createTextChangeRange(finalSpan, finalLength); + } + function findNearestNodeStartingBeforeOrAtPosition(sourceFile, position) { + var bestResult = sourceFile; + var lastNodeEntirelyBeforePosition; + forEachChild(sourceFile, visit); + if (lastNodeEntirelyBeforePosition) { + var lastChildOfLastEntireNodeBeforePosition = getLastChild(lastNodeEntirelyBeforePosition); + if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) { + bestResult = lastChildOfLastEntireNodeBeforePosition; + } + } + return bestResult; + function getLastChild(node) { + while (true) { + var lastChild = getLastChildWorker(node); + if (lastChild) { + node = lastChild; + } + else { + return node; + } + } + } + function getLastChildWorker(node) { + var last = undefined; + forEachChild(node, function (child) { + if (ts.nodeIsPresent(child)) { + last = child; + } + }); + return last; + } + function visit(child) { + if (ts.nodeIsMissing(child)) { + return; + } + if (child.pos <= position) { + if (child.pos >= bestResult.pos) { + bestResult = child; + } + if (position < child.end) { + forEachChild(child, visit); + return true; + } + else { + ts.Debug.assert(child.end <= position); + lastNodeEntirelyBeforePosition = child; + } + } + else { + ts.Debug.assert(child.pos > position); + return true; + } + } + } + function updateSourceFile(sourceFile, newText, textChangeRange) { + if (ts.textChangeRangeIsUnchanged(textChangeRange)) { + return sourceFile; + } + if (sourceFile.statements.length === 0) { + return parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, undefined, true); + } + var syntaxCursor = createSyntaxCursor(sourceFile); + var changeRange = extendToAffectedRange(sourceFile, textChangeRange); + var delta = ts.textChangeRangeNewSpan(changeRange).length - changeRange.span.length; + updateTokenPositionsAndMarkElements(sourceFile, changeRange.span.start, ts.textSpanEnd(changeRange.span), ts.textSpanEnd(ts.textChangeRangeNewSpan(changeRange)), delta); + var result = parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, syntaxCursor, true); + return result; + } + ts.updateSourceFile = updateSourceFile; function isEvalOrArgumentsIdentifier(node) { - return node.kind === 64 /* Identifier */ && (node.text === "eval" || node.text === "arguments"); + return node.kind === 64 && (node.text === "eval" || node.text === "arguments"); } ts.isEvalOrArgumentsIdentifier = isEvalOrArgumentsIdentifier; function isUseStrictPrologueDirective(sourceFile, node) { @@ -4128,7 +4343,7 @@ var ts; var currentArrayIndex = 0; ts.Debug.assert(currentArrayIndex < currentArray.length); var current = currentArray[currentArrayIndex]; - var lastQueriedPosition = -1 /* Value */; + var lastQueriedPosition = -1; return { currentNode: function (position) { if (position !== lastQueriedPosition) { @@ -4147,7 +4362,7 @@ var ts; }; function findHighestListElementThatStartsAtPosition(position) { currentArray = undefined; - currentArrayIndex = -1 /* Value */; + currentArrayIndex = -1; current = undefined; forEachChild(sourceFile, visitNode, visitArray); function visitNode(node) { @@ -4181,207 +4396,47 @@ var ts; } } } - function createSourceFile(filename, sourceText, languageVersion, setParentNodes) { + function createSourceFile(fileName, sourceText, languageVersion, setParentNodes) { if (setParentNodes === void 0) { setParentNodes = false; } - var parsingContext; - var identifiers; + var start = new Date().getTime(); + var result = parseSourceFile(fileName, sourceText, languageVersion, undefined, setParentNodes); + ts.parseTime += new Date().getTime() - start; + return result; + } + ts.createSourceFile = createSourceFile; + function parseSourceFile(fileName, sourceText, languageVersion, syntaxCursor, setParentNodes) { + if (setParentNodes === void 0) { setParentNodes = false; } + var parsingContext = 0; + var identifiers = {}; var identifierCount = 0; var nodeCount = 0; - var lineStarts; - var syntacticDiagnostics; var scanner; var token; - var syntaxCursor; - var contextFlags; - var parseErrorBeforeNextFinishedNode; - var sourceFile; - return parseSourceFile(sourceText, setParentNodes); - function parseSourceFile(text, setParentNodes) { - sourceText = text; - parsingContext = 0; - identifiers = {}; - lineStarts = undefined; - syntacticDiagnostics = undefined; - contextFlags = 0; - parseErrorBeforeNextFinishedNode = false; - sourceFile = createNode(207 /* SourceFile */, 0); - sourceFile.referenceDiagnostics = []; - sourceFile.parseDiagnostics = []; - sourceFile.semanticDiagnostics = []; - scanner = ts.createScanner(languageVersion, true, sourceText, scanError); - token = nextToken(); - sourceFile.flags = ts.fileExtensionIs(filename, ".d.ts") ? 1024 /* DeclarationFile */ : 0; - sourceFile.end = sourceText.length; - sourceFile.filename = ts.normalizePath(filename); - sourceFile.text = sourceText; - sourceFile.getLineAndCharacterFromPosition = getLineAndCharacterFromSourcePosition; - sourceFile.getPositionFromLineAndCharacter = getPositionFromSourceLineAndCharacter; - sourceFile.getLineStarts = getLineStarts; - sourceFile.getSyntacticDiagnostics = getSyntacticDiagnostics; - sourceFile.update = update; - processReferenceComments(sourceFile); - sourceFile.statements = parseList(0 /* SourceElements */, true, parseSourceElement); - ts.Debug.assert(token === 1 /* EndOfFileToken */); - sourceFile.endOfFileToken = parseTokenNode(); - setExternalModuleIndicator(sourceFile); - sourceFile.nodeCount = nodeCount; - sourceFile.identifierCount = identifierCount; - sourceFile.languageVersion = languageVersion; - sourceFile.identifiers = identifiers; - if (setParentNodes) { - fixupParentReferences(sourceFile); - } - return sourceFile; - } - function update(newText, textChangeRange) { - if (ts.textChangeRangeIsUnchanged(textChangeRange)) { - return sourceFile; - } - if (sourceFile.statements.length === 0) { - return parseSourceFile(newText, true); - } - syntaxCursor = createSyntaxCursor(sourceFile); - var changeRange = extendToAffectedRange(textChangeRange); - var delta = ts.textChangeRangeNewSpan(changeRange).length - changeRange.span.length; - updateTokenPositionsAndMarkElements(sourceFile, changeRange.span.start, ts.textSpanEnd(changeRange.span), ts.textSpanEnd(ts.textChangeRangeNewSpan(changeRange)), delta); - var result = parseSourceFile(newText, true); - syntaxCursor = undefined; - return result; - } - function updateTokenPositionsAndMarkElements(node, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) { - visitNode(node); - function visitNode(child) { - if (child.pos > changeRangeOldEnd) { - moveElementEntirelyPastChangeRange(child, delta); - return; - } - var fullEnd = child.end; - if (fullEnd >= changeStart) { - child.intersectsChange = true; - adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - forEachChild(child, visitNode, visitArray); - return; - } - } - function visitArray(array) { - if (array.pos > changeRangeOldEnd) { - moveElementEntirelyPastChangeRange(array, delta); - } - else { - var fullEnd = array.end; - if (fullEnd >= changeStart) { - array.intersectsChange = true; - adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); - } - } - } - } - } - function adjustIntersectingElement(element, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta) { - ts.Debug.assert(element.end >= changeStart, "Adjusting an element that was entirely before the change range"); - ts.Debug.assert(element.pos <= changeRangeOldEnd, "Adjusting an element that was entirely after the change range"); - element.pos = Math.min(element.pos, changeRangeNewEnd); - if (element.end >= changeRangeOldEnd) { - element.end += delta; - } - else { - element.end = Math.min(element.end, changeRangeNewEnd); - } - ts.Debug.assert(element.pos <= element.end); - if (element.parent) { - ts.Debug.assert(element.pos >= element.parent.pos); - ts.Debug.assert(element.end <= element.parent.end); - } - } - function moveElementEntirelyPastChangeRange(element, delta) { - if (element.length) { - visitArray(element); - } - else { - visitNode(element); - } - function visitNode(node) { - node._children = undefined; - node.pos += delta; - node.end += delta; - forEachChild(node, visitNode, visitArray); - } - function visitArray(array) { - array.pos += delta; - array.end += delta; - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); - } - } - } - function extendToAffectedRange(changeRange) { - var maxLookahead = 1; - var start = changeRange.span.start; - for (var i = 0; start > 0 && i <= maxLookahead; i++) { - var nearestNode = findNearestNodeStartingBeforeOrAtPosition(start); - var position = nearestNode.pos; - start = Math.max(0, position - 1); - } - var finalSpan = ts.createTextSpanFromBounds(start, ts.textSpanEnd(changeRange.span)); - var finalLength = changeRange.newLength + (changeRange.span.start - start); - return ts.createTextChangeRange(finalSpan, finalLength); - } - function findNearestNodeStartingBeforeOrAtPosition(position) { - var bestResult = sourceFile; - var lastNodeEntirelyBeforePosition; - forEachChild(sourceFile, visit); - if (lastNodeEntirelyBeforePosition) { - var lastChildOfLastEntireNodeBeforePosition = getLastChild(lastNodeEntirelyBeforePosition); - if (lastChildOfLastEntireNodeBeforePosition.pos > bestResult.pos) { - bestResult = lastChildOfLastEntireNodeBeforePosition; - } - } - return bestResult; - function getLastChild(node) { - while (true) { - var lastChild = getLastChildWorker(node); - if (lastChild) { - node = lastChild; - } - else { - return node; - } - } - } - function getLastChildWorker(node) { - var last = undefined; - forEachChild(node, function (child) { - if (ts.nodeIsPresent(child)) { - last = child; - } - }); - return last; - } - function visit(child) { - if (ts.nodeIsMissing(child)) { - return; - } - if (child.pos <= position) { - if (child.pos >= bestResult.pos) { - bestResult = child; - } - if (position < child.end) { - forEachChild(child, visit); - return true; - } - else { - ts.Debug.assert(child.end <= position); - lastNodeEntirelyBeforePosition = child; - } - } - else { - ts.Debug.assert(child.pos > position); - return true; - } - } + var sourceFile = createNode(207, 0); + sourceFile.pos = 0; + sourceFile.end = sourceText.length; + sourceFile.text = sourceText; + sourceFile.parseDiagnostics = []; + sourceFile.bindDiagnostics = []; + sourceFile.languageVersion = languageVersion; + sourceFile.fileName = ts.normalizePath(fileName); + sourceFile.flags = ts.fileExtensionIs(sourceFile.fileName, ".d.ts") ? 1024 : 0; + var contextFlags = 0; + var parseErrorBeforeNextFinishedNode = false; + scanner = ts.createScanner(languageVersion, true, sourceText, scanError); + token = nextToken(); + processReferenceComments(sourceFile); + sourceFile.statements = parseList(0, true, parseSourceElement); + ts.Debug.assert(token === 1); + sourceFile.endOfFileToken = parseTokenNode(); + setExternalModuleIndicator(sourceFile); + sourceFile.nodeCount = nodeCount; + sourceFile.identifierCount = identifierCount; + sourceFile.identifiers = identifiers; + if (setParentNodes) { + fixupParentReferences(sourceFile); } + return sourceFile; function setContextFlag(val, flag) { if (val) { contextFlags |= flag; @@ -4391,19 +4446,19 @@ var ts; } } function setStrictModeContext(val) { - setContextFlag(val, 1 /* StrictMode */); + setContextFlag(val, 1); } function setDisallowInContext(val) { - setContextFlag(val, 2 /* DisallowIn */); + setContextFlag(val, 2); } function setYieldContext(val) { - setContextFlag(val, 4 /* Yield */); + setContextFlag(val, 4); } function setGeneratorParameterContext(val) { - setContextFlag(val, 8 /* GeneratorParameter */); + setContextFlag(val, 8); } function allowInAnd(func) { - if (contextFlags & 2 /* DisallowIn */) { + if (contextFlags & 2) { setDisallowInContext(false); var result = func(); setDisallowInContext(true); @@ -4412,7 +4467,7 @@ var ts; return func(); } function disallowInAnd(func) { - if (contextFlags & 2 /* DisallowIn */) { + if (contextFlags & 2) { return func(); } setDisallowInContext(true); @@ -4421,7 +4476,7 @@ var ts; return result; } function doInYieldContext(func) { - if (contextFlags & 4 /* Yield */) { + if (contextFlags & 4) { return func(); } setYieldContext(true); @@ -4430,7 +4485,7 @@ var ts; return result; } function doOutsideOfYieldContext(func) { - if (contextFlags & 4 /* Yield */) { + if (contextFlags & 4) { setYieldContext(false); var result = func(); setYieldContext(true); @@ -4439,25 +4494,16 @@ var ts; return func(); } function inYieldContext() { - return (contextFlags & 4 /* Yield */) !== 0; + return (contextFlags & 4) !== 0; } function inStrictModeContext() { - return (contextFlags & 1 /* StrictMode */) !== 0; + return (contextFlags & 1) !== 0; } function inGeneratorParameterContext() { - return (contextFlags & 8 /* GeneratorParameter */) !== 0; + return (contextFlags & 8) !== 0; } function inDisallowInContext() { - return (contextFlags & 2 /* DisallowIn */) !== 0; - } - function getLineStarts() { - return lineStarts || (lineStarts = ts.computeLineStarts(sourceText)); - } - function getLineAndCharacterFromSourcePosition(position) { - return ts.getLineAndCharacterOfPosition(getLineStarts(), position); - } - function getPositionFromSourceLineAndCharacter(line, character) { - return ts.getPositionFromLineAndCharacter(getLineStarts(), line, character); + return (contextFlags & 2) !== 0; } function parseErrorAtCurrentToken(message, arg0) { var start = scanner.getTokenPos(); @@ -4517,13 +4563,13 @@ var ts; return speculationHelper(callback, false); } function isIdentifier() { - if (token === 64 /* Identifier */) { + if (token === 64) { return true; } - if (token === 109 /* YieldKeyword */ && inYieldContext()) { + if (token === 109 && inYieldContext()) { return false; } - return inStrictModeContext() ? token > 109 /* LastFutureReservedWord */ : token > 100 /* LastReservedWord */; + return inStrictModeContext() ? token > 109 : token > 100; } function parseExpected(kind, diagnosticMessage) { if (token === kind) { @@ -4554,20 +4600,20 @@ var ts; return undefined; } function canParseSemicolon() { - if (token === 22 /* SemicolonToken */) { + if (token === 22) { return true; } - return token === 15 /* CloseBraceToken */ || token === 1 /* EndOfFileToken */ || scanner.hasPrecedingLineBreak(); + return token === 15 || token === 1 || scanner.hasPrecedingLineBreak(); } function parseSemicolon() { if (canParseSemicolon()) { - if (token === 22 /* SemicolonToken */) { + if (token === 22) { nextToken(); } return true; } else { - return parseExpected(22 /* SemicolonToken */); + return parseExpected(22); } } function createNode(kind, pos) { @@ -4587,7 +4633,7 @@ var ts; } if (parseErrorBeforeNextFinishedNode) { parseErrorBeforeNextFinishedNode = false; - node.parserContextFlags |= 16 /* ThisNodeHasError */; + node.parserContextFlags |= 16; } return node; } @@ -4609,12 +4655,12 @@ var ts; function createIdentifier(isIdentifier, diagnosticMessage) { identifierCount++; if (isIdentifier) { - var node = createNode(64 /* Identifier */); + var node = createNode(64); node.text = internIdentifier(scanner.getTokenValue()); nextToken(); return finishNode(node); } - return createMissingNode(64 /* Identifier */, false, diagnosticMessage || ts.Diagnostics.Identifier_expected); + return createMissingNode(64, false, diagnosticMessage || ts.Diagnostics.Identifier_expected); } function parseIdentifier(diagnosticMessage) { return createIdentifier(isIdentifier(), diagnosticMessage); @@ -4623,20 +4669,20 @@ var ts; return createIdentifier(isIdentifierOrKeyword()); } function isLiteralPropertyName() { - return isIdentifierOrKeyword() || token === 8 /* StringLiteral */ || token === 7 /* NumericLiteral */; + return isIdentifierOrKeyword() || token === 8 || token === 7; } function parsePropertyName() { - if (token === 8 /* StringLiteral */ || token === 7 /* NumericLiteral */) { + if (token === 8 || token === 7) { return parseLiteralNode(true); } - if (token === 18 /* OpenBracketToken */) { + if (token === 18) { return parseComputedPropertyName(); } return parseIdentifierName(); } function parseComputedPropertyName() { - var node = createNode(122 /* ComputedPropertyName */); - parseExpected(18 /* OpenBracketToken */); + var node = createNode(122); + parseExpected(18); var yieldContext = inYieldContext(); if (inGeneratorParameterContext()) { setYieldContext(false); @@ -4645,7 +4691,7 @@ var ts; if (inGeneratorParameterContext()) { setYieldContext(yieldContext); } - parseExpected(19 /* CloseBracketToken */); + parseExpected(19); return finishNode(node); } function parseContextualModifier(t) { @@ -4659,14 +4705,14 @@ var ts; return ts.isModifier(token) && tryParse(nextTokenCanFollowContextualModifier); } function nextTokenCanFollowContextualModifier() { - if (token === 69 /* ConstKeyword */) { - return nextToken() === 76 /* EnumKeyword */; + if (token === 69) { + return nextToken() === 76; } nextToken(); return canFollowModifier(); } function canFollowModifier() { - return token === 18 /* OpenBracketToken */ || token === 14 /* OpenBraceToken */ || token === 35 /* AsteriskToken */ || isLiteralPropertyName(); + return token === 18 || token === 14 || token === 35 || isLiteralPropertyName(); } function isListElement(parsingContext, inErrorRecovery) { var node = currentNode(parsingContext); @@ -4674,42 +4720,42 @@ var ts; return true; } switch (parsingContext) { - case 0 /* SourceElements */: - case 1 /* ModuleElements */: + case 0: + case 1: return isSourceElement(inErrorRecovery); - case 2 /* BlockStatements */: - case 4 /* SwitchClauseStatements */: + case 2: + case 4: return isStartOfStatement(inErrorRecovery); - case 3 /* SwitchClauses */: - return token === 66 /* CaseKeyword */ || token === 72 /* DefaultKeyword */; - case 5 /* TypeMembers */: + case 3: + return token === 66 || token === 72; + case 5: return isStartOfTypeMember(); - case 6 /* ClassMembers */: + case 6: return lookAhead(isClassMemberStart); - case 7 /* EnumMembers */: - return token === 18 /* OpenBracketToken */ || isLiteralPropertyName(); - case 13 /* ObjectLiteralMembers */: - return token === 18 /* OpenBracketToken */ || token === 35 /* AsteriskToken */ || isLiteralPropertyName(); - case 10 /* ObjectBindingElements */: + case 7: + return token === 18 || isLiteralPropertyName(); + case 13: + return token === 18 || token === 35 || isLiteralPropertyName(); + case 10: return isLiteralPropertyName(); - case 8 /* TypeReferences */: + case 8: return isIdentifier() && !isNotHeritageClauseTypeName(); - case 9 /* VariableDeclarations */: + case 9: return isIdentifierOrPattern(); - case 11 /* ArrayBindingElements */: - return token === 23 /* CommaToken */ || token === 21 /* DotDotDotToken */ || isIdentifierOrPattern(); - case 16 /* TypeParameters */: + case 11: + return token === 23 || token === 21 || isIdentifierOrPattern(); + case 16: return isIdentifier(); - case 12 /* ArgumentExpressions */: - return token === 23 /* CommaToken */ || isStartOfExpression(); - case 14 /* ArrayLiteralMembers */: - return token === 23 /* CommaToken */ || token === 21 /* DotDotDotToken */ || isStartOfExpression(); - case 15 /* Parameters */: + case 12: + return token === 23 || isStartOfExpression(); + case 14: + return token === 23 || token === 21 || isStartOfExpression(); + case 15: return isStartOfParameter(); - case 17 /* TypeArguments */: - case 18 /* TupleElementTypes */: - return token === 23 /* CommaToken */ || isStartOfType(); - case 19 /* HeritageClauses */: + case 17: + case 18: + return token === 23 || isStartOfType(); + case 19: return isHeritageClause(); } ts.Debug.fail("Non-exhaustive case in 'isListElement'."); @@ -4719,61 +4765,61 @@ var ts; return isIdentifier(); } function isNotHeritageClauseTypeName() { - if (token === 101 /* ImplementsKeyword */ || token === 78 /* ExtendsKeyword */) { + if (token === 101 || token === 78) { return lookAhead(nextTokenIsIdentifier); } return false; } function isListTerminator(kind) { - if (token === 1 /* EndOfFileToken */) { + if (token === 1) { return true; } switch (kind) { - case 1 /* ModuleElements */: - case 2 /* BlockStatements */: - case 3 /* SwitchClauses */: - case 5 /* TypeMembers */: - case 6 /* ClassMembers */: - case 7 /* EnumMembers */: - case 13 /* ObjectLiteralMembers */: - case 10 /* ObjectBindingElements */: - return token === 15 /* CloseBraceToken */; - case 4 /* SwitchClauseStatements */: - return token === 15 /* CloseBraceToken */ || token === 66 /* CaseKeyword */ || token === 72 /* DefaultKeyword */; - case 8 /* TypeReferences */: - return token === 14 /* OpenBraceToken */ || token === 78 /* ExtendsKeyword */ || token === 101 /* ImplementsKeyword */; - case 9 /* VariableDeclarations */: + case 1: + case 2: + case 3: + case 5: + case 6: + case 7: + case 13: + case 10: + return token === 15; + case 4: + return token === 15 || token === 66 || token === 72; + case 8: + return token === 14 || token === 78 || token === 101; + case 9: return isVariableDeclaratorListTerminator(); - case 16 /* TypeParameters */: - return token === 25 /* GreaterThanToken */ || token === 16 /* OpenParenToken */ || token === 14 /* OpenBraceToken */ || token === 78 /* ExtendsKeyword */ || token === 101 /* ImplementsKeyword */; - case 12 /* ArgumentExpressions */: - return token === 17 /* CloseParenToken */ || token === 22 /* SemicolonToken */; - case 14 /* ArrayLiteralMembers */: - case 18 /* TupleElementTypes */: - case 11 /* ArrayBindingElements */: - return token === 19 /* CloseBracketToken */; - case 15 /* Parameters */: - return token === 17 /* CloseParenToken */ || token === 19 /* CloseBracketToken */; - case 17 /* TypeArguments */: - return token === 25 /* GreaterThanToken */ || token === 16 /* OpenParenToken */; - case 19 /* HeritageClauses */: - return token === 14 /* OpenBraceToken */ || token === 15 /* CloseBraceToken */; + case 16: + return token === 25 || token === 16 || token === 14 || token === 78 || token === 101; + case 12: + return token === 17 || token === 22; + case 14: + case 18: + case 11: + return token === 19; + case 15: + return token === 17 || token === 19; + case 17: + return token === 25 || token === 16; + case 19: + return token === 14 || token === 15; } } function isVariableDeclaratorListTerminator() { if (canParseSemicolon()) { return true; } - if (token === 85 /* InKeyword */) { + if (token === 85) { return true; } - if (token === 32 /* EqualsGreaterThanToken */) { + if (token === 32) { return true; } return false; } function isInSomeParsingContext() { - for (var kind = 0; kind < 20 /* Count */; kind++) { + for (var kind = 0; kind < 20; kind++) { if (parsingContext & (1 << kind)) { if (isListElement(kind, true) || isListTerminator(kind)) { return true; @@ -4838,7 +4884,7 @@ var ts; if (ts.containsParseError(node)) { return undefined; } - var nodeContextFlags = node.parserContextFlags & 31 /* ParserGeneratedFlags */; + var nodeContextFlags = node.parserContextFlags & 31; if (nodeContextFlags !== contextFlags) { return undefined; } @@ -4854,61 +4900,61 @@ var ts; } function canReuseNode(node, parsingContext) { switch (parsingContext) { - case 1 /* ModuleElements */: + case 1: return isReusableModuleElement(node); - case 6 /* ClassMembers */: + case 6: return isReusableClassMember(node); - case 3 /* SwitchClauses */: + case 3: return isReusableSwitchClause(node); - case 2 /* BlockStatements */: - case 4 /* SwitchClauseStatements */: + case 2: + case 4: return isReusableStatement(node); - case 7 /* EnumMembers */: + case 7: return isReusableEnumMember(node); - case 5 /* TypeMembers */: + case 5: return isReusableTypeMember(node); - case 9 /* VariableDeclarations */: + case 9: return isReusableVariableDeclaration(node); - case 15 /* Parameters */: + case 15: return isReusableParameter(node); - case 19 /* HeritageClauses */: - case 8 /* TypeReferences */: - case 16 /* TypeParameters */: - case 18 /* TupleElementTypes */: - case 17 /* TypeArguments */: - case 12 /* ArgumentExpressions */: - case 13 /* ObjectLiteralMembers */: + case 19: + case 8: + case 16: + case 18: + case 17: + case 12: + case 13: } return false; } function isReusableModuleElement(node) { if (node) { switch (node.kind) { - case 197 /* ImportDeclaration */: - case 198 /* ExportAssignment */: - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 195 /* ModuleDeclaration */: - case 194 /* EnumDeclaration */: - case 190 /* FunctionDeclaration */: - case 171 /* VariableStatement */: - case 170 /* Block */: - case 174 /* IfStatement */: - case 173 /* ExpressionStatement */: - case 185 /* ThrowStatement */: - case 181 /* ReturnStatement */: - case 183 /* SwitchStatement */: - case 180 /* BreakStatement */: - case 179 /* ContinueStatement */: - case 178 /* ForInStatement */: - case 177 /* ForStatement */: - case 176 /* WhileStatement */: - case 182 /* WithStatement */: - case 172 /* EmptyStatement */: - case 186 /* TryStatement */: - case 184 /* LabeledStatement */: - case 175 /* DoStatement */: - case 187 /* DebuggerStatement */: + case 197: + case 198: + case 191: + case 192: + case 195: + case 194: + case 190: + case 171: + case 170: + case 174: + case 173: + case 185: + case 181: + case 183: + case 180: + case 179: + case 178: + case 177: + case 176: + case 182: + case 172: + case 186: + case 184: + case 175: + case 187: return true; } } @@ -4917,12 +4963,12 @@ var ts; function isReusableClassMember(node) { if (node) { switch (node.kind) { - case 129 /* Constructor */: - case 134 /* IndexSignature */: - case 128 /* MethodDeclaration */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 126 /* PropertyDeclaration */: + case 129: + case 134: + case 128: + case 130: + case 131: + case 126: return true; } } @@ -4931,8 +4977,8 @@ var ts; function isReusableSwitchClause(node) { if (node) { switch (node.kind) { - case 200 /* CaseClause */: - case 201 /* DefaultClause */: + case 200: + case 201: return true; } } @@ -4941,55 +4987,55 @@ var ts; function isReusableStatement(node) { if (node) { switch (node.kind) { - case 190 /* FunctionDeclaration */: - case 171 /* VariableStatement */: - case 170 /* Block */: - case 174 /* IfStatement */: - case 173 /* ExpressionStatement */: - case 185 /* ThrowStatement */: - case 181 /* ReturnStatement */: - case 183 /* SwitchStatement */: - case 180 /* BreakStatement */: - case 179 /* ContinueStatement */: - case 178 /* ForInStatement */: - case 177 /* ForStatement */: - case 176 /* WhileStatement */: - case 182 /* WithStatement */: - case 172 /* EmptyStatement */: - case 186 /* TryStatement */: - case 184 /* LabeledStatement */: - case 175 /* DoStatement */: - case 187 /* DebuggerStatement */: + case 190: + case 171: + case 170: + case 174: + case 173: + case 185: + case 181: + case 183: + case 180: + case 179: + case 178: + case 177: + case 176: + case 182: + case 172: + case 186: + case 184: + case 175: + case 187: return true; } } return false; } function isReusableEnumMember(node) { - return node.kind === 206 /* EnumMember */; + return node.kind === 206; } function isReusableTypeMember(node) { if (node) { switch (node.kind) { - case 133 /* ConstructSignature */: - case 127 /* MethodSignature */: - case 134 /* IndexSignature */: - case 125 /* PropertySignature */: - case 132 /* CallSignature */: + case 133: + case 127: + case 134: + case 125: + case 132: return true; } } return false; } function isReusableVariableDeclaration(node) { - if (node.kind !== 188 /* VariableDeclaration */) { + if (node.kind !== 188) { return false; } var variableDeclarator = node; return variableDeclarator.initializer === undefined; } function isReusableParameter(node) { - return node.kind === 124 /* Parameter */; + return node.kind === 124; } function abortParsingListOrMoveToNextToken(kind) { parseErrorAtCurrentToken(parsingContextErrors(kind)); @@ -5009,14 +5055,14 @@ var ts; if (isListElement(kind, false)) { result.push(parseListElement(kind, parseElement)); commaStart = scanner.getTokenPos(); - if (parseOptional(23 /* CommaToken */)) { + if (parseOptional(23)) { continue; } commaStart = -1; if (isListTerminator(kind)) { break; } - parseExpected(23 /* CommaToken */); + parseExpected(23); continue; } if (isListTerminator(kind)) { @@ -5050,8 +5096,8 @@ var ts; } function parseEntityName(allowReservedWords, diagnosticMessage) { var entity = parseIdentifier(diagnosticMessage); - while (parseOptional(20 /* DotToken */)) { - var node = createNode(121 /* QualifiedName */, entity.pos); + while (parseOptional(20)) { + var node = createNode(121, entity.pos); node.left = entity; node.right = parseRightSideOfDot(allowReservedWords); entity = finishNode(node); @@ -5062,7 +5108,7 @@ var ts; if (scanner.hasPrecedingLineBreak() && scanner.isReservedWord()) { var matchesPattern = lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine); if (matchesPattern) { - return createMissingNode(64 /* Identifier */, true, ts.Diagnostics.Identifier_expected); + return createMissingNode(64, true, ts.Diagnostics.Identifier_expected); } } return allowIdentifierNames ? parseIdentifierName() : parseIdentifier(); @@ -5073,28 +5119,28 @@ var ts; return finishNode(node); } function parseTemplateExpression() { - var template = createNode(165 /* TemplateExpression */); + var template = createNode(165); template.head = parseLiteralNode(); - ts.Debug.assert(template.head.kind === 11 /* TemplateHead */, "Template head has wrong token kind"); + ts.Debug.assert(template.head.kind === 11, "Template head has wrong token kind"); var templateSpans = []; templateSpans.pos = getNodePos(); do { templateSpans.push(parseTemplateSpan()); - } while (templateSpans[templateSpans.length - 1].literal.kind === 12 /* TemplateMiddle */); + } while (templateSpans[templateSpans.length - 1].literal.kind === 12); templateSpans.end = getNodeEnd(); template.templateSpans = templateSpans; return finishNode(template); } function parseTemplateSpan() { - var span = createNode(169 /* TemplateSpan */); + var span = createNode(169); span.expression = allowInAnd(parseExpression); var literal; - if (token === 15 /* CloseBraceToken */) { + if (token === 15) { reScanTemplateToken(); literal = parseLiteralNode(); } else { - literal = createMissingNode(13 /* TemplateTail */, false, ts.Diagnostics._0_expected, ts.tokenToString(15 /* CloseBraceToken */)); + literal = createMissingNode(13, false, ts.Diagnostics._0_expected, ts.tokenToString(15)); } span.literal = literal; return finishNode(span); @@ -5109,29 +5155,29 @@ var ts; var tokenPos = scanner.getTokenPos(); nextToken(); finishNode(node); - if (node.kind === 7 /* NumericLiteral */ && sourceText.charCodeAt(tokenPos) === 48 /* _0 */ && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { - node.flags |= 8192 /* OctalLiteral */; + if (node.kind === 7 && sourceText.charCodeAt(tokenPos) === 48 && ts.isOctalDigit(sourceText.charCodeAt(tokenPos + 1))) { + node.flags |= 8192; } return node; } function parseTypeReference() { - var node = createNode(135 /* TypeReference */); + var node = createNode(135); node.typeName = parseEntityName(false, ts.Diagnostics.Type_expected); - if (!scanner.hasPrecedingLineBreak() && token === 24 /* LessThanToken */) { - node.typeArguments = parseBracketedList(17 /* TypeArguments */, parseType, 24 /* LessThanToken */, 25 /* GreaterThanToken */); + if (!scanner.hasPrecedingLineBreak() && token === 24) { + node.typeArguments = parseBracketedList(17, parseType, 24, 25); } return finishNode(node); } function parseTypeQuery() { - var node = createNode(138 /* TypeQuery */); - parseExpected(96 /* TypeOfKeyword */); + var node = createNode(138); + parseExpected(96); node.exprName = parseEntityName(true); return finishNode(node); } function parseTypeParameter() { - var node = createNode(123 /* TypeParameter */); + var node = createNode(123); node.name = parseIdentifier(); - if (parseOptional(78 /* ExtendsKeyword */)) { + if (parseOptional(78)) { if (isStartOfType() || !isStartOfExpression()) { node.constraint = parseType(); } @@ -5142,18 +5188,18 @@ var ts; return finishNode(node); } function parseTypeParameters() { - if (token === 24 /* LessThanToken */) { - return parseBracketedList(16 /* TypeParameters */, parseTypeParameter, 24 /* LessThanToken */, 25 /* GreaterThanToken */); + if (token === 24) { + return parseBracketedList(16, parseTypeParameter, 24, 25); } } function parseParameterType() { - if (parseOptional(51 /* ColonToken */)) { - return token === 8 /* StringLiteral */ ? parseLiteralNode(true) : parseType(); + if (parseOptional(51)) { + return token === 8 ? parseLiteralNode(true) : parseType(); } return undefined; } function isStartOfParameter() { - return token === 21 /* DotDotDotToken */ || isIdentifierOrPattern() || ts.isModifier(token); + return token === 21 || isIdentifierOrPattern() || ts.isModifier(token); } function setModifiers(node, modifiers) { if (modifiers) { @@ -5162,14 +5208,14 @@ var ts; } } function parseParameter() { - var node = createNode(124 /* Parameter */); + var node = createNode(124); setModifiers(node, parseModifiers()); - node.dotDotDotToken = parseOptionalToken(21 /* DotDotDotToken */); + node.dotDotDotToken = parseOptionalToken(21); node.name = inGeneratorParameterContext() ? doInYieldContext(parseIdentifierOrPattern) : parseIdentifierOrPattern(); if (ts.getFullWidth(node.name) === 0 && node.flags === 0 && ts.isModifier(token)) { nextToken(); } - node.questionToken = parseOptionalToken(50 /* QuestionToken */); + node.questionToken = parseOptionalToken(50); node.type = parseParameterType(); node.initializer = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseParameterInitializer) : parseParameterInitializer(); return finishNode(node); @@ -5178,7 +5224,7 @@ var ts; return parseInitializer(true); } function fillSignature(returnToken, yieldAndGeneratorParameterContext, requireCompleteParameterList, signature) { - var returnTokenRequired = returnToken === 32 /* EqualsGreaterThanToken */; + var returnTokenRequired = returnToken === 32; signature.typeParameters = parseTypeParameters(); signature.parameters = parseParameterList(yieldAndGeneratorParameterContext, requireCompleteParameterList); if (returnTokenRequired) { @@ -5190,15 +5236,15 @@ var ts; } } function parseParameterList(yieldAndGeneratorParameterContext, requireCompleteParameterList) { - if (parseExpected(16 /* OpenParenToken */)) { + if (parseExpected(16)) { var savedYieldContext = inYieldContext(); var savedGeneratorParameterContext = inGeneratorParameterContext(); setYieldContext(yieldAndGeneratorParameterContext); setGeneratorParameterContext(yieldAndGeneratorParameterContext); - var result = parseDelimitedList(15 /* Parameters */, parseParameter); + var result = parseDelimitedList(15, parseParameter); setYieldContext(savedYieldContext); setGeneratorParameterContext(savedGeneratorParameterContext); - if (!parseExpected(17 /* CloseParenToken */) && requireCompleteParameterList) { + if (!parseExpected(17) && requireCompleteParameterList) { return undefined; } return result; @@ -5209,26 +5255,26 @@ var ts; if (parseSemicolon()) { return; } - parseOptional(23 /* CommaToken */); + parseOptional(23); } function parseSignatureMember(kind) { var node = createNode(kind); - if (kind === 133 /* ConstructSignature */) { - parseExpected(87 /* NewKeyword */); + if (kind === 133) { + parseExpected(87); } - fillSignature(51 /* ColonToken */, false, false, node); + fillSignature(51, false, false, node); parseTypeMemberSemicolon(); return finishNode(node); } function isIndexSignature() { - if (token !== 18 /* OpenBracketToken */) { + if (token !== 18) { return false; } return lookAhead(isUnambiguouslyIndexSignature); } function isUnambiguouslyIndexSignature() { nextToken(); - if (token === 21 /* DotDotDotToken */ || token === 19 /* CloseBracketToken */) { + if (token === 21 || token === 19) { return true; } if (ts.isModifier(token)) { @@ -5243,20 +5289,20 @@ var ts; else { nextToken(); } - if (token === 51 /* ColonToken */ || token === 23 /* CommaToken */) { + if (token === 51 || token === 23) { return true; } - if (token !== 50 /* QuestionToken */) { + if (token !== 50) { return false; } nextToken(); - return token === 51 /* ColonToken */ || token === 23 /* CommaToken */ || token === 19 /* CloseBracketToken */; + return token === 51 || token === 23 || token === 19; } function parseIndexSignatureDeclaration(modifiers) { var fullStart = modifiers ? modifiers.pos : scanner.getStartPos(); - var node = createNode(134 /* IndexSignature */, fullStart); + var node = createNode(134, fullStart); setModifiers(node, modifiers); - node.parameters = parseBracketedList(15 /* Parameters */, parseParameter, 18 /* OpenBracketToken */, 19 /* CloseBracketToken */); + node.parameters = parseBracketedList(15, parseParameter, 18, 19); node.type = parseTypeAnnotation(); parseTypeMemberSemicolon(); return finishNode(node); @@ -5264,17 +5310,17 @@ var ts; function parsePropertyOrMethodSignature() { var fullStart = scanner.getStartPos(); var name = parsePropertyName(); - var questionToken = parseOptionalToken(50 /* QuestionToken */); - if (token === 16 /* OpenParenToken */ || token === 24 /* LessThanToken */) { - var method = createNode(127 /* MethodSignature */, fullStart); + var questionToken = parseOptionalToken(50); + if (token === 16 || token === 24) { + var method = createNode(127, fullStart); method.name = name; method.questionToken = questionToken; - fillSignature(51 /* ColonToken */, false, false, method); + fillSignature(51, false, false, method); parseTypeMemberSemicolon(); return finishNode(method); } else { - var property = createNode(125 /* PropertySignature */, fullStart); + var property = createNode(125, fullStart); property.name = name; property.questionToken = questionToken; property.type = parseTypeAnnotation(); @@ -5284,9 +5330,9 @@ var ts; } function isStartOfTypeMember() { switch (token) { - case 16 /* OpenParenToken */: - case 24 /* LessThanToken */: - case 18 /* OpenBracketToken */: + case 16: + case 24: + case 18: return true; default: if (ts.isModifier(token)) { @@ -5306,21 +5352,21 @@ var ts; } function isTypeMemberWithLiteralPropertyName() { nextToken(); - return token === 16 /* OpenParenToken */ || token === 24 /* LessThanToken */ || token === 50 /* QuestionToken */ || token === 51 /* ColonToken */ || canParseSemicolon(); + return token === 16 || token === 24 || token === 50 || token === 51 || canParseSemicolon(); } function parseTypeMember() { switch (token) { - case 16 /* OpenParenToken */: - case 24 /* LessThanToken */: - return parseSignatureMember(132 /* CallSignature */); - case 18 /* OpenBracketToken */: + case 16: + case 24: + return parseSignatureMember(132); + case 18: return isIndexSignature() ? parseIndexSignatureDeclaration(undefined) : parsePropertyOrMethodSignature(); - case 87 /* NewKeyword */: + case 87: if (lookAhead(isStartOfConstructSignature)) { - return parseSignatureMember(133 /* ConstructSignature */); + return parseSignatureMember(133); } - case 8 /* StringLiteral */: - case 7 /* NumericLiteral */: + case 8: + case 7: return parsePropertyOrMethodSignature(); default: if (ts.isModifier(token)) { @@ -5340,18 +5386,18 @@ var ts; } function isStartOfConstructSignature() { nextToken(); - return token === 16 /* OpenParenToken */ || token === 24 /* LessThanToken */; + return token === 16 || token === 24; } function parseTypeLiteral() { - var node = createNode(139 /* TypeLiteral */); + var node = createNode(139); node.members = parseObjectTypeMembers(); return finishNode(node); } function parseObjectTypeMembers() { var members; - if (parseExpected(14 /* OpenBraceToken */)) { - members = parseList(5 /* TypeMembers */, false, parseTypeMember); - parseExpected(15 /* CloseBraceToken */); + if (parseExpected(14)) { + members = parseList(5, false, parseTypeMember); + parseExpected(15); } else { members = createMissingList(); @@ -5359,46 +5405,46 @@ var ts; return members; } function parseTupleType() { - var node = createNode(141 /* TupleType */); - node.elementTypes = parseBracketedList(18 /* TupleElementTypes */, parseType, 18 /* OpenBracketToken */, 19 /* CloseBracketToken */); + var node = createNode(141); + node.elementTypes = parseBracketedList(18, parseType, 18, 19); return finishNode(node); } function parseParenthesizedType() { - var node = createNode(143 /* ParenthesizedType */); - parseExpected(16 /* OpenParenToken */); + var node = createNode(143); + parseExpected(16); node.type = parseType(); - parseExpected(17 /* CloseParenToken */); + parseExpected(17); return finishNode(node); } function parseFunctionOrConstructorType(kind) { var node = createNode(kind); - if (kind === 137 /* ConstructorType */) { - parseExpected(87 /* NewKeyword */); + if (kind === 137) { + parseExpected(87); } - fillSignature(32 /* EqualsGreaterThanToken */, false, false, node); + fillSignature(32, false, false, node); return finishNode(node); } function parseKeywordAndNoDot() { var node = parseTokenNode(); - return token === 20 /* DotToken */ ? undefined : node; + return token === 20 ? undefined : node; } function parseNonArrayType() { switch (token) { - case 110 /* AnyKeyword */: - case 119 /* StringKeyword */: - case 117 /* NumberKeyword */: - case 111 /* BooleanKeyword */: + case 110: + case 119: + case 117: + case 111: var node = tryParse(parseKeywordAndNoDot); return node || parseTypeReference(); - case 98 /* VoidKeyword */: + case 98: return parseTokenNode(); - case 96 /* TypeOfKeyword */: + case 96: return parseTypeQuery(); - case 14 /* OpenBraceToken */: + case 14: return parseTypeLiteral(); - case 18 /* OpenBracketToken */: + case 18: return parseTupleType(); - case 16 /* OpenParenToken */: + case 16: return parseParenthesizedType(); default: return parseTypeReference(); @@ -5406,18 +5452,18 @@ var ts; } function isStartOfType() { switch (token) { - case 110 /* AnyKeyword */: - case 119 /* StringKeyword */: - case 117 /* NumberKeyword */: - case 111 /* BooleanKeyword */: - case 98 /* VoidKeyword */: - case 96 /* TypeOfKeyword */: - case 14 /* OpenBraceToken */: - case 18 /* OpenBracketToken */: - case 24 /* LessThanToken */: - case 87 /* NewKeyword */: + case 110: + case 119: + case 117: + case 111: + case 98: + case 96: + case 14: + case 18: + case 24: + case 87: return true; - case 16 /* OpenParenToken */: + case 16: return lookAhead(isStartOfParenthesizedOrFunctionType); default: return isIdentifier(); @@ -5425,13 +5471,13 @@ var ts; } function isStartOfParenthesizedOrFunctionType() { nextToken(); - return token === 17 /* CloseParenToken */ || isStartOfParameter() || isStartOfType(); + return token === 17 || isStartOfParameter() || isStartOfType(); } function parseArrayTypeOrHigher() { var type = parseNonArrayType(); - while (!scanner.hasPrecedingLineBreak() && parseOptional(18 /* OpenBracketToken */)) { - parseExpected(19 /* CloseBracketToken */); - var node = createNode(140 /* ArrayType */, type.pos); + while (!scanner.hasPrecedingLineBreak() && parseOptional(18)) { + parseExpected(19); + var node = createNode(140, type.pos); node.elementType = type; type = finishNode(node); } @@ -5439,38 +5485,38 @@ var ts; } function parseUnionTypeOrHigher() { var type = parseArrayTypeOrHigher(); - if (token === 44 /* BarToken */) { + if (token === 44) { var types = [type]; types.pos = type.pos; - while (parseOptional(44 /* BarToken */)) { + while (parseOptional(44)) { types.push(parseArrayTypeOrHigher()); } types.end = getNodeEnd(); - var node = createNode(142 /* UnionType */, type.pos); + var node = createNode(142, type.pos); node.types = types; type = finishNode(node); } return type; } function isStartOfFunctionType() { - if (token === 24 /* LessThanToken */) { + if (token === 24) { return true; } - return token === 16 /* OpenParenToken */ && lookAhead(isUnambiguouslyStartOfFunctionType); + return token === 16 && lookAhead(isUnambiguouslyStartOfFunctionType); } function isUnambiguouslyStartOfFunctionType() { nextToken(); - if (token === 17 /* CloseParenToken */ || token === 21 /* DotDotDotToken */) { + if (token === 17 || token === 21) { return true; } if (isIdentifier() || ts.isModifier(token)) { nextToken(); - if (token === 51 /* ColonToken */ || token === 23 /* CommaToken */ || token === 50 /* QuestionToken */ || token === 52 /* EqualsToken */ || isIdentifier() || ts.isModifier(token)) { + if (token === 51 || token === 23 || token === 50 || token === 52 || isIdentifier() || ts.isModifier(token)) { return true; } - if (token === 17 /* CloseParenToken */) { + if (token === 17) { nextToken(); - if (token === 32 /* EqualsGreaterThanToken */) { + if (token === 32) { return true; } } @@ -5489,46 +5535,46 @@ var ts; } function parseTypeWorker() { if (isStartOfFunctionType()) { - return parseFunctionOrConstructorType(136 /* FunctionType */); + return parseFunctionOrConstructorType(136); } - if (token === 87 /* NewKeyword */) { - return parseFunctionOrConstructorType(137 /* ConstructorType */); + if (token === 87) { + return parseFunctionOrConstructorType(137); } return parseUnionTypeOrHigher(); } function parseTypeAnnotation() { - return parseOptional(51 /* ColonToken */) ? parseType() : undefined; + return parseOptional(51) ? parseType() : undefined; } function isStartOfExpression() { switch (token) { - case 92 /* ThisKeyword */: - case 90 /* SuperKeyword */: - case 88 /* NullKeyword */: - case 94 /* TrueKeyword */: - case 79 /* FalseKeyword */: - case 7 /* NumericLiteral */: - case 8 /* StringLiteral */: - case 10 /* NoSubstitutionTemplateLiteral */: - case 11 /* TemplateHead */: - case 16 /* OpenParenToken */: - case 18 /* OpenBracketToken */: - case 14 /* OpenBraceToken */: - case 82 /* FunctionKeyword */: - case 87 /* NewKeyword */: - case 36 /* SlashToken */: - case 56 /* SlashEqualsToken */: - case 33 /* PlusToken */: - case 34 /* MinusToken */: - case 47 /* TildeToken */: - case 46 /* ExclamationToken */: - case 73 /* DeleteKeyword */: - case 96 /* TypeOfKeyword */: - case 98 /* VoidKeyword */: - case 38 /* PlusPlusToken */: - case 39 /* MinusMinusToken */: - case 24 /* LessThanToken */: - case 64 /* Identifier */: - case 109 /* YieldKeyword */: + case 92: + case 90: + case 88: + case 94: + case 79: + case 7: + case 8: + case 10: + case 11: + case 16: + case 18: + case 14: + case 82: + case 87: + case 36: + case 56: + case 33: + case 34: + case 47: + case 46: + case 73: + case 96: + case 98: + case 38: + case 39: + case 24: + case 64: + case 109: return true; default: if (isBinaryOperator()) { @@ -5538,22 +5584,22 @@ var ts; } } function isStartOfExpressionStatement() { - return token !== 14 /* OpenBraceToken */ && token !== 82 /* FunctionKeyword */ && isStartOfExpression(); + return token !== 14 && token !== 82 && isStartOfExpression(); } function parseExpression() { var expr = parseAssignmentExpressionOrHigher(); - while (parseOptional(23 /* CommaToken */)) { - expr = makeBinaryExpression(expr, 23 /* CommaToken */, parseAssignmentExpressionOrHigher()); + while (parseOptional(23)) { + expr = makeBinaryExpression(expr, 23, parseAssignmentExpressionOrHigher()); } return expr; } function parseInitializer(inParameter) { - if (token !== 52 /* EqualsToken */) { - if (scanner.hasPrecedingLineBreak() || (inParameter && token === 14 /* OpenBraceToken */) || !isStartOfExpression()) { + if (token !== 52) { + if (scanner.hasPrecedingLineBreak() || (inParameter && token === 14) || !isStartOfExpression()) { return undefined; } } - parseExpected(52 /* EqualsToken */); + parseExpected(52); return parseAssignmentExpressionOrHigher(); } function parseAssignmentExpressionOrHigher() { @@ -5565,7 +5611,7 @@ var ts; return arrowExpression; } var expr = parseBinaryExpressionOrHigher(0); - if (expr.kind === 64 /* Identifier */ && token === 32 /* EqualsGreaterThanToken */) { + if (expr.kind === 64 && token === 32) { return parseSimpleArrowFunctionExpression(expr); } if (isLeftHandSideExpression(expr) && isAssignmentOperator(reScanGreaterToken())) { @@ -5576,7 +5622,7 @@ var ts; return parseConditionalExpressionRest(expr); } function isYieldExpression() { - if (token === 109 /* YieldKeyword */) { + if (token === 109) { if (inYieldContext()) { return true; } @@ -5592,10 +5638,10 @@ var ts; return !scanner.hasPrecedingLineBreak() && isIdentifier(); } function parseYieldExpression() { - var node = createNode(166 /* YieldExpression */); + var node = createNode(166); nextToken(); - if (!scanner.hasPrecedingLineBreak() && (token === 35 /* AsteriskToken */ || isStartOfExpression())) { - node.asteriskToken = parseOptionalToken(35 /* AsteriskToken */); + if (!scanner.hasPrecedingLineBreak() && (token === 35 || isStartOfExpression())) { + node.asteriskToken = parseOptionalToken(35); node.expression = parseAssignmentExpressionOrHigher(); return finishNode(node); } @@ -5604,28 +5650,28 @@ var ts; } } function parseSimpleArrowFunctionExpression(identifier) { - ts.Debug.assert(token === 32 /* EqualsGreaterThanToken */, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); - var node = createNode(157 /* ArrowFunction */, identifier.pos); - var parameter = createNode(124 /* Parameter */, identifier.pos); + ts.Debug.assert(token === 32, "parseSimpleArrowFunctionExpression should only have been called if we had a =>"); + var node = createNode(157, identifier.pos); + var parameter = createNode(124, identifier.pos); parameter.name = identifier; finishNode(parameter); node.parameters = [parameter]; node.parameters.pos = parameter.pos; node.parameters.end = parameter.end; - parseExpected(32 /* EqualsGreaterThanToken */); + parseExpected(32); node.body = parseArrowFunctionExpressionBody(); return finishNode(node); } function tryParseParenthesizedArrowFunctionExpression() { var triState = isParenthesizedArrowFunctionExpression(); - if (triState === 0 /* False */) { + if (triState === 0) { return undefined; } - var arrowFunction = triState === 1 /* True */ ? parseParenthesizedArrowFunctionExpressionHead(true) : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead); + var arrowFunction = triState === 1 ? parseParenthesizedArrowFunctionExpressionHead(true) : tryParse(parsePossibleParenthesizedArrowFunctionExpressionHead); if (!arrowFunction) { return undefined; } - if (parseExpected(32 /* EqualsGreaterThanToken */) || token === 14 /* OpenBraceToken */) { + if (parseExpected(32) || token === 14) { arrowFunction.body = parseArrowFunctionExpressionBody(); } else { @@ -5634,79 +5680,79 @@ var ts; return finishNode(arrowFunction); } function isParenthesizedArrowFunctionExpression() { - if (token === 16 /* OpenParenToken */ || token === 24 /* LessThanToken */) { + if (token === 16 || token === 24) { return lookAhead(isParenthesizedArrowFunctionExpressionWorker); } - if (token === 32 /* EqualsGreaterThanToken */) { - return 1 /* True */; + if (token === 32) { + return 1; } - return 0 /* False */; + return 0; } function isParenthesizedArrowFunctionExpressionWorker() { var first = token; var second = nextToken(); - if (first === 16 /* OpenParenToken */) { - if (second === 17 /* CloseParenToken */) { + if (first === 16) { + if (second === 17) { var third = nextToken(); switch (third) { - case 32 /* EqualsGreaterThanToken */: - case 51 /* ColonToken */: - case 14 /* OpenBraceToken */: - return 1 /* True */; + case 32: + case 51: + case 14: + return 1; default: - return 0 /* False */; + return 0; } } - if (second === 21 /* DotDotDotToken */) { - return 1 /* True */; + if (second === 21) { + return 1; } if (!isIdentifier()) { - return 0 /* False */; + return 0; } - if (nextToken() === 51 /* ColonToken */) { - return 1 /* True */; + if (nextToken() === 51) { + return 1; } - return 2 /* Unknown */; + return 2; } else { - ts.Debug.assert(first === 24 /* LessThanToken */); + ts.Debug.assert(first === 24); if (!isIdentifier()) { - return 0 /* False */; + return 0; } - return 2 /* Unknown */; + return 2; } } function parsePossibleParenthesizedArrowFunctionExpressionHead() { return parseParenthesizedArrowFunctionExpressionHead(false); } function parseParenthesizedArrowFunctionExpressionHead(allowAmbiguity) { - var node = createNode(157 /* ArrowFunction */); - fillSignature(51 /* ColonToken */, false, !allowAmbiguity, node); + var node = createNode(157); + fillSignature(51, false, !allowAmbiguity, node); if (!node.parameters) { return undefined; } - if (!allowAmbiguity && token !== 32 /* EqualsGreaterThanToken */ && token !== 14 /* OpenBraceToken */) { + if (!allowAmbiguity && token !== 32 && token !== 14) { return undefined; } return node; } function parseArrowFunctionExpressionBody() { - if (token === 14 /* OpenBraceToken */) { + if (token === 14) { return parseFunctionBlock(false, false); } - if (isStartOfStatement(true) && !isStartOfExpressionStatement() && token !== 82 /* FunctionKeyword */) { + if (isStartOfStatement(true) && !isStartOfExpressionStatement() && token !== 82) { return parseFunctionBlock(false, true); } return parseAssignmentExpressionOrHigher(); } function parseConditionalExpressionRest(leftOperand) { - if (!parseOptional(50 /* QuestionToken */)) { + if (!parseOptional(50)) { return leftOperand; } - var node = createNode(164 /* ConditionalExpression */, leftOperand.pos); + var node = createNode(164, leftOperand.pos); node.condition = leftOperand; node.whenTrue = allowInAnd(parseAssignmentExpressionOrHigher); - parseExpected(51 /* ColonToken */); + parseExpected(51); node.whenFalse = parseAssignmentExpressionOrHigher(); return finishNode(node); } @@ -5721,7 +5767,7 @@ var ts; if (newPrecedence <= precedence) { break; } - if (token === 85 /* InKeyword */ && inDisallowInContext()) { + if (token === 85 && inDisallowInContext()) { break; } var operator = token; @@ -5731,97 +5777,97 @@ var ts; return leftOperand; } function isBinaryOperator() { - if (inDisallowInContext() && token === 85 /* InKeyword */) { + if (inDisallowInContext() && token === 85) { return false; } return getBinaryOperatorPrecedence() > 0; } function getBinaryOperatorPrecedence() { switch (token) { - case 49 /* BarBarToken */: + case 49: return 1; - case 48 /* AmpersandAmpersandToken */: + case 48: return 2; - case 44 /* BarToken */: + case 44: return 3; - case 45 /* CaretToken */: + case 45: return 4; - case 43 /* AmpersandToken */: + case 43: return 5; - case 28 /* EqualsEqualsToken */: - case 29 /* ExclamationEqualsToken */: - case 30 /* EqualsEqualsEqualsToken */: - case 31 /* ExclamationEqualsEqualsToken */: + case 28: + case 29: + case 30: + case 31: return 6; - case 24 /* LessThanToken */: - case 25 /* GreaterThanToken */: - case 26 /* LessThanEqualsToken */: - case 27 /* GreaterThanEqualsToken */: - case 86 /* InstanceOfKeyword */: - case 85 /* InKeyword */: + case 24: + case 25: + case 26: + case 27: + case 86: + case 85: return 7; - case 40 /* LessThanLessThanToken */: - case 41 /* GreaterThanGreaterThanToken */: - case 42 /* GreaterThanGreaterThanGreaterThanToken */: + case 40: + case 41: + case 42: return 8; - case 33 /* PlusToken */: - case 34 /* MinusToken */: + case 33: + case 34: return 9; - case 35 /* AsteriskToken */: - case 36 /* SlashToken */: - case 37 /* PercentToken */: + case 35: + case 36: + case 37: return 10; } return -1; } function makeBinaryExpression(left, operator, right) { - var node = createNode(163 /* BinaryExpression */, left.pos); + var node = createNode(163, left.pos); node.left = left; node.operator = operator; node.right = right; return finishNode(node); } function parsePrefixUnaryExpression() { - var node = createNode(161 /* PrefixUnaryExpression */); + var node = createNode(161); node.operator = token; nextToken(); node.operand = parseUnaryExpressionOrHigher(); return finishNode(node); } function parseDeleteExpression() { - var node = createNode(158 /* DeleteExpression */); + var node = createNode(158); nextToken(); node.expression = parseUnaryExpressionOrHigher(); return finishNode(node); } function parseTypeOfExpression() { - var node = createNode(159 /* TypeOfExpression */); + var node = createNode(159); nextToken(); node.expression = parseUnaryExpressionOrHigher(); return finishNode(node); } function parseVoidExpression() { - var node = createNode(160 /* VoidExpression */); + var node = createNode(160); nextToken(); node.expression = parseUnaryExpressionOrHigher(); return finishNode(node); } function parseUnaryExpressionOrHigher() { switch (token) { - case 33 /* PlusToken */: - case 34 /* MinusToken */: - case 47 /* TildeToken */: - case 46 /* ExclamationToken */: - case 38 /* PlusPlusToken */: - case 39 /* MinusMinusToken */: + case 33: + case 34: + case 47: + case 46: + case 38: + case 39: return parsePrefixUnaryExpression(); - case 73 /* DeleteKeyword */: + case 73: return parseDeleteExpression(); - case 96 /* TypeOfKeyword */: + case 96: return parseTypeOfExpression(); - case 98 /* VoidKeyword */: + case 98: return parseVoidExpression(); - case 24 /* LessThanToken */: + case 24: return parseTypeAssertion(); default: return parsePostfixExpressionOrHigher(); @@ -5830,8 +5876,8 @@ var ts; function parsePostfixExpressionOrHigher() { var expression = parseLeftHandSideExpressionOrHigher(); ts.Debug.assert(isLeftHandSideExpression(expression)); - if ((token === 38 /* PlusPlusToken */ || token === 39 /* MinusMinusToken */) && !scanner.hasPrecedingLineBreak()) { - var node = createNode(162 /* PostfixUnaryExpression */, expression.pos); + if ((token === 38 || token === 39) && !scanner.hasPrecedingLineBreak()) { + var node = createNode(162, expression.pos); node.operand = expression; node.operator = token; nextToken(); @@ -5840,7 +5886,7 @@ var ts; return expression; } function parseLeftHandSideExpressionOrHigher() { - var expression = token === 90 /* SuperKeyword */ ? parseSuperExpression() : parseMemberExpressionOrHigher(); + var expression = token === 90 ? parseSuperExpression() : parseMemberExpressionOrHigher(); return parseCallExpressionRest(expression); } function parseMemberExpressionOrHigher() { @@ -5849,51 +5895,51 @@ var ts; } function parseSuperExpression() { var expression = parseTokenNode(); - if (token === 16 /* OpenParenToken */ || token === 20 /* DotToken */) { + if (token === 16 || token === 20) { return expression; } - var node = createNode(149 /* PropertyAccessExpression */, expression.pos); + var node = createNode(149, expression.pos); node.expression = expression; - parseExpected(20 /* DotToken */, ts.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); + parseExpected(20, ts.Diagnostics.super_must_be_followed_by_an_argument_list_or_member_access); node.name = parseRightSideOfDot(true); return finishNode(node); } function parseTypeAssertion() { - var node = createNode(154 /* TypeAssertionExpression */); - parseExpected(24 /* LessThanToken */); + var node = createNode(154); + parseExpected(24); node.type = parseType(); - parseExpected(25 /* GreaterThanToken */); + parseExpected(25); node.expression = parseUnaryExpressionOrHigher(); return finishNode(node); } function parseMemberExpressionRest(expression) { while (true) { var dotOrBracketStart = scanner.getTokenPos(); - if (parseOptional(20 /* DotToken */)) { - var propertyAccess = createNode(149 /* PropertyAccessExpression */, expression.pos); + if (parseOptional(20)) { + var propertyAccess = createNode(149, expression.pos); propertyAccess.expression = expression; propertyAccess.name = parseRightSideOfDot(true); expression = finishNode(propertyAccess); continue; } - if (parseOptional(18 /* OpenBracketToken */)) { - var indexedAccess = createNode(150 /* ElementAccessExpression */, expression.pos); + if (parseOptional(18)) { + var indexedAccess = createNode(150, expression.pos); indexedAccess.expression = expression; - if (token !== 19 /* CloseBracketToken */) { + if (token !== 19) { indexedAccess.argumentExpression = allowInAnd(parseExpression); - if (indexedAccess.argumentExpression.kind === 8 /* StringLiteral */ || indexedAccess.argumentExpression.kind === 7 /* NumericLiteral */) { + if (indexedAccess.argumentExpression.kind === 8 || indexedAccess.argumentExpression.kind === 7) { var literal = indexedAccess.argumentExpression; literal.text = internIdentifier(literal.text); } } - parseExpected(19 /* CloseBracketToken */); + parseExpected(19); expression = finishNode(indexedAccess); continue; } - if (token === 10 /* NoSubstitutionTemplateLiteral */ || token === 11 /* TemplateHead */) { - var tagExpression = createNode(153 /* TaggedTemplateExpression */, expression.pos); + if (token === 10 || token === 11) { + var tagExpression = createNode(153, expression.pos); tagExpression.tag = expression; - tagExpression.template = token === 10 /* NoSubstitutionTemplateLiteral */ ? parseLiteralNode() : parseTemplateExpression(); + tagExpression.template = token === 10 ? parseLiteralNode() : parseTemplateExpression(); expression = finishNode(tagExpression); continue; } @@ -5903,20 +5949,20 @@ var ts; function parseCallExpressionRest(expression) { while (true) { expression = parseMemberExpressionRest(expression); - if (token === 24 /* LessThanToken */) { + if (token === 24) { var typeArguments = tryParse(parseTypeArgumentsInExpression); if (!typeArguments) { return expression; } - var callExpr = createNode(151 /* CallExpression */, expression.pos); + var callExpr = createNode(151, expression.pos); callExpr.expression = expression; callExpr.typeArguments = typeArguments; callExpr.arguments = parseArgumentList(); expression = finishNode(callExpr); continue; } - else if (token === 16 /* OpenParenToken */) { - var callExpr = createNode(151 /* CallExpression */, expression.pos); + else if (token === 16) { + var callExpr = createNode(151, expression.pos); callExpr.expression = expression; callExpr.arguments = parseArgumentList(); expression = finishNode(callExpr); @@ -5926,42 +5972,42 @@ var ts; } } function parseArgumentList() { - parseExpected(16 /* OpenParenToken */); - var result = parseDelimitedList(12 /* ArgumentExpressions */, parseArgumentExpression); - parseExpected(17 /* CloseParenToken */); + parseExpected(16); + var result = parseDelimitedList(12, parseArgumentExpression); + parseExpected(17); return result; } function parseTypeArgumentsInExpression() { - if (!parseOptional(24 /* LessThanToken */)) { + if (!parseOptional(24)) { return undefined; } - var typeArguments = parseDelimitedList(17 /* TypeArguments */, parseType); - if (!parseExpected(25 /* GreaterThanToken */)) { + var typeArguments = parseDelimitedList(17, parseType); + if (!parseExpected(25)) { return undefined; } return typeArguments && canFollowTypeArgumentsInExpression() ? typeArguments : undefined; } function canFollowTypeArgumentsInExpression() { switch (token) { - case 16 /* OpenParenToken */: - case 20 /* DotToken */: - case 17 /* CloseParenToken */: - case 19 /* CloseBracketToken */: - case 51 /* ColonToken */: - case 22 /* SemicolonToken */: - case 23 /* CommaToken */: - case 50 /* QuestionToken */: - case 28 /* EqualsEqualsToken */: - case 30 /* EqualsEqualsEqualsToken */: - case 29 /* ExclamationEqualsToken */: - case 31 /* ExclamationEqualsEqualsToken */: - case 48 /* AmpersandAmpersandToken */: - case 49 /* BarBarToken */: - case 45 /* CaretToken */: - case 43 /* AmpersandToken */: - case 44 /* BarToken */: - case 15 /* CloseBraceToken */: - case 1 /* EndOfFileToken */: + case 16: + case 20: + case 17: + case 19: + case 51: + case 22: + case 23: + case 50: + case 28: + case 30: + case 29: + case 31: + case 48: + case 49: + case 45: + case 43: + case 44: + case 15: + case 1: return true; default: return false; @@ -5969,74 +6015,74 @@ var ts; } function parsePrimaryExpression() { switch (token) { - case 7 /* NumericLiteral */: - case 8 /* StringLiteral */: - case 10 /* NoSubstitutionTemplateLiteral */: + case 7: + case 8: + case 10: return parseLiteralNode(); - case 92 /* ThisKeyword */: - case 90 /* SuperKeyword */: - case 88 /* NullKeyword */: - case 94 /* TrueKeyword */: - case 79 /* FalseKeyword */: + case 92: + case 90: + case 88: + case 94: + case 79: return parseTokenNode(); - case 16 /* OpenParenToken */: + case 16: return parseParenthesizedExpression(); - case 18 /* OpenBracketToken */: + case 18: return parseArrayLiteralExpression(); - case 14 /* OpenBraceToken */: + case 14: return parseObjectLiteralExpression(); - case 82 /* FunctionKeyword */: + case 82: return parseFunctionExpression(); - case 87 /* NewKeyword */: + case 87: return parseNewExpression(); - case 36 /* SlashToken */: - case 56 /* SlashEqualsToken */: - if (reScanSlashToken() === 9 /* RegularExpressionLiteral */) { + case 36: + case 56: + if (reScanSlashToken() === 9) { return parseLiteralNode(); } break; - case 11 /* TemplateHead */: + case 11: return parseTemplateExpression(); } return parseIdentifier(ts.Diagnostics.Expression_expected); } function parseParenthesizedExpression() { - var node = createNode(155 /* ParenthesizedExpression */); - parseExpected(16 /* OpenParenToken */); + var node = createNode(155); + parseExpected(16); node.expression = allowInAnd(parseExpression); - parseExpected(17 /* CloseParenToken */); + parseExpected(17); return finishNode(node); } function parseAssignmentExpressionOrOmittedExpression() { - return token === 23 /* CommaToken */ ? createNode(168 /* OmittedExpression */) : parseAssignmentExpressionOrHigher(); + return token === 23 ? createNode(168) : parseAssignmentExpressionOrHigher(); } function parseSpreadElement() { - var node = createNode(167 /* SpreadElementExpression */); - parseExpected(21 /* DotDotDotToken */); + var node = createNode(167); + parseExpected(21); node.expression = parseAssignmentExpressionOrHigher(); return finishNode(node); } function parseArrayLiteralElement() { - return token === 21 /* DotDotDotToken */ ? parseSpreadElement() : parseAssignmentExpressionOrOmittedExpression(); + return token === 21 ? parseSpreadElement() : parseAssignmentExpressionOrOmittedExpression(); } function parseArgumentExpression() { return allowInAnd(parseAssignmentExpressionOrOmittedExpression); } function parseArrayLiteralExpression() { - var node = createNode(147 /* ArrayLiteralExpression */); - parseExpected(18 /* OpenBracketToken */); + var node = createNode(147); + parseExpected(18); if (scanner.hasPrecedingLineBreak()) - node.flags |= 256 /* MultiLine */; - node.elements = parseDelimitedList(14 /* ArrayLiteralMembers */, parseArrayLiteralElement); - parseExpected(19 /* CloseBracketToken */); + node.flags |= 256; + node.elements = parseDelimitedList(14, parseArrayLiteralElement); + parseExpected(19); return finishNode(node); } function tryParseAccessorDeclaration(fullStart, modifiers) { - if (parseContextualModifier(114 /* GetKeyword */)) { - return parseAccessorDeclaration(130 /* GetAccessor */, fullStart, modifiers); + if (parseContextualModifier(114)) { + return parseAccessorDeclaration(130, fullStart, modifiers); } - else if (parseContextualModifier(118 /* SetKeyword */)) { - return parseAccessorDeclaration(131 /* SetAccessor */, fullStart, modifiers); + else if (parseContextualModifier(118)) { + return parseAccessorDeclaration(131, fullStart, modifiers); } return undefined; } @@ -6047,45 +6093,45 @@ var ts; if (accessor) { return accessor; } - var asteriskToken = parseOptionalToken(35 /* AsteriskToken */); + var asteriskToken = parseOptionalToken(35); var tokenIsIdentifier = isIdentifier(); var nameToken = token; var propertyName = parsePropertyName(); - var questionToken = parseOptionalToken(50 /* QuestionToken */); - if (asteriskToken || token === 16 /* OpenParenToken */ || token === 24 /* LessThanToken */) { + var questionToken = parseOptionalToken(50); + if (asteriskToken || token === 16 || token === 24) { return parseMethodDeclaration(fullStart, modifiers, asteriskToken, propertyName, questionToken); } - if ((token === 23 /* CommaToken */ || token === 15 /* CloseBraceToken */) && tokenIsIdentifier) { - var shorthandDeclaration = createNode(205 /* ShorthandPropertyAssignment */, fullStart); + if ((token === 23 || token === 15) && tokenIsIdentifier) { + var shorthandDeclaration = createNode(205, fullStart); shorthandDeclaration.name = propertyName; shorthandDeclaration.questionToken = questionToken; return finishNode(shorthandDeclaration); } else { - var propertyAssignment = createNode(204 /* PropertyAssignment */, fullStart); + var propertyAssignment = createNode(204, fullStart); propertyAssignment.name = propertyName; propertyAssignment.questionToken = questionToken; - parseExpected(51 /* ColonToken */); + parseExpected(51); propertyAssignment.initializer = allowInAnd(parseAssignmentExpressionOrHigher); return finishNode(propertyAssignment); } } function parseObjectLiteralExpression() { - var node = createNode(148 /* ObjectLiteralExpression */); - parseExpected(14 /* OpenBraceToken */); + var node = createNode(148); + parseExpected(14); if (scanner.hasPrecedingLineBreak()) { - node.flags |= 256 /* MultiLine */; + node.flags |= 256; } - node.properties = parseDelimitedList(13 /* ObjectLiteralMembers */, parseObjectLiteralElement); - parseExpected(15 /* CloseBraceToken */); + node.properties = parseDelimitedList(13, parseObjectLiteralElement); + parseExpected(15); return finishNode(node); } function parseFunctionExpression() { - var node = createNode(156 /* FunctionExpression */); - parseExpected(82 /* FunctionKeyword */); - node.asteriskToken = parseOptionalToken(35 /* AsteriskToken */); + var node = createNode(156); + parseExpected(82); + node.asteriskToken = parseOptionalToken(35); node.name = node.asteriskToken ? doInYieldContext(parseOptionalIdentifier) : parseOptionalIdentifier(); - fillSignature(51 /* ColonToken */, !!node.asteriskToken, false, node); + fillSignature(51, !!node.asteriskToken, false, node); node.body = parseFunctionBlock(!!node.asteriskToken, false); return finishNode(node); } @@ -6093,20 +6139,20 @@ var ts; return isIdentifier() ? parseIdentifier() : undefined; } function parseNewExpression() { - var node = createNode(152 /* NewExpression */); - parseExpected(87 /* NewKeyword */); + var node = createNode(152); + parseExpected(87); node.expression = parseMemberExpressionOrHigher(); node.typeArguments = tryParse(parseTypeArgumentsInExpression); - if (node.typeArguments || token === 16 /* OpenParenToken */) { + if (node.typeArguments || token === 16) { node.arguments = parseArgumentList(); } return finishNode(node); } function parseBlock(ignoreMissingOpenBrace, checkForStrictMode, diagnosticMessage) { - var node = createNode(170 /* Block */); - if (parseExpected(14 /* OpenBraceToken */, diagnosticMessage) || ignoreMissingOpenBrace) { - node.statements = parseList(2 /* BlockStatements */, checkForStrictMode, parseStatement); - parseExpected(15 /* CloseBraceToken */); + var node = createNode(170); + if (parseExpected(14, diagnosticMessage) || ignoreMissingOpenBrace) { + node.statements = parseList(2, checkForStrictMode, parseStatement); + parseExpected(15); } else { node.statements = createMissingList(); @@ -6121,47 +6167,47 @@ var ts; return block; } function parseEmptyStatement() { - var node = createNode(172 /* EmptyStatement */); - parseExpected(22 /* SemicolonToken */); + var node = createNode(172); + parseExpected(22); return finishNode(node); } function parseIfStatement() { - var node = createNode(174 /* IfStatement */); - parseExpected(83 /* IfKeyword */); - parseExpected(16 /* OpenParenToken */); + var node = createNode(174); + parseExpected(83); + parseExpected(16); node.expression = allowInAnd(parseExpression); - parseExpected(17 /* CloseParenToken */); + parseExpected(17); node.thenStatement = parseStatement(); - node.elseStatement = parseOptional(75 /* ElseKeyword */) ? parseStatement() : undefined; + node.elseStatement = parseOptional(75) ? parseStatement() : undefined; return finishNode(node); } function parseDoStatement() { - var node = createNode(175 /* DoStatement */); - parseExpected(74 /* DoKeyword */); + var node = createNode(175); + parseExpected(74); node.statement = parseStatement(); - parseExpected(99 /* WhileKeyword */); - parseExpected(16 /* OpenParenToken */); + parseExpected(99); + parseExpected(16); node.expression = allowInAnd(parseExpression); - parseExpected(17 /* CloseParenToken */); - parseOptional(22 /* SemicolonToken */); + parseExpected(17); + parseOptional(22); return finishNode(node); } function parseWhileStatement() { - var node = createNode(176 /* WhileStatement */); - parseExpected(99 /* WhileKeyword */); - parseExpected(16 /* OpenParenToken */); + var node = createNode(176); + parseExpected(99); + parseExpected(16); node.expression = allowInAnd(parseExpression); - parseExpected(17 /* CloseParenToken */); + parseExpected(17); node.statement = parseStatement(); return finishNode(node); } function parseForOrForInStatement() { var pos = getNodePos(); - parseExpected(81 /* ForKeyword */); - parseExpected(16 /* OpenParenToken */); + parseExpected(81); + parseExpected(16); var initializer = undefined; - if (token !== 22 /* SemicolonToken */) { - if (token === 97 /* VarKeyword */ || token === 103 /* LetKeyword */ || token === 69 /* ConstKeyword */) { + if (token !== 22) { + if (token === 97 || token === 103 || token === 69) { initializer = parseVariableDeclarationList(true); } else { @@ -6169,25 +6215,25 @@ var ts; } } var forOrForInStatement; - if (parseOptional(85 /* InKeyword */)) { - var forInStatement = createNode(178 /* ForInStatement */, pos); + if (parseOptional(85)) { + var forInStatement = createNode(178, pos); forInStatement.initializer = initializer; forInStatement.expression = allowInAnd(parseExpression); - parseExpected(17 /* CloseParenToken */); + parseExpected(17); forOrForInStatement = forInStatement; } else { - var forStatement = createNode(177 /* ForStatement */, pos); + var forStatement = createNode(177, pos); forStatement.initializer = initializer; - parseExpected(22 /* SemicolonToken */); - if (token !== 22 /* SemicolonToken */ && token !== 17 /* CloseParenToken */) { + parseExpected(22); + if (token !== 22 && token !== 17) { forStatement.condition = allowInAnd(parseExpression); } - parseExpected(22 /* SemicolonToken */); - if (token !== 17 /* CloseParenToken */) { + parseExpected(22); + if (token !== 17) { forStatement.iterator = allowInAnd(parseExpression); } - parseExpected(17 /* CloseParenToken */); + parseExpected(17); forOrForInStatement = forStatement; } forOrForInStatement.statement = parseStatement(); @@ -6195,7 +6241,7 @@ var ts; } function parseBreakOrContinueStatement(kind) { var node = createNode(kind); - parseExpected(kind === 180 /* BreakStatement */ ? 65 /* BreakKeyword */ : 70 /* ContinueKeyword */); + parseExpected(kind === 180 ? 65 : 70); if (!canParseSemicolon()) { node.label = parseIdentifier(); } @@ -6203,8 +6249,8 @@ var ts; return finishNode(node); } function parseReturnStatement() { - var node = createNode(181 /* ReturnStatement */); - parseExpected(89 /* ReturnKeyword */); + var node = createNode(181); + parseExpected(89); if (!canParseSemicolon()) { node.expression = allowInAnd(parseExpression); } @@ -6212,88 +6258,88 @@ var ts; return finishNode(node); } function parseWithStatement() { - var node = createNode(182 /* WithStatement */); - parseExpected(100 /* WithKeyword */); - parseExpected(16 /* OpenParenToken */); + var node = createNode(182); + parseExpected(100); + parseExpected(16); node.expression = allowInAnd(parseExpression); - parseExpected(17 /* CloseParenToken */); + parseExpected(17); node.statement = parseStatement(); return finishNode(node); } function parseCaseClause() { - var node = createNode(200 /* CaseClause */); - parseExpected(66 /* CaseKeyword */); + var node = createNode(200); + parseExpected(66); node.expression = allowInAnd(parseExpression); - parseExpected(51 /* ColonToken */); - node.statements = parseList(4 /* SwitchClauseStatements */, false, parseStatement); + parseExpected(51); + node.statements = parseList(4, false, parseStatement); return finishNode(node); } function parseDefaultClause() { - var node = createNode(201 /* DefaultClause */); - parseExpected(72 /* DefaultKeyword */); - parseExpected(51 /* ColonToken */); - node.statements = parseList(4 /* SwitchClauseStatements */, false, parseStatement); + var node = createNode(201); + parseExpected(72); + parseExpected(51); + node.statements = parseList(4, false, parseStatement); return finishNode(node); } function parseCaseOrDefaultClause() { - return token === 66 /* CaseKeyword */ ? parseCaseClause() : parseDefaultClause(); + return token === 66 ? parseCaseClause() : parseDefaultClause(); } function parseSwitchStatement() { - var node = createNode(183 /* SwitchStatement */); - parseExpected(91 /* SwitchKeyword */); - parseExpected(16 /* OpenParenToken */); + var node = createNode(183); + parseExpected(91); + parseExpected(16); node.expression = allowInAnd(parseExpression); - parseExpected(17 /* CloseParenToken */); - parseExpected(14 /* OpenBraceToken */); - node.clauses = parseList(3 /* SwitchClauses */, false, parseCaseOrDefaultClause); - parseExpected(15 /* CloseBraceToken */); + parseExpected(17); + parseExpected(14); + node.clauses = parseList(3, false, parseCaseOrDefaultClause); + parseExpected(15); return finishNode(node); } function parseThrowStatement() { - var node = createNode(185 /* ThrowStatement */); - parseExpected(93 /* ThrowKeyword */); + var node = createNode(185); + parseExpected(93); node.expression = scanner.hasPrecedingLineBreak() ? undefined : allowInAnd(parseExpression); parseSemicolon(); return finishNode(node); } function parseTryStatement() { - var node = createNode(186 /* TryStatement */); - parseExpected(95 /* TryKeyword */); + var node = createNode(186); + parseExpected(95); node.tryBlock = parseBlock(false, false); - node.catchClause = token === 67 /* CatchKeyword */ ? parseCatchClause() : undefined; - if (!node.catchClause || token === 80 /* FinallyKeyword */) { - parseExpected(80 /* FinallyKeyword */); + node.catchClause = token === 67 ? parseCatchClause() : undefined; + if (!node.catchClause || token === 80) { + parseExpected(80); node.finallyBlock = parseBlock(false, false); } return finishNode(node); } function parseCatchClause() { - var result = createNode(203 /* CatchClause */); - parseExpected(67 /* CatchKeyword */); - parseExpected(16 /* OpenParenToken */); + var result = createNode(203); + parseExpected(67); + parseExpected(16); result.name = parseIdentifier(); result.type = parseTypeAnnotation(); - parseExpected(17 /* CloseParenToken */); + parseExpected(17); result.block = parseBlock(false, false); return finishNode(result); } function parseDebuggerStatement() { - var node = createNode(187 /* DebuggerStatement */); - parseExpected(71 /* DebuggerKeyword */); + var node = createNode(187); + parseExpected(71); parseSemicolon(); return finishNode(node); } function parseExpressionOrLabeledStatement() { var fullStart = scanner.getStartPos(); var expression = allowInAnd(parseExpression); - if (expression.kind === 64 /* Identifier */ && parseOptional(51 /* ColonToken */)) { - var labeledStatement = createNode(184 /* LabeledStatement */, fullStart); + if (expression.kind === 64 && parseOptional(51)) { + var labeledStatement = createNode(184, fullStart); labeledStatement.label = expression; labeledStatement.statement = parseStatement(); return finishNode(labeledStatement); } else { - var expressionStatement = createNode(173 /* ExpressionStatement */, fullStart); + var expressionStatement = createNode(173, fullStart); expressionStatement.expression = expression; parseSemicolon(); return finishNode(expressionStatement); @@ -6307,42 +6353,42 @@ var ts; } } switch (token) { - case 22 /* SemicolonToken */: + case 22: return !inErrorRecovery; - case 14 /* OpenBraceToken */: - case 97 /* VarKeyword */: - case 103 /* LetKeyword */: - case 82 /* FunctionKeyword */: - case 83 /* IfKeyword */: - case 74 /* DoKeyword */: - case 99 /* WhileKeyword */: - case 81 /* ForKeyword */: - case 70 /* ContinueKeyword */: - case 65 /* BreakKeyword */: - case 89 /* ReturnKeyword */: - case 100 /* WithKeyword */: - case 91 /* SwitchKeyword */: - case 93 /* ThrowKeyword */: - case 95 /* TryKeyword */: - case 71 /* DebuggerKeyword */: - case 67 /* CatchKeyword */: - case 80 /* FinallyKeyword */: + case 14: + case 97: + case 103: + case 82: + case 83: + case 74: + case 99: + case 81: + case 70: + case 65: + case 89: + case 100: + case 91: + case 93: + case 95: + case 71: + case 67: + case 80: return true; - case 69 /* ConstKeyword */: + case 69: var isConstEnum = lookAhead(nextTokenIsEnumKeyword); return !isConstEnum; - case 102 /* InterfaceKeyword */: - case 68 /* ClassKeyword */: - case 115 /* ModuleKeyword */: - case 76 /* EnumKeyword */: - case 120 /* TypeKeyword */: + case 102: + case 68: + case 115: + case 76: + case 120: if (isDeclarationStart()) { return false; } - case 107 /* PublicKeyword */: - case 105 /* PrivateKeyword */: - case 106 /* ProtectedKeyword */: - case 108 /* StaticKeyword */: + case 107: + case 105: + case 106: + case 108: if (lookAhead(nextTokenIsIdentifierOrKeywordOnSameLine)) { return false; } @@ -6352,7 +6398,7 @@ var ts; } function nextTokenIsEnumKeyword() { nextToken(); - return token === 76 /* EnumKeyword */; + return token === 76; } function nextTokenIsIdentifierOrKeywordOnSameLine() { nextToken(); @@ -6360,42 +6406,42 @@ var ts; } function parseStatement() { switch (token) { - case 14 /* OpenBraceToken */: + case 14: return parseBlock(false, false); - case 97 /* VarKeyword */: - case 69 /* ConstKeyword */: + case 97: + case 69: return parseVariableStatement(scanner.getStartPos(), undefined); - case 82 /* FunctionKeyword */: + case 82: return parseFunctionDeclaration(scanner.getStartPos(), undefined); - case 22 /* SemicolonToken */: + case 22: return parseEmptyStatement(); - case 83 /* IfKeyword */: + case 83: return parseIfStatement(); - case 74 /* DoKeyword */: + case 74: return parseDoStatement(); - case 99 /* WhileKeyword */: + case 99: return parseWhileStatement(); - case 81 /* ForKeyword */: + case 81: return parseForOrForInStatement(); - case 70 /* ContinueKeyword */: - return parseBreakOrContinueStatement(179 /* ContinueStatement */); - case 65 /* BreakKeyword */: - return parseBreakOrContinueStatement(180 /* BreakStatement */); - case 89 /* ReturnKeyword */: + case 70: + return parseBreakOrContinueStatement(179); + case 65: + return parseBreakOrContinueStatement(180); + case 89: return parseReturnStatement(); - case 100 /* WithKeyword */: + case 100: return parseWithStatement(); - case 91 /* SwitchKeyword */: + case 91: return parseSwitchStatement(); - case 93 /* ThrowKeyword */: + case 93: return parseThrowStatement(); - case 95 /* TryKeyword */: - case 67 /* CatchKeyword */: - case 80 /* FinallyKeyword */: + case 95: + case 67: + case 80: return parseTryStatement(); - case 71 /* DebuggerKeyword */: + case 71: return parseDebuggerStatement(); - case 103 /* LetKeyword */: + case 103: if (isLetDeclaration()) { return parseVariableStatement(scanner.getStartPos(), undefined); } @@ -6413,49 +6459,49 @@ var ts; var start = scanner.getStartPos(); var modifiers = parseModifiers(); switch (token) { - case 69 /* ConstKeyword */: + case 69: var nextTokenIsEnum = lookAhead(nextTokenIsEnumKeyword); if (nextTokenIsEnum) { return undefined; } return parseVariableStatement(start, modifiers); - case 103 /* LetKeyword */: + case 103: if (!isLetDeclaration()) { return undefined; } return parseVariableStatement(start, modifiers); - case 97 /* VarKeyword */: + case 97: return parseVariableStatement(start, modifiers); - case 82 /* FunctionKeyword */: + case 82: return parseFunctionDeclaration(start, modifiers); } return undefined; } function parseFunctionBlockOrSemicolon(isGenerator, diagnosticMessage) { - if (token !== 14 /* OpenBraceToken */ && canParseSemicolon()) { + if (token !== 14 && canParseSemicolon()) { parseSemicolon(); return; } return parseFunctionBlock(isGenerator, false, diagnosticMessage); } function parseArrayBindingElement() { - if (token === 23 /* CommaToken */) { - return createNode(168 /* OmittedExpression */); + if (token === 23) { + return createNode(168); } - var node = createNode(146 /* BindingElement */); - node.dotDotDotToken = parseOptionalToken(21 /* DotDotDotToken */); + var node = createNode(146); + node.dotDotDotToken = parseOptionalToken(21); node.name = parseIdentifierOrPattern(); node.initializer = parseInitializer(false); return finishNode(node); } function parseObjectBindingElement() { - var node = createNode(146 /* BindingElement */); + var node = createNode(146); var id = parsePropertyName(); - if (id.kind === 64 /* Identifier */ && token !== 51 /* ColonToken */) { + if (id.kind === 64 && token !== 51) { node.name = id; } else { - parseExpected(51 /* ColonToken */); + parseExpected(51); node.propertyName = id; node.name = parseIdentifierOrPattern(); } @@ -6463,48 +6509,48 @@ var ts; return finishNode(node); } function parseObjectBindingPattern() { - var node = createNode(144 /* ObjectBindingPattern */); - parseExpected(14 /* OpenBraceToken */); - node.elements = parseDelimitedList(10 /* ObjectBindingElements */, parseObjectBindingElement); - parseExpected(15 /* CloseBraceToken */); + var node = createNode(144); + parseExpected(14); + node.elements = parseDelimitedList(10, parseObjectBindingElement); + parseExpected(15); return finishNode(node); } function parseArrayBindingPattern() { - var node = createNode(145 /* ArrayBindingPattern */); - parseExpected(18 /* OpenBracketToken */); - node.elements = parseDelimitedList(11 /* ArrayBindingElements */, parseArrayBindingElement); - parseExpected(19 /* CloseBracketToken */); + var node = createNode(145); + parseExpected(18); + node.elements = parseDelimitedList(11, parseArrayBindingElement); + parseExpected(19); return finishNode(node); } function isIdentifierOrPattern() { - return token === 14 /* OpenBraceToken */ || token === 18 /* OpenBracketToken */ || isIdentifier(); + return token === 14 || token === 18 || isIdentifier(); } function parseIdentifierOrPattern() { - if (token === 18 /* OpenBracketToken */) { + if (token === 18) { return parseArrayBindingPattern(); } - if (token === 14 /* OpenBraceToken */) { + if (token === 14) { return parseObjectBindingPattern(); } return parseIdentifier(); } function parseVariableDeclaration() { - var node = createNode(188 /* VariableDeclaration */); + var node = createNode(188); node.name = parseIdentifierOrPattern(); node.type = parseTypeAnnotation(); node.initializer = parseInitializer(false); return finishNode(node); } function parseVariableDeclarationList(disallowIn) { - var node = createNode(189 /* VariableDeclarationList */); + var node = createNode(189); switch (token) { - case 97 /* VarKeyword */: + case 97: break; - case 103 /* LetKeyword */: - node.flags |= 2048 /* Let */; + case 103: + node.flags |= 2048; break; - case 69 /* ConstKeyword */: - node.flags |= 4096 /* Const */; + case 69: + node.flags |= 4096; break; default: ts.Debug.fail(); @@ -6512,54 +6558,54 @@ var ts; nextToken(); var savedDisallowIn = inDisallowInContext(); setDisallowInContext(disallowIn); - node.declarations = parseDelimitedList(9 /* VariableDeclarations */, parseVariableDeclaration); + node.declarations = parseDelimitedList(9, parseVariableDeclaration); setDisallowInContext(savedDisallowIn); return finishNode(node); } function parseVariableStatement(fullStart, modifiers) { - var node = createNode(171 /* VariableStatement */, fullStart); + var node = createNode(171, fullStart); setModifiers(node, modifiers); node.declarationList = parseVariableDeclarationList(false); parseSemicolon(); return finishNode(node); } function parseFunctionDeclaration(fullStart, modifiers) { - var node = createNode(190 /* FunctionDeclaration */, fullStart); + var node = createNode(190, fullStart); setModifiers(node, modifiers); - parseExpected(82 /* FunctionKeyword */); - node.asteriskToken = parseOptionalToken(35 /* AsteriskToken */); + parseExpected(82); + node.asteriskToken = parseOptionalToken(35); node.name = parseIdentifier(); - fillSignature(51 /* ColonToken */, !!node.asteriskToken, false, node); + fillSignature(51, !!node.asteriskToken, false, node); node.body = parseFunctionBlockOrSemicolon(!!node.asteriskToken, ts.Diagnostics.or_expected); return finishNode(node); } function parseConstructorDeclaration(pos, modifiers) { - var node = createNode(129 /* Constructor */, pos); + var node = createNode(129, pos); setModifiers(node, modifiers); - parseExpected(112 /* ConstructorKeyword */); - fillSignature(51 /* ColonToken */, false, false, node); + parseExpected(112); + fillSignature(51, false, false, node); node.body = parseFunctionBlockOrSemicolon(false, ts.Diagnostics.or_expected); return finishNode(node); } function parseMethodDeclaration(fullStart, modifiers, asteriskToken, name, questionToken, diagnosticMessage) { - var method = createNode(128 /* MethodDeclaration */, fullStart); + var method = createNode(128, fullStart); setModifiers(method, modifiers); method.asteriskToken = asteriskToken; method.name = name; method.questionToken = questionToken; - fillSignature(51 /* ColonToken */, !!asteriskToken, false, method); + fillSignature(51, !!asteriskToken, false, method); method.body = parseFunctionBlockOrSemicolon(!!asteriskToken, diagnosticMessage); return finishNode(method); } function parsePropertyOrMethodDeclaration(fullStart, modifiers) { - var asteriskToken = parseOptionalToken(35 /* AsteriskToken */); + var asteriskToken = parseOptionalToken(35); var name = parsePropertyName(); - var questionToken = parseOptionalToken(50 /* QuestionToken */); - if (asteriskToken || token === 16 /* OpenParenToken */ || token === 24 /* LessThanToken */) { + var questionToken = parseOptionalToken(50); + if (asteriskToken || token === 16 || token === 24) { return parseMethodDeclaration(fullStart, modifiers, asteriskToken, name, questionToken, ts.Diagnostics.or_expected); } else { - var property = createNode(126 /* PropertyDeclaration */, fullStart); + var property = createNode(126, fullStart); setModifiers(property, modifiers); property.name = name; property.questionToken = questionToken; @@ -6576,7 +6622,7 @@ var ts; var node = createNode(kind, fullStart); setModifiers(node, modifiers); node.name = parsePropertyName(); - fillSignature(51 /* ColonToken */, false, false, node); + fillSignature(51, false, false, node); node.body = parseFunctionBlockOrSemicolon(false); return finishNode(node); } @@ -6586,26 +6632,26 @@ var ts; idToken = token; nextToken(); } - if (token === 35 /* AsteriskToken */) { + if (token === 35) { return true; } if (isLiteralPropertyName()) { idToken = token; nextToken(); } - if (token === 18 /* OpenBracketToken */) { + if (token === 18) { return true; } if (idToken !== undefined) { - if (!ts.isKeyword(idToken) || idToken === 118 /* SetKeyword */ || idToken === 114 /* GetKeyword */) { + if (!ts.isKeyword(idToken) || idToken === 118 || idToken === 114) { return true; } switch (token) { - case 16 /* OpenParenToken */: - case 24 /* LessThanToken */: - case 51 /* ColonToken */: - case 52 /* EqualsToken */: - case 50 /* QuestionToken */: + case 16: + case 24: + case 51: + case 52: + case 50: return true; default: return canParseSemicolon(); @@ -6642,27 +6688,27 @@ var ts; if (accessor) { return accessor; } - if (token === 112 /* ConstructorKeyword */) { + if (token === 112) { return parseConstructorDeclaration(fullStart, modifiers); } if (isIndexSignature()) { return parseIndexSignatureDeclaration(modifiers); } - if (isIdentifierOrKeyword() || token === 8 /* StringLiteral */ || token === 7 /* NumericLiteral */ || token === 35 /* AsteriskToken */ || token === 18 /* OpenBracketToken */) { + if (isIdentifierOrKeyword() || token === 8 || token === 7 || token === 35 || token === 18) { return parsePropertyOrMethodDeclaration(fullStart, modifiers); } ts.Debug.fail("Should not have attempted to parse class member declaration."); } function parseClassDeclaration(fullStart, modifiers) { - var node = createNode(191 /* ClassDeclaration */, fullStart); + var node = createNode(191, fullStart); setModifiers(node, modifiers); - parseExpected(68 /* ClassKeyword */); + parseExpected(68); node.name = parseIdentifier(); node.typeParameters = parseTypeParameters(); node.heritageClauses = parseHeritageClauses(true); - if (parseExpected(14 /* OpenBraceToken */)) { + if (parseExpected(14)) { node.members = inGeneratorParameterContext() ? doOutsideOfYieldContext(parseClassMembers) : parseClassMembers(); - parseExpected(15 /* CloseBraceToken */); + parseExpected(15); } else { node.members = createMissingList(); @@ -6676,28 +6722,28 @@ var ts; return undefined; } function parseHeritageClausesWorker() { - return parseList(19 /* HeritageClauses */, false, parseHeritageClause); + return parseList(19, false, parseHeritageClause); } function parseHeritageClause() { - if (token === 78 /* ExtendsKeyword */ || token === 101 /* ImplementsKeyword */) { - var node = createNode(202 /* HeritageClause */); + if (token === 78 || token === 101) { + var node = createNode(202); node.token = token; nextToken(); - node.types = parseDelimitedList(8 /* TypeReferences */, parseTypeReference); + node.types = parseDelimitedList(8, parseTypeReference); return finishNode(node); } return undefined; } function isHeritageClause() { - return token === 78 /* ExtendsKeyword */ || token === 101 /* ImplementsKeyword */; + return token === 78 || token === 101; } function parseClassMembers() { - return parseList(6 /* ClassMembers */, false, parseClassElement); + return parseList(6, false, parseClassElement); } function parseInterfaceDeclaration(fullStart, modifiers) { - var node = createNode(192 /* InterfaceDeclaration */, fullStart); + var node = createNode(192, fullStart); setModifiers(node, modifiers); - parseExpected(102 /* InterfaceKeyword */); + parseExpected(102); node.name = parseIdentifier(); node.typeParameters = parseTypeParameters(); node.heritageClauses = parseHeritageClauses(false); @@ -6705,29 +6751,29 @@ var ts; return finishNode(node); } function parseTypeAliasDeclaration(fullStart, modifiers) { - var node = createNode(193 /* TypeAliasDeclaration */, fullStart); + var node = createNode(193, fullStart); setModifiers(node, modifiers); - parseExpected(120 /* TypeKeyword */); + parseExpected(120); node.name = parseIdentifier(); - parseExpected(52 /* EqualsToken */); + parseExpected(52); node.type = parseType(); parseSemicolon(); return finishNode(node); } function parseEnumMember() { - var node = createNode(206 /* EnumMember */, scanner.getStartPos()); + var node = createNode(206, scanner.getStartPos()); node.name = parsePropertyName(); node.initializer = allowInAnd(parseNonParameterInitializer); return finishNode(node); } function parseEnumDeclaration(fullStart, modifiers) { - var node = createNode(194 /* EnumDeclaration */, fullStart); + var node = createNode(194, fullStart); setModifiers(node, modifiers); - parseExpected(76 /* EnumKeyword */); + parseExpected(76); node.name = parseIdentifier(); - if (parseExpected(14 /* OpenBraceToken */)) { - node.members = parseDelimitedList(7 /* EnumMembers */, parseEnumMember); - parseExpected(15 /* CloseBraceToken */); + if (parseExpected(14)) { + node.members = parseDelimitedList(7, parseEnumMember); + parseExpected(15); } else { node.members = createMissingList(); @@ -6735,10 +6781,10 @@ var ts; return finishNode(node); } function parseModuleBlock() { - var node = createNode(196 /* ModuleBlock */, scanner.getStartPos()); - if (parseExpected(14 /* OpenBraceToken */)) { - node.statements = parseList(1 /* ModuleElements */, false, parseModuleElement); - parseExpected(15 /* CloseBraceToken */); + var node = createNode(196, scanner.getStartPos()); + if (parseExpected(14)) { + node.statements = parseList(1, false, parseModuleElement); + parseExpected(15); } else { node.statements = createMissingList(); @@ -6746,36 +6792,36 @@ var ts; return finishNode(node); } function parseInternalModuleTail(fullStart, modifiers, flags) { - var node = createNode(195 /* ModuleDeclaration */, fullStart); + var node = createNode(195, fullStart); setModifiers(node, modifiers); node.flags |= flags; node.name = parseIdentifier(); - node.body = parseOptional(20 /* DotToken */) ? parseInternalModuleTail(getNodePos(), undefined, 1 /* Export */) : parseModuleBlock(); + node.body = parseOptional(20) ? parseInternalModuleTail(getNodePos(), undefined, 1) : parseModuleBlock(); return finishNode(node); } function parseAmbientExternalModuleDeclaration(fullStart, modifiers) { - var node = createNode(195 /* ModuleDeclaration */, fullStart); + var node = createNode(195, fullStart); setModifiers(node, modifiers); node.name = parseLiteralNode(true); node.body = parseModuleBlock(); return finishNode(node); } function parseModuleDeclaration(fullStart, modifiers) { - parseExpected(115 /* ModuleKeyword */); - return token === 8 /* StringLiteral */ ? parseAmbientExternalModuleDeclaration(fullStart, modifiers) : parseInternalModuleTail(fullStart, modifiers, modifiers ? modifiers.flags : 0); + parseExpected(115); + return token === 8 ? parseAmbientExternalModuleDeclaration(fullStart, modifiers) : parseInternalModuleTail(fullStart, modifiers, modifiers ? modifiers.flags : 0); } function isExternalModuleReference() { - return token === 116 /* RequireKeyword */ && lookAhead(nextTokenIsOpenParen); + return token === 116 && lookAhead(nextTokenIsOpenParen); } function nextTokenIsOpenParen() { - return nextToken() === 16 /* OpenParenToken */; + return nextToken() === 16; } function parseImportDeclaration(fullStart, modifiers) { - var node = createNode(197 /* ImportDeclaration */, fullStart); + var node = createNode(197, fullStart); setModifiers(node, modifiers); - parseExpected(84 /* ImportKeyword */); + parseExpected(84); node.name = parseIdentifier(); - parseExpected(52 /* EqualsToken */); + parseExpected(52); node.moduleReference = parseModuleReference(); parseSemicolon(); return finishNode(node); @@ -6784,18 +6830,18 @@ var ts; return isExternalModuleReference() ? parseExternalModuleReference() : parseEntityName(false); } function parseExternalModuleReference() { - var node = createNode(199 /* ExternalModuleReference */); - parseExpected(116 /* RequireKeyword */); - parseExpected(16 /* OpenParenToken */); + var node = createNode(199); + parseExpected(116); + parseExpected(16); node.expression = parseExpression(); - if (node.expression.kind === 8 /* StringLiteral */) { + if (node.expression.kind === 8) { internIdentifier(node.expression.text); } - parseExpected(17 /* CloseParenToken */); + parseExpected(17); return finishNode(node); } function parseExportAssignmentTail(fullStart, modifiers) { - var node = createNode(198 /* ExportAssignment */, fullStart); + var node = createNode(198, fullStart); setModifiers(node, modifiers); node.exportName = parseIdentifier(); parseSemicolon(); @@ -6806,32 +6852,32 @@ var ts; } function isDeclarationStart() { switch (token) { - case 97 /* VarKeyword */: - case 69 /* ConstKeyword */: - case 82 /* FunctionKeyword */: + case 97: + case 69: + case 82: return true; - case 103 /* LetKeyword */: + case 103: return isLetDeclaration(); - case 68 /* ClassKeyword */: - case 102 /* InterfaceKeyword */: - case 76 /* EnumKeyword */: - case 84 /* ImportKeyword */: - case 120 /* TypeKeyword */: + case 68: + case 102: + case 76: + case 84: + case 120: return lookAhead(nextTokenIsIdentifierOrKeyword); - case 115 /* ModuleKeyword */: + case 115: return lookAhead(nextTokenIsIdentifierOrKeywordOrStringLiteral); - case 77 /* ExportKeyword */: + case 77: return lookAhead(nextTokenIsEqualsTokenOrDeclarationStart); - case 113 /* DeclareKeyword */: - case 107 /* PublicKeyword */: - case 105 /* PrivateKeyword */: - case 106 /* ProtectedKeyword */: - case 108 /* StaticKeyword */: + case 113: + case 107: + case 105: + case 106: + case 108: return lookAhead(nextTokenIsDeclarationStart); } } function isIdentifierOrKeyword() { - return token >= 64 /* Identifier */; + return token >= 64; } function nextTokenIsIdentifierOrKeyword() { nextToken(); @@ -6839,11 +6885,11 @@ var ts; } function nextTokenIsIdentifierOrKeywordOrStringLiteral() { nextToken(); - return isIdentifierOrKeyword() || token === 8 /* StringLiteral */; + return isIdentifierOrKeyword() || token === 8; } function nextTokenIsEqualsTokenOrDeclarationStart() { nextToken(); - return token === 52 /* EqualsToken */ || isDeclarationStart(); + return token === 52 || isDeclarationStart(); } function nextTokenIsDeclarationStart() { nextToken(); @@ -6852,30 +6898,30 @@ var ts; function parseDeclaration() { var fullStart = getNodePos(); var modifiers = parseModifiers(); - if (token === 77 /* ExportKeyword */) { + if (token === 77) { nextToken(); - if (parseOptional(52 /* EqualsToken */)) { + if (parseOptional(52)) { return parseExportAssignmentTail(fullStart, modifiers); } } switch (token) { - case 97 /* VarKeyword */: - case 103 /* LetKeyword */: - case 69 /* ConstKeyword */: + case 97: + case 103: + case 69: return parseVariableStatement(fullStart, modifiers); - case 82 /* FunctionKeyword */: + case 82: return parseFunctionDeclaration(fullStart, modifiers); - case 68 /* ClassKeyword */: + case 68: return parseClassDeclaration(fullStart, modifiers); - case 102 /* InterfaceKeyword */: + case 102: return parseInterfaceDeclaration(fullStart, modifiers); - case 120 /* TypeKeyword */: + case 120: return parseTypeAliasDeclaration(fullStart, modifiers); - case 76 /* EnumKeyword */: + case 76: return parseEnumDeclaration(fullStart, modifiers); - case 115 /* ModuleKeyword */: + case 115: return parseModuleDeclaration(fullStart, modifiers); - case 84 /* ImportKeyword */: + case 84: return parseImportDeclaration(fullStart, modifiers); default: ts.Debug.fail("Mismatch between isDeclarationStart and parseDeclaration"); @@ -6894,16 +6940,16 @@ var ts; return isDeclarationStart() ? parseDeclaration() : parseStatement(); } function processReferenceComments(sourceFile) { - var triviaScanner = ts.createScanner(languageVersion, false, sourceText); + var triviaScanner = ts.createScanner(sourceFile.languageVersion, false, sourceText); var referencedFiles = []; var amdDependencies = []; var amdModuleName; while (true) { var kind = triviaScanner.scan(); - if (kind === 5 /* WhitespaceTrivia */ || kind === 4 /* NewLineTrivia */ || kind === 3 /* MultiLineCommentTrivia */) { + if (kind === 5 || kind === 4 || kind === 3) { continue; } - if (kind !== 2 /* SingleLineCommentTrivia */) { + if (kind !== 2) { break; } var range = { pos: triviaScanner.getTokenPos(), end: triviaScanner.getTextPos() }; @@ -6917,7 +6963,7 @@ var ts; referencedFiles.push(fileReference); } if (diagnosticMessage) { - sourceFile.referenceDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, diagnosticMessage)); + sourceFile.parseDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, diagnosticMessage)); } } else { @@ -6925,7 +6971,7 @@ var ts; var amdModuleNameMatchResult = amdModuleNameRegEx.exec(comment); if (amdModuleNameMatchResult) { if (amdModuleName) { - sourceFile.referenceDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, ts.Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments)); + sourceFile.parseDiagnostics.push(ts.createFileDiagnostic(sourceFile, range.pos, range.end - range.pos, ts.Diagnostics.An_AMD_module_cannot_have_multiple_name_assignments)); } amdModuleName = amdModuleNameMatchResult[2]; } @@ -6941,40 +6987,32 @@ var ts; sourceFile.amdModuleName = amdModuleName; } function setExternalModuleIndicator(sourceFile) { - sourceFile.externalModuleIndicator = ts.forEach(sourceFile.statements, function (node) { return node.flags & 1 /* Export */ || node.kind === 197 /* ImportDeclaration */ && node.moduleReference.kind === 199 /* ExternalModuleReference */ || node.kind === 198 /* ExportAssignment */ ? node : undefined; }); - } - function getSyntacticDiagnostics() { - if (syntacticDiagnostics === undefined) { - syntacticDiagnostics = sourceFile.referenceDiagnostics.concat(sourceFile.parseDiagnostics); - } - ts.Debug.assert(syntacticDiagnostics !== undefined); - return syntacticDiagnostics; + sourceFile.externalModuleIndicator = ts.forEach(sourceFile.statements, function (node) { return node.flags & 1 || node.kind === 197 && node.moduleReference.kind === 199 || node.kind === 198 ? node : undefined; }); } } - ts.createSourceFile = createSourceFile; function isLeftHandSideExpression(expr) { if (expr) { switch (expr.kind) { - case 149 /* PropertyAccessExpression */: - case 150 /* ElementAccessExpression */: - case 152 /* NewExpression */: - case 151 /* CallExpression */: - case 153 /* TaggedTemplateExpression */: - case 147 /* ArrayLiteralExpression */: - case 155 /* ParenthesizedExpression */: - case 148 /* ObjectLiteralExpression */: - case 156 /* FunctionExpression */: - case 64 /* Identifier */: - case 9 /* RegularExpressionLiteral */: - case 7 /* NumericLiteral */: - case 8 /* StringLiteral */: - case 10 /* NoSubstitutionTemplateLiteral */: - case 165 /* TemplateExpression */: - case 79 /* FalseKeyword */: - case 88 /* NullKeyword */: - case 92 /* ThisKeyword */: - case 94 /* TrueKeyword */: - case 90 /* SuperKeyword */: + case 149: + case 150: + case 152: + case 151: + case 153: + case 147: + case 155: + case 148: + case 156: + case 64: + case 9: + case 7: + case 8: + case 10: + case 165: + case 79: + case 88: + case 92: + case 94: + case 90: return true; } } @@ -6982,12 +7020,13 @@ var ts; } ts.isLeftHandSideExpression = isLeftHandSideExpression; function isAssignmentOperator(token) { - return token >= 52 /* FirstAssignment */ && token <= 63 /* LastAssignment */; + return token >= 52 && token <= 63; } ts.isAssignmentOperator = isAssignmentOperator; })(ts || (ts = {})); var ts; (function (ts) { + ts.bindTime = 0; (function (ModuleInstanceState) { ModuleInstanceState[ModuleInstanceState["NonInstantiated"] = 0] = "NonInstantiated"; ModuleInstanceState[ModuleInstanceState["Instantiated"] = 1] = "Instantiated"; @@ -6995,44 +7034,50 @@ var ts; })(ts.ModuleInstanceState || (ts.ModuleInstanceState = {})); var ModuleInstanceState = ts.ModuleInstanceState; function getModuleInstanceState(node) { - if (node.kind === 192 /* InterfaceDeclaration */ || node.kind === 193 /* TypeAliasDeclaration */) { - return 0 /* NonInstantiated */; + if (node.kind === 192 || node.kind === 193) { + return 0; } else if (ts.isConstEnumDeclaration(node)) { - return 2 /* ConstEnumOnly */; + return 2; } - else if (node.kind === 197 /* ImportDeclaration */ && !(node.flags & 1 /* Export */)) { - return 0 /* NonInstantiated */; + else if (node.kind === 197 && !(node.flags & 1)) { + return 0; } - else if (node.kind === 196 /* ModuleBlock */) { - var state = 0 /* NonInstantiated */; + else if (node.kind === 196) { + var state = 0; ts.forEachChild(node, function (n) { switch (getModuleInstanceState(n)) { - case 0 /* NonInstantiated */: + case 0: return false; - case 2 /* ConstEnumOnly */: - state = 2 /* ConstEnumOnly */; + case 2: + state = 2; return false; - case 1 /* Instantiated */: - state = 1 /* Instantiated */; + case 1: + state = 1; return true; } }); return state; } - else if (node.kind === 195 /* ModuleDeclaration */) { + else if (node.kind === 195) { return getModuleInstanceState(node.body); } else { - return 1 /* Instantiated */; + return 1; } } ts.getModuleInstanceState = getModuleInstanceState; function hasDynamicName(declaration) { - return declaration.name && declaration.name.kind === 122 /* ComputedPropertyName */; + return declaration.name && declaration.name.kind === 122; } ts.hasDynamicName = hasDynamicName; function bindSourceFile(file) { + var start = new Date().getTime(); + bindSourceFileWorker(file); + ts.bindTime += new Date().getTime() - start; + } + ts.bindSourceFile = bindSourceFile; + function bindSourceFileWorker(file) { var parent; var container; var blockScopeContainer; @@ -7054,32 +7099,32 @@ var ts; if (!symbol.declarations) symbol.declarations = []; symbol.declarations.push(node); - if (symbolKind & 1952 /* HasExports */ && !symbol.exports) + if (symbolKind & 1952 && !symbol.exports) symbol.exports = {}; - if (symbolKind & 6240 /* HasMembers */ && !symbol.members) + if (symbolKind & 6240 && !symbol.members) symbol.members = {}; node.symbol = symbol; - if (symbolKind & 107455 /* Value */ && !symbol.valueDeclaration) + if (symbolKind & 107455 && !symbol.valueDeclaration) symbol.valueDeclaration = node; } function getDeclarationName(node) { if (node.name) { - if (node.kind === 195 /* ModuleDeclaration */ && node.name.kind === 8 /* StringLiteral */) { + if (node.kind === 195 && node.name.kind === 8) { return '"' + node.name.text + '"'; } ts.Debug.assert(!hasDynamicName(node)); return node.name.text; } switch (node.kind) { - case 137 /* ConstructorType */: - case 129 /* Constructor */: + case 137: + case 129: return "__constructor"; - case 136 /* FunctionType */: - case 132 /* CallSignature */: + case 136: + case 132: return "__call"; - case 133 /* ConstructSignature */: + case 133: return "__new"; - case 134 /* IndexSignature */: + case 134: return "__index"; } } @@ -7095,11 +7140,11 @@ var ts; if (node.name) { node.name.parent = node; } - var message = symbol.flags & 2 /* BlockScopedVariable */ ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; + var message = symbol.flags & 2 ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; ts.forEach(symbol.declarations, function (declaration) { - file.semanticDiagnostics.push(ts.createDiagnosticForNode(declaration.name, message, getDisplayName(declaration))); + file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name, message, getDisplayName(declaration))); }); - file.semanticDiagnostics.push(ts.createDiagnosticForNode(node.name, message, getDisplayName(node))); + file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name, message, getDisplayName(node))); symbol = createSymbol(0, name); } } @@ -7108,13 +7153,13 @@ var ts; } addDeclarationToSymbol(symbol, node, includes); symbol.parent = parent; - if (node.kind === 191 /* ClassDeclaration */ && symbol.exports) { - var prototypeSymbol = createSymbol(4 /* Property */ | 134217728 /* Prototype */, "prototype"); + if (node.kind === 191 && symbol.exports) { + var prototypeSymbol = createSymbol(4 | 134217728, "prototype"); if (ts.hasProperty(symbol.exports, prototypeSymbol.name)) { if (node.name) { node.name.parent = node; } - file.semanticDiagnostics.push(ts.createDiagnosticForNode(symbol.exports[prototypeSymbol.name].declarations[0], ts.Diagnostics.Duplicate_identifier_0, prototypeSymbol.name)); + file.bindDiagnostics.push(ts.createDiagnosticForNode(symbol.exports[prototypeSymbol.name].declarations[0], ts.Diagnostics.Duplicate_identifier_0, prototypeSymbol.name)); } symbol.exports[prototypeSymbol.name] = prototypeSymbol; prototypeSymbol.parent = symbol; @@ -7123,7 +7168,7 @@ var ts; } function isAmbientContext(node) { while (node) { - if (node.flags & 2 /* Ambient */) + if (node.flags & 2) return true; node = node.parent; } @@ -7131,16 +7176,16 @@ var ts; } function declareModuleMember(node, symbolKind, symbolExcludes) { var exportKind = 0; - if (symbolKind & 107455 /* Value */) { - exportKind |= 1048576 /* ExportValue */; + if (symbolKind & 107455) { + exportKind |= 1048576; } - if (symbolKind & 793056 /* Type */) { - exportKind |= 2097152 /* ExportType */; + if (symbolKind & 793056) { + exportKind |= 2097152; } - if (symbolKind & 1536 /* Namespace */) { - exportKind |= 4194304 /* ExportNamespace */; + if (symbolKind & 1536) { + exportKind |= 4194304; } - if (ts.getCombinedNodeFlags(node) & 1 /* Export */ || (node.kind !== 197 /* ImportDeclaration */ && isAmbientContext(container))) { + if (ts.getCombinedNodeFlags(node) & 1 || (node.kind !== 197 && isAmbientContext(container))) { if (exportKind) { var local = declareSymbol(container.locals, undefined, node, exportKind, symbolExcludes); local.exportSymbol = declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); @@ -7155,14 +7200,14 @@ var ts; } } function bindChildren(node, symbolKind, isBlockScopeContainer) { - if (symbolKind & 255504 /* HasLocals */) { + if (symbolKind & 255504) { node.locals = {}; } var saveParent = parent; var saveContainer = container; var savedBlockScopeContainer = blockScopeContainer; parent = node; - if (symbolKind & 262128 /* IsContainer */) { + if (symbolKind & 262128) { container = node; if (lastContainer) { lastContainer.nextContainer = container; @@ -7179,57 +7224,57 @@ var ts; } function bindDeclaration(node, symbolKind, symbolExcludes, isBlockScopeContainer) { switch (container.kind) { - case 195 /* ModuleDeclaration */: + case 195: declareModuleMember(node, symbolKind, symbolExcludes); break; - case 207 /* SourceFile */: + case 207: if (ts.isExternalModule(container)) { declareModuleMember(node, symbolKind, symbolExcludes); break; } - case 136 /* FunctionType */: - case 137 /* ConstructorType */: - case 132 /* CallSignature */: - case 133 /* ConstructSignature */: - case 134 /* IndexSignature */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: + case 136: + case 137: + case 132: + case 133: + case 134: + case 128: + case 127: + case 129: + case 130: + case 131: + case 190: + case 156: + case 157: declareSymbol(container.locals, undefined, node, symbolKind, symbolExcludes); break; - case 191 /* ClassDeclaration */: - if (node.flags & 128 /* Static */) { + case 191: + if (node.flags & 128) { declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); break; } - case 139 /* TypeLiteral */: - case 148 /* ObjectLiteralExpression */: - case 192 /* InterfaceDeclaration */: + case 139: + case 148: + case 192: declareSymbol(container.symbol.members, container.symbol, node, symbolKind, symbolExcludes); break; - case 194 /* EnumDeclaration */: + case 194: declareSymbol(container.symbol.exports, container.symbol, node, symbolKind, symbolExcludes); break; } bindChildren(node, symbolKind, isBlockScopeContainer); } function bindModuleDeclaration(node) { - if (node.name.kind === 8 /* StringLiteral */) { - bindDeclaration(node, 512 /* ValueModule */, 106639 /* ValueModuleExcludes */, true); + if (node.name.kind === 8) { + bindDeclaration(node, 512, 106639, true); } else { var state = getModuleInstanceState(node); - if (state === 0 /* NonInstantiated */) { - bindDeclaration(node, 1024 /* NamespaceModule */, 0 /* NamespaceModuleExcludes */, true); + if (state === 0) { + bindDeclaration(node, 1024, 0, true); } else { - bindDeclaration(node, 512 /* ValueModule */, 106639 /* ValueModuleExcludes */, true); - if (state === 2 /* ConstEnumOnly */) { + bindDeclaration(node, 512, 106639, true); + if (state === 2) { node.symbol.constEnumOnlyModule = true; } else if (node.symbol.constEnumOnlyModule) { @@ -7239,13 +7284,13 @@ var ts; } } function bindFunctionOrConstructorType(node) { - var symbol = createSymbol(131072 /* Signature */, getDeclarationName(node)); - addDeclarationToSymbol(symbol, node, 131072 /* Signature */); - bindChildren(node, 131072 /* Signature */, false); - var typeLiteralSymbol = createSymbol(2048 /* TypeLiteral */, "__type"); - addDeclarationToSymbol(typeLiteralSymbol, node, 2048 /* TypeLiteral */); + var symbol = createSymbol(131072, getDeclarationName(node)); + addDeclarationToSymbol(symbol, node, 131072); + bindChildren(node, 131072, false); + var typeLiteralSymbol = createSymbol(2048, "__type"); + addDeclarationToSymbol(typeLiteralSymbol, node, 2048); typeLiteralSymbol.members = {}; - typeLiteralSymbol.members[node.kind === 136 /* FunctionType */ ? "__call" : "__new"] = symbol; + typeLiteralSymbol.members[node.kind === 136 ? "__call" : "__new"] = symbol; } function bindAnonymousDeclaration(node, symbolKind, name, isBlockScopeContainer) { var symbol = createSymbol(symbolKind, name); @@ -7253,8 +7298,8 @@ var ts; bindChildren(node, symbolKind, isBlockScopeContainer); } function bindCatchVariableDeclaration(node) { - var symbol = createSymbol(1 /* FunctionScopedVariable */, node.name.text || "__missing"); - addDeclarationToSymbol(symbol, node, 1 /* FunctionScopedVariable */); + var symbol = createSymbol(1, node.name.text || "__missing"); + addDeclarationToSymbol(symbol, node, 1); var saveParent = parent; var savedBlockScopeContainer = blockScopeContainer; parent = blockScopeContainer = node; @@ -7264,21 +7309,21 @@ var ts; } function bindBlockScopedVariableDeclaration(node) { switch (blockScopeContainer.kind) { - case 195 /* ModuleDeclaration */: - declareModuleMember(node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); + case 195: + declareModuleMember(node, 2, 107455); break; - case 207 /* SourceFile */: + case 207: if (ts.isExternalModule(container)) { - declareModuleMember(node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); + declareModuleMember(node, 2, 107455); break; } default: if (!blockScopeContainer.locals) { blockScopeContainer.locals = {}; } - declareSymbol(blockScopeContainer.locals, undefined, node, 2 /* BlockScopedVariable */, 107455 /* BlockScopedVariableExcludes */); + declareSymbol(blockScopeContainer.locals, undefined, node, 2, 107455); } - bindChildren(node, 2 /* BlockScopedVariable */, false); + bindChildren(node, 2, false); } function getDestructuringParameterName(node) { return "__" + ts.indexOf(node.parent.parameters, node); @@ -7286,106 +7331,106 @@ var ts; function bind(node) { node.parent = parent; switch (node.kind) { - case 123 /* TypeParameter */: - bindDeclaration(node, 262144 /* TypeParameter */, 530912 /* TypeParameterExcludes */, false); + case 123: + bindDeclaration(node, 262144, 530912, false); break; - case 124 /* Parameter */: + case 124: bindParameter(node); break; - case 188 /* VariableDeclaration */: - case 146 /* BindingElement */: + case 188: + case 146: if (ts.isBindingPattern(node.name)) { bindChildren(node, 0, false); } - else if (ts.getCombinedNodeFlags(node) & 6144 /* BlockScoped */) { + else if (ts.getCombinedNodeFlags(node) & 6144) { bindBlockScopedVariableDeclaration(node); } else { - bindDeclaration(node, 1 /* FunctionScopedVariable */, 107454 /* FunctionScopedVariableExcludes */, false); + bindDeclaration(node, 1, 107454, false); } break; - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - bindPropertyOrMethodOrAccessor(node, 4 /* Property */ | (node.questionToken ? 536870912 /* Optional */ : 0), 107455 /* PropertyExcludes */, false); + case 126: + case 125: + bindPropertyOrMethodOrAccessor(node, 4 | (node.questionToken ? 536870912 : 0), 107455, false); break; - case 204 /* PropertyAssignment */: - case 205 /* ShorthandPropertyAssignment */: - bindPropertyOrMethodOrAccessor(node, 4 /* Property */, 107455 /* PropertyExcludes */, false); + case 204: + case 205: + bindPropertyOrMethodOrAccessor(node, 4, 107455, false); break; - case 206 /* EnumMember */: - bindPropertyOrMethodOrAccessor(node, 8 /* EnumMember */, 107455 /* EnumMemberExcludes */, false); + case 206: + bindPropertyOrMethodOrAccessor(node, 8, 107455, false); break; - case 132 /* CallSignature */: - case 133 /* ConstructSignature */: - case 134 /* IndexSignature */: - bindDeclaration(node, 131072 /* Signature */, 0, false); + case 132: + case 133: + case 134: + bindDeclaration(node, 131072, 0, false); break; - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - bindPropertyOrMethodOrAccessor(node, 8192 /* Method */ | (node.questionToken ? 536870912 /* Optional */ : 0), ts.isObjectLiteralMethod(node) ? 107455 /* PropertyExcludes */ : 99263 /* MethodExcludes */, true); + case 128: + case 127: + bindPropertyOrMethodOrAccessor(node, 8192 | (node.questionToken ? 536870912 : 0), ts.isObjectLiteralMethod(node) ? 107455 : 99263, true); break; - case 190 /* FunctionDeclaration */: - bindDeclaration(node, 16 /* Function */, 106927 /* FunctionExcludes */, true); + case 190: + bindDeclaration(node, 16, 106927, true); break; - case 129 /* Constructor */: - bindDeclaration(node, 16384 /* Constructor */, 0, true); + case 129: + bindDeclaration(node, 16384, 0, true); break; - case 130 /* GetAccessor */: - bindPropertyOrMethodOrAccessor(node, 32768 /* GetAccessor */, 41919 /* GetAccessorExcludes */, true); + case 130: + bindPropertyOrMethodOrAccessor(node, 32768, 41919, true); break; - case 131 /* SetAccessor */: - bindPropertyOrMethodOrAccessor(node, 65536 /* SetAccessor */, 74687 /* SetAccessorExcludes */, true); + case 131: + bindPropertyOrMethodOrAccessor(node, 65536, 74687, true); break; - case 136 /* FunctionType */: - case 137 /* ConstructorType */: + case 136: + case 137: bindFunctionOrConstructorType(node); break; - case 139 /* TypeLiteral */: - bindAnonymousDeclaration(node, 2048 /* TypeLiteral */, "__type", false); + case 139: + bindAnonymousDeclaration(node, 2048, "__type", false); break; - case 148 /* ObjectLiteralExpression */: - bindAnonymousDeclaration(node, 4096 /* ObjectLiteral */, "__object", false); + case 148: + bindAnonymousDeclaration(node, 4096, "__object", false); break; - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: - bindAnonymousDeclaration(node, 16 /* Function */, "__function", true); + case 156: + case 157: + bindAnonymousDeclaration(node, 16, "__function", true); break; - case 203 /* CatchClause */: + case 203: bindCatchVariableDeclaration(node); break; - case 191 /* ClassDeclaration */: - bindDeclaration(node, 32 /* Class */, 899583 /* ClassExcludes */, false); + case 191: + bindDeclaration(node, 32, 899583, false); break; - case 192 /* InterfaceDeclaration */: - bindDeclaration(node, 64 /* Interface */, 792992 /* InterfaceExcludes */, false); + case 192: + bindDeclaration(node, 64, 792992, false); break; - case 193 /* TypeAliasDeclaration */: - bindDeclaration(node, 524288 /* TypeAlias */, 793056 /* TypeAliasExcludes */, false); + case 193: + bindDeclaration(node, 524288, 793056, false); break; - case 194 /* EnumDeclaration */: + case 194: if (ts.isConst(node)) { - bindDeclaration(node, 128 /* ConstEnum */, 899967 /* ConstEnumExcludes */, false); + bindDeclaration(node, 128, 899967, false); } else { - bindDeclaration(node, 256 /* RegularEnum */, 899327 /* RegularEnumExcludes */, false); + bindDeclaration(node, 256, 899327, false); } break; - case 195 /* ModuleDeclaration */: + case 195: bindModuleDeclaration(node); break; - case 197 /* ImportDeclaration */: - bindDeclaration(node, 8388608 /* Import */, 8388608 /* ImportExcludes */, false); + case 197: + bindDeclaration(node, 8388608, 8388608, false); break; - case 207 /* SourceFile */: + case 207: if (ts.isExternalModule(node)) { - bindAnonymousDeclaration(node, 512 /* ValueModule */, '"' + ts.removeFileExtension(node.filename) + '"', true); + bindAnonymousDeclaration(node, 512, '"' + ts.removeFileExtension(node.fileName) + '"', true); break; } - case 170 /* Block */: - case 203 /* CatchClause */: - case 177 /* ForStatement */: - case 178 /* ForInStatement */: - case 183 /* SwitchStatement */: + case 170: + case 203: + case 177: + case 178: + case 183: bindChildren(node, 0, true); break; default: @@ -7397,14 +7442,14 @@ var ts; } function bindParameter(node) { if (ts.isBindingPattern(node.name)) { - bindAnonymousDeclaration(node, 1 /* FunctionScopedVariable */, getDestructuringParameterName(node), false); + bindAnonymousDeclaration(node, 1, getDestructuringParameterName(node), false); } else { - bindDeclaration(node, 1 /* FunctionScopedVariable */, 107455 /* ParameterExcludes */, false); + bindDeclaration(node, 1, 107455, false); } - if (node.flags & 112 /* AccessibilityModifier */ && node.parent.kind === 129 /* Constructor */ && node.parent.parent.kind === 191 /* ClassDeclaration */) { + if (node.flags & 112 && node.parent.kind === 129 && node.parent.parent.kind === 191) { var classDeclaration = node.parent.parent; - declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4 /* Property */, 107455 /* PropertyExcludes */); + declareSymbol(classDeclaration.symbol.members, classDeclaration.symbol, node, 4, 107455); } } function bindPropertyOrMethodOrAccessor(node, symbolKind, symbolExcludes, isBlockScopeContainer) { @@ -7416,13 +7461,13 @@ var ts; } } } - ts.bindSourceFile = bindSourceFile; })(ts || (ts = {})); var ts; (function (ts) { var nextSymbolId = 1; var nextNodeId = 1; var nextMergeId = 1; + ts.checkTime = 0; function createTypeChecker(host, produceDiagnostics) { var Symbol = ts.objectAllocator.getSymbolConstructor(); var Type = ts.objectAllocator.getTypeConstructor(); @@ -7431,7 +7476,7 @@ var ts; var emptyArray = []; var emptySymbols = {}; var compilerOptions = host.getCompilerOptions(); - var languageVersion = compilerOptions.target || 0 /* ES3 */; + var languageVersion = compilerOptions.target || 0; var emitResolver = createResolver(); var checker = { getNodeCount: function () { return ts.sum(host.getSourceFiles(), "nodeCount"); }, @@ -7461,26 +7506,26 @@ var ts; getContextualType: getContextualType, getFullyQualifiedName: getFullyQualifiedName, getResolvedSignature: getResolvedSignature, - getEnumMemberValue: getEnumMemberValue, + getConstantValue: getConstantValue, isValidPropertyAccess: isValidPropertyAccess, getSignatureFromDeclaration: getSignatureFromDeclaration, isImplementationOfOverload: isImplementationOfOverload, getAliasedSymbol: resolveImport, - getEmitResolver: function () { return emitResolver; } + getEmitResolver: getEmitResolver }; - var undefinedSymbol = createSymbol(4 /* Property */ | 67108864 /* Transient */, "undefined"); - var argumentsSymbol = createSymbol(4 /* Property */ | 67108864 /* Transient */, "arguments"); - var unknownSymbol = createSymbol(4 /* Property */ | 67108864 /* Transient */, "unknown"); - var resolvingSymbol = createSymbol(67108864 /* Transient */, "__resolving__"); - var anyType = createIntrinsicType(1 /* Any */, "any"); - var stringType = createIntrinsicType(2 /* String */, "string"); - var numberType = createIntrinsicType(4 /* Number */, "number"); - var booleanType = createIntrinsicType(8 /* Boolean */, "boolean"); - var voidType = createIntrinsicType(16 /* Void */, "void"); - var undefinedType = createIntrinsicType(32 /* Undefined */ | 262144 /* ContainsUndefinedOrNull */, "undefined"); - var nullType = createIntrinsicType(64 /* Null */ | 262144 /* ContainsUndefinedOrNull */, "null"); - var unknownType = createIntrinsicType(1 /* Any */, "unknown"); - var resolvingType = createIntrinsicType(1 /* Any */, "__resolving__"); + var undefinedSymbol = createSymbol(4 | 67108864, "undefined"); + var argumentsSymbol = createSymbol(4 | 67108864, "arguments"); + var unknownSymbol = createSymbol(4 | 67108864, "unknown"); + var resolvingSymbol = createSymbol(67108864, "__resolving__"); + var anyType = createIntrinsicType(1, "any"); + var stringType = createIntrinsicType(2, "string"); + var numberType = createIntrinsicType(4, "number"); + var booleanType = createIntrinsicType(8, "boolean"); + var voidType = createIntrinsicType(16, "void"); + var undefinedType = createIntrinsicType(32 | 262144, "undefined"); + var nullType = createIntrinsicType(64 | 262144, "null"); + var unknownType = createIntrinsicType(1, "unknown"); + var resolvingType = createIntrinsicType(1, "__resolving__"); var emptyObjectType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); var anyFunctionType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); var noConstraintType = createAnonymousType(undefined, emptySymbols, emptyArray, emptyArray, undefined, undefined); @@ -7506,67 +7551,66 @@ var ts; var symbolLinks = []; var nodeLinks = []; var potentialThisCollisions = []; - var diagnostics = []; - var diagnosticsModified = false; + var diagnostics = ts.createDiagnosticCollection(); var primitiveTypeInfo = { "string": { type: stringType, - flags: 258 /* StringLike */ + flags: 258 }, "number": { type: numberType, - flags: 132 /* NumberLike */ + flags: 132 }, "boolean": { type: booleanType, - flags: 8 /* Boolean */ + flags: 8 } }; - function addDiagnostic(diagnostic) { - diagnostics.push(diagnostic); - diagnosticsModified = true; + function getEmitResolver(sourceFile) { + getDiagnostics(sourceFile); + return emitResolver; } function error(location, message, arg0, arg1, arg2) { var diagnostic = location ? ts.createDiagnosticForNode(location, message, arg0, arg1, arg2) : ts.createCompilerDiagnostic(message, arg0, arg1, arg2); - addDiagnostic(diagnostic); + diagnostics.add(diagnostic); } function createSymbol(flags, name) { return new Symbol(flags, name); } function getExcludedSymbolFlags(flags) { var result = 0; - if (flags & 2 /* BlockScopedVariable */) - result |= 107455 /* BlockScopedVariableExcludes */; - if (flags & 1 /* FunctionScopedVariable */) - result |= 107454 /* FunctionScopedVariableExcludes */; - if (flags & 4 /* Property */) - result |= 107455 /* PropertyExcludes */; - if (flags & 8 /* EnumMember */) - result |= 107455 /* EnumMemberExcludes */; - if (flags & 16 /* Function */) - result |= 106927 /* FunctionExcludes */; - if (flags & 32 /* Class */) - result |= 899583 /* ClassExcludes */; - if (flags & 64 /* Interface */) - result |= 792992 /* InterfaceExcludes */; - if (flags & 256 /* RegularEnum */) - result |= 899327 /* RegularEnumExcludes */; - if (flags & 128 /* ConstEnum */) - result |= 899967 /* ConstEnumExcludes */; - if (flags & 512 /* ValueModule */) - result |= 106639 /* ValueModuleExcludes */; - if (flags & 8192 /* Method */) - result |= 99263 /* MethodExcludes */; - if (flags & 32768 /* GetAccessor */) - result |= 41919 /* GetAccessorExcludes */; - if (flags & 65536 /* SetAccessor */) - result |= 74687 /* SetAccessorExcludes */; - if (flags & 262144 /* TypeParameter */) - result |= 530912 /* TypeParameterExcludes */; - if (flags & 524288 /* TypeAlias */) - result |= 793056 /* TypeAliasExcludes */; - if (flags & 8388608 /* Import */) - result |= 8388608 /* ImportExcludes */; + if (flags & 2) + result |= 107455; + if (flags & 1) + result |= 107454; + if (flags & 4) + result |= 107455; + if (flags & 8) + result |= 107455; + if (flags & 16) + result |= 106927; + if (flags & 32) + result |= 899583; + if (flags & 64) + result |= 792992; + if (flags & 256) + result |= 899327; + if (flags & 128) + result |= 899967; + if (flags & 512) + result |= 106639; + if (flags & 8192) + result |= 99263; + if (flags & 32768) + result |= 41919; + if (flags & 65536) + result |= 74687; + if (flags & 262144) + result |= 530912; + if (flags & 524288) + result |= 793056; + if (flags & 8388608) + result |= 8388608; return result; } function recordMergedSymbol(target, source) { @@ -7575,7 +7619,7 @@ var ts; mergedSymbols[source.mergeId] = target; } function cloneSymbol(symbol) { - var result = createSymbol(symbol.flags | 33554432 /* Merged */, symbol.name); + var result = createSymbol(symbol.flags | 33554432, symbol.name); result.declarations = symbol.declarations.slice(0); result.parent = symbol.parent; if (symbol.valueDeclaration) @@ -7591,7 +7635,7 @@ var ts; } function extendSymbol(target, source) { if (!(target.flags & getExcludedSymbolFlags(source.flags))) { - if (source.flags & 512 /* ValueModule */ && target.flags & 512 /* ValueModule */ && target.constEnumOnlyModule && !source.constEnumOnlyModule) { + if (source.flags & 512 && target.flags & 512 && target.constEnumOnlyModule && !source.constEnumOnlyModule) { target.constEnumOnlyModule = false; } target.flags |= source.flags; @@ -7613,7 +7657,7 @@ var ts; recordMergedSymbol(target, source); } else { - var message = target.flags & 2 /* BlockScopedVariable */ || source.flags & 2 /* BlockScopedVariable */ ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; + var message = target.flags & 2 || source.flags & 2 ? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0; ts.forEach(source.declarations, function (node) { error(node.name ? node.name : node, message, symbolToString(source)); }); @@ -7639,7 +7683,7 @@ var ts; } else { var symbol = target[id]; - if (!(symbol.flags & 33554432 /* Merged */)) { + if (!(symbol.flags & 33554432)) { target[id] = symbol = cloneSymbol(symbol); } extendSymbol(symbol, source[id]); @@ -7648,7 +7692,7 @@ var ts; } } function getSymbolLinks(symbol) { - if (symbol.flags & 67108864 /* Transient */) + if (symbol.flags & 67108864) return symbol; if (!symbol.id) symbol.id = nextSymbolId++; @@ -7660,19 +7704,19 @@ var ts; return nodeLinks[node.id] || (nodeLinks[node.id] = {}); } function getSourceFile(node) { - return ts.getAncestor(node, 207 /* SourceFile */); + return ts.getAncestor(node, 207); } function isGlobalSourceFile(node) { - return node.kind === 207 /* SourceFile */ && !ts.isExternalModule(node); + return node.kind === 207 && !ts.isExternalModule(node); } function getSymbol(symbols, name, meaning) { if (meaning && ts.hasProperty(symbols, name)) { var symbol = symbols[name]; - ts.Debug.assert((symbol.flags & 16777216 /* Instantiated */) === 0, "Should never get an instantiated symbol here."); + ts.Debug.assert((symbol.flags & 16777216) === 0, "Should never get an instantiated symbol here."); if (symbol.flags & meaning) { return symbol; } - if (symbol.flags & 8388608 /* Import */) { + if (symbol.flags & 8388608) { var target = resolveImport(symbol); if (target === unknownSymbol || target.flags & meaning) { return symbol; @@ -7704,62 +7748,62 @@ var ts; } } switch (location.kind) { - case 207 /* SourceFile */: + case 207: if (!ts.isExternalModule(location)) break; - case 195 /* ModuleDeclaration */: - if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8914931 /* ModuleMember */)) { + case 195: + if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8914931)) { break loop; } break; - case 194 /* EnumDeclaration */: - if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8 /* EnumMember */)) { + case 194: + if (result = getSymbol(getSymbolOfNode(location).exports, name, meaning & 8)) { break loop; } break; - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - if (location.parent.kind === 191 /* ClassDeclaration */ && !(location.flags & 128 /* Static */)) { + case 126: + case 125: + if (location.parent.kind === 191 && !(location.flags & 128)) { var ctor = findConstructorDeclaration(location.parent); if (ctor && ctor.locals) { - if (getSymbol(ctor.locals, name, meaning & 107455 /* Value */)) { + if (getSymbol(ctor.locals, name, meaning & 107455)) { propertyWithInvalidInitializer = location; } } } break; - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 793056 /* Type */)) { - if (lastLocation && lastLocation.flags & 128 /* Static */) { + case 191: + case 192: + if (result = getSymbol(getSymbolOfNode(location).members, name, meaning & 793056)) { + if (lastLocation && lastLocation.flags & 128) { error(errorLocation, ts.Diagnostics.Static_members_cannot_reference_class_type_parameters); return undefined; } break loop; } break; - case 122 /* ComputedPropertyName */: + case 122: var grandparent = location.parent.parent; - if (grandparent.kind === 191 /* ClassDeclaration */ || grandparent.kind === 192 /* InterfaceDeclaration */) { - if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & 793056 /* Type */)) { + if (grandparent.kind === 191 || grandparent.kind === 192) { + if (result = getSymbol(getSymbolOfNode(grandparent).members, name, meaning & 793056)) { error(errorLocation, ts.Diagnostics.A_computed_property_name_cannot_reference_a_type_parameter_from_its_containing_type); return undefined; } } break; - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 190 /* FunctionDeclaration */: - case 157 /* ArrowFunction */: + case 128: + case 127: + case 129: + case 130: + case 131: + case 190: + case 157: if (name === "arguments") { result = argumentsSymbol; break loop; } break; - case 156 /* FunctionExpression */: + case 156: if (name === "arguments") { result = argumentsSymbol; break loop; @@ -7770,7 +7814,7 @@ var ts; break loop; } break; - case 203 /* CatchClause */: + case 203: var id = location.name; if (name === id.text) { result = location.symbol; @@ -7796,8 +7840,8 @@ var ts; error(errorLocation, ts.Diagnostics.Initializer_of_instance_member_variable_0_cannot_reference_identifier_1_declared_in_the_constructor, ts.declarationNameToString(propertyName), typeof nameArg === "string" ? nameArg : ts.declarationNameToString(nameArg)); return undefined; } - if (result.flags & 2 /* BlockScopedVariable */) { - var declaration = ts.forEach(result.declarations, function (d) { return ts.getCombinedNodeFlags(d) & 6144 /* BlockScoped */ ? d : undefined; }); + if (result.flags & 2) { + var declaration = ts.forEach(result.declarations, function (d) { return ts.getCombinedNodeFlags(d) & 6144 ? d : undefined; }); ts.Debug.assert(declaration !== undefined, "Block-scoped variable declaration is undefined"); if (!isDefinedBefore(declaration, errorLocation)) { error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name)); @@ -7807,17 +7851,17 @@ var ts; return result; } function resolveImport(symbol) { - ts.Debug.assert((symbol.flags & 8388608 /* Import */) !== 0, "Should only get Imports here."); + ts.Debug.assert((symbol.flags & 8388608) !== 0, "Should only get Imports here."); var links = getSymbolLinks(symbol); if (!links.target) { links.target = resolvingSymbol; - var node = ts.getDeclarationOfKind(symbol, 197 /* ImportDeclaration */); - if (node.moduleReference.kind === 199 /* ExternalModuleReference */) { - if (node.moduleReference.expression.kind !== 8 /* StringLiteral */) { + var node = ts.getDeclarationOfKind(symbol, 197); + if (node.moduleReference.kind === 199) { + if (node.moduleReference.expression.kind !== 8) { grammarErrorOnNode(node.moduleReference.expression, ts.Diagnostics.String_literal_expected); } } - var target = node.moduleReference.kind === 199 /* ExternalModuleReference */ ? resolveExternalModuleName(node, ts.getExternalModuleImportDeclarationExpression(node)) : getSymbolOfPartOfRightHandSideOfImport(node.moduleReference, node); + var target = node.moduleReference.kind === 199 ? resolveExternalModuleName(node, ts.getExternalModuleImportDeclarationExpression(node)) : getSymbolOfPartOfRightHandSideOfImport(node.moduleReference, node); if (links.target === resolvingSymbol) { links.target = target || unknownSymbol; } @@ -7832,18 +7876,18 @@ var ts; } function getSymbolOfPartOfRightHandSideOfImport(entityName, importDeclaration) { if (!importDeclaration) { - importDeclaration = ts.getAncestor(entityName, 197 /* ImportDeclaration */); + importDeclaration = ts.getAncestor(entityName, 197); ts.Debug.assert(importDeclaration !== undefined); } - if (entityName.kind === 64 /* Identifier */ && isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { + if (entityName.kind === 64 && isRightSideOfQualifiedNameOrPropertyAccess(entityName)) { entityName = entityName.parent; } - if (entityName.kind === 64 /* Identifier */ || entityName.parent.kind === 121 /* QualifiedName */) { - return resolveEntityName(importDeclaration, entityName, 1536 /* Namespace */); + if (entityName.kind === 64 || entityName.parent.kind === 121) { + return resolveEntityName(importDeclaration, entityName, 1536); } else { - ts.Debug.assert(entityName.parent.kind === 197 /* ImportDeclaration */); - return resolveEntityName(importDeclaration, entityName, 107455 /* Value */ | 793056 /* Type */ | 1536 /* Namespace */); + ts.Debug.assert(entityName.parent.kind === 197); + return resolveEntityName(importDeclaration, entityName, 107455 | 793056 | 1536); } } function getFullyQualifiedName(symbol) { @@ -7853,14 +7897,14 @@ var ts; if (ts.getFullWidth(name) === 0) { return undefined; } - if (name.kind === 64 /* Identifier */) { + if (name.kind === 64) { var symbol = resolveName(location, name.text, meaning, ts.Diagnostics.Cannot_find_name_0, name); if (!symbol) { return; } } - else if (name.kind === 121 /* QualifiedName */) { - var namespace = resolveEntityName(location, name.left, 1536 /* Namespace */); + else if (name.kind === 121) { + var namespace = resolveEntityName(location, name.left, 1536); if (!namespace || namespace === unknownSymbol || ts.getFullWidth(name.right) === 0) return; var symbol = getSymbol(namespace.exports, name.right.text, meaning); @@ -7869,31 +7913,31 @@ var ts; return; } } - ts.Debug.assert((symbol.flags & 16777216 /* Instantiated */) === 0, "Should never get an instantiated symbol here."); + ts.Debug.assert((symbol.flags & 16777216) === 0, "Should never get an instantiated symbol here."); return symbol.flags & meaning ? symbol : resolveImport(symbol); } function isExternalModuleNameRelative(moduleName) { return moduleName.substr(0, 2) === "./" || moduleName.substr(0, 3) === "../" || moduleName.substr(0, 2) === ".\\" || moduleName.substr(0, 3) === "..\\"; } function resolveExternalModuleName(location, moduleReferenceExpression) { - if (moduleReferenceExpression.kind !== 8 /* StringLiteral */) { + if (moduleReferenceExpression.kind !== 8) { return; } var moduleReferenceLiteral = moduleReferenceExpression; - var searchPath = ts.getDirectoryPath(getSourceFile(location).filename); + var searchPath = ts.getDirectoryPath(getSourceFile(location).fileName); var moduleName = ts.escapeIdentifier(moduleReferenceLiteral.text); if (!moduleName) return; var isRelative = isExternalModuleNameRelative(moduleName); if (!isRelative) { - var symbol = getSymbol(globals, '"' + moduleName + '"', 512 /* ValueModule */); + var symbol = getSymbol(globals, '"' + moduleName + '"', 512); if (symbol) { return getResolvedExportSymbol(symbol); } } while (true) { - var filename = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); - var sourceFile = host.getSourceFile(filename + ".ts") || host.getSourceFile(filename + ".d.ts"); + var fileName = ts.normalizePath(ts.combinePaths(searchPath, moduleName)); + var sourceFile = host.getSourceFile(fileName + ".ts") || host.getSourceFile(fileName + ".d.ts"); if (sourceFile || isRelative) break; var parentPath = ts.getDirectoryPath(searchPath); @@ -7905,7 +7949,7 @@ var ts; if (sourceFile.symbol) { return getResolvedExportSymbol(sourceFile.symbol); } - error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_an_external_module, sourceFile.filename); + error(moduleReferenceLiteral, ts.Diagnostics.File_0_is_not_an_external_module, sourceFile.fileName); return; } error(moduleReferenceLiteral, ts.Diagnostics.Cannot_find_external_module_0, moduleName); @@ -7913,10 +7957,10 @@ var ts; function getResolvedExportSymbol(moduleSymbol) { var symbol = getExportAssignmentSymbol(moduleSymbol); if (symbol) { - if (symbol.flags & (107455 /* Value */ | 793056 /* Type */ | 1536 /* Namespace */)) { + if (symbol.flags & (107455 | 793056 | 1536)) { return symbol; } - if (symbol.flags & 8388608 /* Import */) { + if (symbol.flags & 8388608) { return resolveImport(symbol); } } @@ -7940,7 +7984,7 @@ var ts; error(node, ts.Diagnostics.An_export_assignment_cannot_be_used_in_a_module_with_other_exported_elements); } if (node.exportName.text) { - var meaning = 107455 /* Value */ | 793056 /* Type */ | 1536 /* Namespace */; + var meaning = 107455 | 793056 | 1536; var exportSymbol = resolveName(node, node.exportName.text, meaning, ts.Diagnostics.Cannot_find_name_0, node.exportName); } } @@ -7951,13 +7995,13 @@ var ts; var seenExportedMember = false; var result = []; ts.forEach(symbol.declarations, function (declaration) { - var block = (declaration.kind === 207 /* SourceFile */ ? declaration : declaration.body); + var block = (declaration.kind === 207 ? declaration : declaration.body); ts.forEach(block.statements, function (node) { - if (node.kind === 198 /* ExportAssignment */) { + if (node.kind === 198) { result.push(node); } else { - seenExportedMember = seenExportedMember || (node.flags & 1 /* Export */) !== 0; + seenExportedMember = seenExportedMember || (node.flags & 1) !== 0; } }); }); @@ -7977,17 +8021,17 @@ var ts; return getMergedSymbol(symbol.parent); } function getExportSymbolOfValueSymbolIfExported(symbol) { - return symbol && (symbol.flags & 1048576 /* ExportValue */) !== 0 ? getMergedSymbol(symbol.exportSymbol) : symbol; + return symbol && (symbol.flags & 1048576) !== 0 ? getMergedSymbol(symbol.exportSymbol) : symbol; } function symbolIsValue(symbol) { - if (symbol.flags & 16777216 /* Instantiated */) { + if (symbol.flags & 16777216) { return symbolIsValue(getSymbolLinks(symbol).target); } - if (symbol.flags & 107455 /* Value */) { + if (symbol.flags & 107455) { return true; } - if (symbol.flags & 8388608 /* Import */) { - return (resolveImport(symbol).flags & 107455 /* Value */) !== 0; + if (symbol.flags & 8388608) { + return (resolveImport(symbol).flags & 107455) !== 0; } return false; } @@ -7995,7 +8039,7 @@ var ts; var members = node.members; for (var i = 0; i < members.length; i++) { var member = members[i]; - if (member.kind === 129 /* Constructor */ && ts.nodeIsPresent(member.body)) { + if (member.kind === 129 && ts.nodeIsPresent(member.body)) { return member; } } @@ -8016,7 +8060,7 @@ var ts; return type; } function isReservedMemberName(name) { - return name.charCodeAt(0) === 95 /* _ */ && name.charCodeAt(1) === 95 /* _ */ && name.charCodeAt(2) !== 95 /* _ */; + return name.charCodeAt(0) === 95 && name.charCodeAt(1) === 95 && name.charCodeAt(2) !== 95; } function getNamedMembers(members) { var result; @@ -8046,7 +8090,7 @@ var ts; return type; } function createAnonymousType(symbol, members, callSignatures, constructSignatures, stringIndexType, numberIndexType) { - return setObjectTypeMembers(createObjectType(32768 /* Anonymous */, symbol), members, callSignatures, constructSignatures, stringIndexType, numberIndexType); + return setObjectTypeMembers(createObjectType(32768, symbol), members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } function forEachSymbolTableInScope(enclosingDeclaration, callback) { var result; @@ -8057,17 +8101,17 @@ var ts; } } switch (location.kind) { - case 207 /* SourceFile */: + case 207: if (!ts.isExternalModule(location)) { break; } - case 195 /* ModuleDeclaration */: + case 195: if (result = callback(getSymbolOfNode(location).exports)) { return result; } break; - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: + case 191: + case 192: if (result = callback(getSymbolOfNode(location).members)) { return result; } @@ -8077,7 +8121,7 @@ var ts; return callback(globals); } function getQualifiedLeftMeaning(rightMeaning) { - return rightMeaning === 107455 /* Value */ ? 107455 /* Value */ : 1536 /* Namespace */; + return rightMeaning === 107455 ? 107455 : 1536; } function getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, useOnlyExternalAliasing) { function getAccessibleSymbolChainFromSymbolTable(symbols) { @@ -8097,7 +8141,7 @@ var ts; return [symbol]; } return ts.forEachValue(symbols, function (symbolFromSymbolTable) { - if (symbolFromSymbolTable.flags & 8388608 /* Import */) { + if (symbolFromSymbolTable.flags & 8388608) { if (!useOnlyExternalAliasing || ts.forEach(symbolFromSymbolTable.declarations, ts.isExternalModuleImportDeclaration)) { var resolvedImportedSymbol = resolveImport(symbolFromSymbolTable); if (isAccessible(symbolFromSymbolTable, resolveImport(symbolFromSymbolTable))) { @@ -8125,7 +8169,7 @@ var ts; if (symbolFromSymbolTable === symbol) { return true; } - symbolFromSymbolTable = (symbolFromSymbolTable.flags & 8388608 /* Import */) ? resolveImport(symbolFromSymbolTable) : symbolFromSymbolTable; + symbolFromSymbolTable = (symbolFromSymbolTable.flags & 8388608) ? resolveImport(symbolFromSymbolTable) : symbolFromSymbolTable; if (symbolFromSymbolTable.flags & meaning) { qualify = true; return true; @@ -8135,7 +8179,7 @@ var ts; return qualify; } function isSymbolAccessible(symbol, enclosingDeclaration, meaning) { - if (symbol && enclosingDeclaration && !(symbol.flags & 262144 /* TypeParameter */)) { + if (symbol && enclosingDeclaration && !(symbol.flags & 262144)) { var initialSymbol = symbol; var meaningToLook = meaning; while (symbol) { @@ -8144,9 +8188,9 @@ var ts; var hasAccessibleDeclarations = hasVisibleDeclarations(accessibleSymbolChain[0]); if (!hasAccessibleDeclarations) { return { - accessibility: 1 /* NotAccessible */, + accessibility: 1, errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning), - errorModuleName: symbol !== initialSymbol ? symbolToString(symbol, enclosingDeclaration, 1536 /* Namespace */) : undefined + errorModuleName: symbol !== initialSymbol ? symbolToString(symbol, enclosingDeclaration, 1536) : undefined }; } return hasAccessibleDeclarations; @@ -8159,18 +8203,18 @@ var ts; var enclosingExternalModule = getExternalModuleContainer(enclosingDeclaration); if (symbolExternalModule !== enclosingExternalModule) { return { - accessibility: 2 /* CannotBeNamed */, + accessibility: 2, errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning), errorModuleName: symbolToString(symbolExternalModule) }; } } return { - accessibility: 1 /* NotAccessible */, + accessibility: 1, errorSymbolName: symbolToString(initialSymbol, enclosingDeclaration, meaning) }; } - return { accessibility: 0 /* Accessible */ }; + return { accessibility: 0 }; function getExternalModuleContainer(declaration) { for (; declaration; declaration = declaration.parent) { if (hasExternalModuleSymbol(declaration)) { @@ -8180,17 +8224,17 @@ var ts; } } function hasExternalModuleSymbol(declaration) { - return (declaration.kind === 195 /* ModuleDeclaration */ && declaration.name.kind === 8 /* StringLiteral */) || (declaration.kind === 207 /* SourceFile */ && ts.isExternalModule(declaration)); + return (declaration.kind === 195 && declaration.name.kind === 8) || (declaration.kind === 207 && ts.isExternalModule(declaration)); } function hasVisibleDeclarations(symbol) { var aliasesToMakeVisible; if (ts.forEach(symbol.declarations, function (declaration) { return !getIsDeclarationVisible(declaration); })) { return undefined; } - return { accessibility: 0 /* Accessible */, aliasesToMakeVisible: aliasesToMakeVisible }; + return { accessibility: 0, aliasesToMakeVisible: aliasesToMakeVisible }; function getIsDeclarationVisible(declaration) { if (!isDeclarationVisible(declaration)) { - if (declaration.kind === 197 /* ImportDeclaration */ && !(declaration.flags & 1 /* Export */) && isDeclarationVisible(declaration.parent)) { + if (declaration.kind === 197 && !(declaration.flags & 1) && isDeclarationVisible(declaration.parent)) { getNodeLinks(declaration).isVisible = true; if (aliasesToMakeVisible) { if (!ts.contains(aliasesToMakeVisible, declaration)) { @@ -8209,19 +8253,19 @@ var ts; } function isEntityNameVisible(entityName, enclosingDeclaration) { var meaning; - if (entityName.parent.kind === 138 /* TypeQuery */) { - meaning = 107455 /* Value */ | 1048576 /* ExportValue */; + if (entityName.parent.kind === 138) { + meaning = 107455 | 1048576; } - else if (entityName.kind === 121 /* QualifiedName */ || entityName.parent.kind === 197 /* ImportDeclaration */) { - meaning = 1536 /* Namespace */; + else if (entityName.kind === 121 || entityName.parent.kind === 197) { + meaning = 1536; } else { - meaning = 793056 /* Type */; + meaning = 793056; } var firstIdentifier = getFirstIdentifier(entityName); var symbol = resolveName(enclosingDeclaration, firstIdentifier.text, meaning, undefined, undefined); return (symbol && hasVisibleDeclarations(symbol)) || { - accessibility: 1 /* NotAccessible */, + accessibility: 1, errorSymbolName: ts.getTextOfNode(firstIdentifier), errorNode: firstIdentifier }; @@ -8247,19 +8291,19 @@ var ts; getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); var result = writer.string(); ts.releaseStringWriter(writer); - var maxLength = compilerOptions.noErrorTruncation || flags & 4 /* NoTruncation */ ? undefined : 100; + var maxLength = compilerOptions.noErrorTruncation || flags & 4 ? undefined : 100; if (maxLength && result.length >= maxLength) { result = result.substr(0, maxLength - "...".length) + "..."; } return result; } function getTypeAliasForTypeLiteral(type) { - if (type.symbol && type.symbol.flags & 2048 /* TypeLiteral */) { + if (type.symbol && type.symbol.flags & 2048) { var node = type.symbol.declarations[0].parent; - while (node.kind === 143 /* ParenthesizedType */) { + while (node.kind === 143) { node = node.parent; } - if (node.kind === 193 /* TypeAliasDeclaration */) { + if (node.kind === 193) { return getSymbolOfNode(node); } } @@ -8277,19 +8321,19 @@ var ts; } writer.writeSymbol(symbol.name, symbol); } - function buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning, flags) { + function buildSymbolDisplay(symbol, writer, enclosingDeclaration, meaning, flags, typeFlags) { var parentSymbol; function appendParentTypeArgumentsAndSymbolName(symbol) { if (parentSymbol) { - if (flags & 1 /* WriteTypeParametersOrArguments */) { - if (symbol.flags & 16777216 /* Instantiated */) { + if (flags & 1) { + if (symbol.flags & 16777216) { buildDisplayForTypeArgumentsAndDelimiters(getTypeParametersOfClassOrInterface(parentSymbol), symbol.mapper, writer, enclosingDeclaration); } else { buildTypeParameterDisplayFromSymbol(parentSymbol, writer, enclosingDeclaration); } } - writePunctuation(writer, 20 /* DotToken */); + writePunctuation(writer, 20); } parentSymbol = symbol; appendSymbolNameOnly(symbol, writer); @@ -8297,7 +8341,7 @@ var ts; writer.trackSymbol(symbol, enclosingDeclaration, meaning); function walkSymbol(symbol, meaning) { if (symbol) { - var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & 2 /* UseOnlyExternalAliasing */)); + var accessibleSymbolChain = getAccessibleSymbolChain(symbol, enclosingDeclaration, meaning, !!(flags & 2)); if (!accessibleSymbolChain || needsQualification(accessibleSymbolChain[0], enclosingDeclaration, accessibleSymbolChain.length === 1 ? meaning : getQualifiedLeftMeaning(meaning))) { walkSymbol(getParentOfSymbol(accessibleSymbolChain ? accessibleSymbolChain[0] : symbol), getQualifiedLeftMeaning(meaning)); } @@ -8310,50 +8354,52 @@ var ts; if (!parentSymbol && ts.forEach(symbol.declarations, hasExternalModuleSymbol)) { return; } - if (symbol.flags & 2048 /* TypeLiteral */ || symbol.flags & 4096 /* ObjectLiteral */) { + if (symbol.flags & 2048 || symbol.flags & 4096) { return; } appendParentTypeArgumentsAndSymbolName(symbol); } } } - if (enclosingDeclaration && !(symbol.flags & 262144 /* TypeParameter */)) { + var isTypeParameter = symbol.flags & 262144; + var typeFormatFlag = 128 & typeFlags; + if (!isTypeParameter && (enclosingDeclaration || typeFormatFlag)) { walkSymbol(symbol, meaning); return; } return appendParentTypeArgumentsAndSymbolName(symbol); } function buildTypeDisplay(type, writer, enclosingDeclaration, globalFlags, typeStack) { - var globalFlagsToPass = globalFlags & 16 /* WriteOwnNameForAnyLike */; + var globalFlagsToPass = globalFlags & 16; return writeType(type, globalFlags); function writeType(type, flags) { - if (type.flags & 127 /* Intrinsic */) { - writer.writeKeyword(!(globalFlags & 16 /* WriteOwnNameForAnyLike */) && (type.flags & 1 /* Any */) ? "any" : type.intrinsicName); + if (type.flags & 127) { + writer.writeKeyword(!(globalFlags & 16) && (type.flags & 1) ? "any" : type.intrinsicName); } - else if (type.flags & 4096 /* Reference */) { + else if (type.flags & 4096) { writeTypeReference(type, flags); } - else if (type.flags & (1024 /* Class */ | 2048 /* Interface */ | 128 /* Enum */ | 512 /* TypeParameter */)) { - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 793056 /* Type */); + else if (type.flags & (1024 | 2048 | 128 | 512)) { + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 793056, 0, flags); } - else if (type.flags & 8192 /* Tuple */) { + else if (type.flags & 8192) { writeTupleType(type); } - else if (type.flags & 16384 /* Union */) { + else if (type.flags & 16384) { writeUnionType(type, flags); } - else if (type.flags & 32768 /* Anonymous */) { + else if (type.flags & 32768) { writeAnonymousType(type, flags); } - else if (type.flags & 256 /* StringLiteral */) { + else if (type.flags & 256) { writer.writeStringLiteral(type.text); } else { - writePunctuation(writer, 14 /* OpenBraceToken */); + writePunctuation(writer, 14); writeSpace(writer); - writePunctuation(writer, 21 /* DotDotDotToken */); + writePunctuation(writer, 21); writeSpace(writer); - writePunctuation(writer, 15 /* CloseBraceToken */); + writePunctuation(writer, 15); } } function writeTypeList(types, union) { @@ -8362,53 +8408,53 @@ var ts; if (union) { writeSpace(writer); } - writePunctuation(writer, union ? 44 /* BarToken */ : 23 /* CommaToken */); + writePunctuation(writer, union ? 44 : 23); writeSpace(writer); } - writeType(types[i], union ? 64 /* InElementType */ : 0 /* None */); + writeType(types[i], union ? 64 : 0); } } function writeTypeReference(type, flags) { - if (type.target === globalArrayType && !(flags & 1 /* WriteArrayAsGenericType */)) { - writeType(type.typeArguments[0], 64 /* InElementType */); - writePunctuation(writer, 18 /* OpenBracketToken */); - writePunctuation(writer, 19 /* CloseBracketToken */); + if (type.target === globalArrayType && !(flags & 1)) { + writeType(type.typeArguments[0], 64); + writePunctuation(writer, 18); + writePunctuation(writer, 19); } else { - buildSymbolDisplay(type.target.symbol, writer, enclosingDeclaration, 793056 /* Type */); - writePunctuation(writer, 24 /* LessThanToken */); + buildSymbolDisplay(type.target.symbol, writer, enclosingDeclaration, 793056); + writePunctuation(writer, 24); writeTypeList(type.typeArguments, false); - writePunctuation(writer, 25 /* GreaterThanToken */); + writePunctuation(writer, 25); } } function writeTupleType(type) { - writePunctuation(writer, 18 /* OpenBracketToken */); + writePunctuation(writer, 18); writeTypeList(type.elementTypes, false); - writePunctuation(writer, 19 /* CloseBracketToken */); + writePunctuation(writer, 19); } function writeUnionType(type, flags) { - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 16 /* OpenParenToken */); + if (flags & 64) { + writePunctuation(writer, 16); } writeTypeList(type.types, true); - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 17 /* CloseParenToken */); + if (flags & 64) { + writePunctuation(writer, 17); } } function writeAnonymousType(type, flags) { - if (type.symbol && type.symbol.flags & (32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) { - writeTypeofSymbol(type); + if (type.symbol && type.symbol.flags & (32 | 384 | 512)) { + writeTypeofSymbol(type, flags); } else if (shouldWriteTypeOfFunctionSymbol()) { - writeTypeofSymbol(type); + writeTypeofSymbol(type, flags); } else if (typeStack && ts.contains(typeStack, type)) { var typeAlias = getTypeAliasForTypeLiteral(type); if (typeAlias) { - buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, 793056 /* Type */); + buildSymbolDisplay(typeAlias, writer, enclosingDeclaration, 793056, 0, flags); } else { - writeKeyword(writer, 110 /* AnyKeyword */); + writeKeyword(writer, 110); } } else { @@ -8421,18 +8467,18 @@ var ts; } function shouldWriteTypeOfFunctionSymbol() { if (type.symbol) { - var isStaticMethodSymbol = !!(type.symbol.flags & 8192 /* Method */ && ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128 /* Static */; })); - var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16 /* Function */) && (type.symbol.parent || ts.forEach(type.symbol.declarations, function (declaration) { return declaration.parent.kind === 207 /* SourceFile */ || declaration.parent.kind === 196 /* ModuleBlock */; })); + var isStaticMethodSymbol = !!(type.symbol.flags & 8192 && ts.forEach(type.symbol.declarations, function (declaration) { return declaration.flags & 128; })); + var isNonLocalFunctionSymbol = !!(type.symbol.flags & 16) && (type.symbol.parent || ts.forEach(type.symbol.declarations, function (declaration) { return declaration.parent.kind === 207 || declaration.parent.kind === 196; })); if (isStaticMethodSymbol || isNonLocalFunctionSymbol) { - return !!(flags & 2 /* UseTypeOfFunction */) || (typeStack && ts.contains(typeStack, type)); + return !!(flags & 2) || (typeStack && ts.contains(typeStack, type)); } } } } - function writeTypeofSymbol(type) { - writeKeyword(writer, 96 /* TypeOfKeyword */); + function writeTypeofSymbol(type, typeFormatFlags) { + writeKeyword(writer, 96); writeSpace(writer); - buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 107455 /* Value */); + buildSymbolDisplay(type.symbol, writer, enclosingDeclaration, 107455, 0, typeFormatFlags); } function getIndexerParameterName(type, indexKind, fallbackName) { var declaration = getIndexDeclarationOfSymbol(type.symbol, indexKind); @@ -8446,108 +8492,108 @@ var ts; var resolved = resolveObjectOrUnionTypeMembers(type); if (!resolved.properties.length && !resolved.stringIndexType && !resolved.numberIndexType) { if (!resolved.callSignatures.length && !resolved.constructSignatures.length) { - writePunctuation(writer, 14 /* OpenBraceToken */); - writePunctuation(writer, 15 /* CloseBraceToken */); + writePunctuation(writer, 14); + writePunctuation(writer, 15); return; } if (resolved.callSignatures.length === 1 && !resolved.constructSignatures.length) { - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 16 /* OpenParenToken */); + if (flags & 64) { + writePunctuation(writer, 16); } - buildSignatureDisplay(resolved.callSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8 /* WriteArrowStyleSignature */, typeStack); - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 17 /* CloseParenToken */); + buildSignatureDisplay(resolved.callSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8, typeStack); + if (flags & 64) { + writePunctuation(writer, 17); } return; } if (resolved.constructSignatures.length === 1 && !resolved.callSignatures.length) { - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 16 /* OpenParenToken */); + if (flags & 64) { + writePunctuation(writer, 16); } - writeKeyword(writer, 87 /* NewKeyword */); + writeKeyword(writer, 87); writeSpace(writer); - buildSignatureDisplay(resolved.constructSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8 /* WriteArrowStyleSignature */, typeStack); - if (flags & 64 /* InElementType */) { - writePunctuation(writer, 17 /* CloseParenToken */); + buildSignatureDisplay(resolved.constructSignatures[0], writer, enclosingDeclaration, globalFlagsToPass | 8, typeStack); + if (flags & 64) { + writePunctuation(writer, 17); } return; } } - writePunctuation(writer, 14 /* OpenBraceToken */); + writePunctuation(writer, 14); writer.writeLine(); writer.increaseIndent(); for (var i = 0; i < resolved.callSignatures.length; i++) { buildSignatureDisplay(resolved.callSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); - writePunctuation(writer, 22 /* SemicolonToken */); + writePunctuation(writer, 22); writer.writeLine(); } for (var i = 0; i < resolved.constructSignatures.length; i++) { - writeKeyword(writer, 87 /* NewKeyword */); + writeKeyword(writer, 87); writeSpace(writer); buildSignatureDisplay(resolved.constructSignatures[i], writer, enclosingDeclaration, globalFlagsToPass, typeStack); - writePunctuation(writer, 22 /* SemicolonToken */); + writePunctuation(writer, 22); writer.writeLine(); } if (resolved.stringIndexType) { - writePunctuation(writer, 18 /* OpenBracketToken */); - writer.writeParameter(getIndexerParameterName(resolved, 0 /* String */, "x")); - writePunctuation(writer, 51 /* ColonToken */); + writePunctuation(writer, 18); + writer.writeParameter(getIndexerParameterName(resolved, 0, "x")); + writePunctuation(writer, 51); writeSpace(writer); - writeKeyword(writer, 119 /* StringKeyword */); - writePunctuation(writer, 19 /* CloseBracketToken */); - writePunctuation(writer, 51 /* ColonToken */); + writeKeyword(writer, 119); + writePunctuation(writer, 19); + writePunctuation(writer, 51); writeSpace(writer); - writeType(resolved.stringIndexType, 0 /* None */); - writePunctuation(writer, 22 /* SemicolonToken */); + writeType(resolved.stringIndexType, 0); + writePunctuation(writer, 22); writer.writeLine(); } if (resolved.numberIndexType) { - writePunctuation(writer, 18 /* OpenBracketToken */); - writer.writeParameter(getIndexerParameterName(resolved, 1 /* Number */, "x")); - writePunctuation(writer, 51 /* ColonToken */); + writePunctuation(writer, 18); + writer.writeParameter(getIndexerParameterName(resolved, 1, "x")); + writePunctuation(writer, 51); writeSpace(writer); - writeKeyword(writer, 117 /* NumberKeyword */); - writePunctuation(writer, 19 /* CloseBracketToken */); - writePunctuation(writer, 51 /* ColonToken */); + writeKeyword(writer, 117); + writePunctuation(writer, 19); + writePunctuation(writer, 51); writeSpace(writer); - writeType(resolved.numberIndexType, 0 /* None */); - writePunctuation(writer, 22 /* SemicolonToken */); + writeType(resolved.numberIndexType, 0); + writePunctuation(writer, 22); writer.writeLine(); } for (var i = 0; i < resolved.properties.length; i++) { var p = resolved.properties[i]; var t = getTypeOfSymbol(p); - if (p.flags & (16 /* Function */ | 8192 /* Method */) && !getPropertiesOfObjectType(t).length) { - var signatures = getSignaturesOfType(t, 0 /* Call */); + if (p.flags & (16 | 8192) && !getPropertiesOfObjectType(t).length) { + var signatures = getSignaturesOfType(t, 0); for (var j = 0; j < signatures.length; j++) { buildSymbolDisplay(p, writer); - if (p.flags & 536870912 /* Optional */) { - writePunctuation(writer, 50 /* QuestionToken */); + if (p.flags & 536870912) { + writePunctuation(writer, 50); } buildSignatureDisplay(signatures[j], writer, enclosingDeclaration, globalFlagsToPass, typeStack); - writePunctuation(writer, 22 /* SemicolonToken */); + writePunctuation(writer, 22); writer.writeLine(); } } else { buildSymbolDisplay(p, writer); - if (p.flags & 536870912 /* Optional */) { - writePunctuation(writer, 50 /* QuestionToken */); + if (p.flags & 536870912) { + writePunctuation(writer, 50); } - writePunctuation(writer, 51 /* ColonToken */); + writePunctuation(writer, 51); writeSpace(writer); - writeType(t, 0 /* None */); - writePunctuation(writer, 22 /* SemicolonToken */); + writeType(t, 0); + writePunctuation(writer, 22); writer.writeLine(); } } writer.decreaseIndent(); - writePunctuation(writer, 15 /* CloseBraceToken */); + writePunctuation(writer, 15); } } function buildTypeParameterDisplayFromSymbol(symbol, writer, enclosingDeclaraiton, flags) { var targetSymbol = getTargetSymbol(symbol); - if (targetSymbol.flags & 32 /* Class */ || targetSymbol.flags & 64 /* Interface */) { + if (targetSymbol.flags & 32 || targetSymbol.flags & 64) { buildDisplayForTypeParametersAndDelimiters(getTypeParametersOfClassOrInterface(symbol), writer, enclosingDeclaraiton, flags); } } @@ -8556,73 +8602,73 @@ var ts; var constraint = getConstraintOfTypeParameter(tp); if (constraint) { writeSpace(writer); - writeKeyword(writer, 78 /* ExtendsKeyword */); + writeKeyword(writer, 78); writeSpace(writer); buildTypeDisplay(constraint, writer, enclosingDeclaration, flags, typeStack); } } function buildParameterDisplay(p, writer, enclosingDeclaration, flags, typeStack) { if (ts.hasDotDotDotToken(p.valueDeclaration)) { - writePunctuation(writer, 21 /* DotDotDotToken */); + writePunctuation(writer, 21); } appendSymbolNameOnly(p, writer); if (ts.hasQuestionToken(p.valueDeclaration) || p.valueDeclaration.initializer) { - writePunctuation(writer, 50 /* QuestionToken */); + writePunctuation(writer, 50); } - writePunctuation(writer, 51 /* ColonToken */); + writePunctuation(writer, 51); writeSpace(writer); buildTypeDisplay(getTypeOfSymbol(p), writer, enclosingDeclaration, flags, typeStack); } function buildDisplayForTypeParametersAndDelimiters(typeParameters, writer, enclosingDeclaration, flags, typeStack) { if (typeParameters && typeParameters.length) { - writePunctuation(writer, 24 /* LessThanToken */); + writePunctuation(writer, 24); for (var i = 0; i < typeParameters.length; i++) { if (i > 0) { - writePunctuation(writer, 23 /* CommaToken */); + writePunctuation(writer, 23); writeSpace(writer); } buildTypeParameterDisplay(typeParameters[i], writer, enclosingDeclaration, flags, typeStack); } - writePunctuation(writer, 25 /* GreaterThanToken */); + writePunctuation(writer, 25); } } function buildDisplayForTypeArgumentsAndDelimiters(typeParameters, mapper, writer, enclosingDeclaration, flags, typeStack) { if (typeParameters && typeParameters.length) { - writePunctuation(writer, 24 /* LessThanToken */); + writePunctuation(writer, 24); for (var i = 0; i < typeParameters.length; i++) { if (i > 0) { - writePunctuation(writer, 23 /* CommaToken */); + writePunctuation(writer, 23); writeSpace(writer); } - buildTypeDisplay(mapper(typeParameters[i]), writer, enclosingDeclaration, 0 /* None */); + buildTypeDisplay(mapper(typeParameters[i]), writer, enclosingDeclaration, 0); } - writePunctuation(writer, 25 /* GreaterThanToken */); + writePunctuation(writer, 25); } } function buildDisplayForParametersAndDelimiters(parameters, writer, enclosingDeclaration, flags, typeStack) { - writePunctuation(writer, 16 /* OpenParenToken */); + writePunctuation(writer, 16); for (var i = 0; i < parameters.length; i++) { if (i > 0) { - writePunctuation(writer, 23 /* CommaToken */); + writePunctuation(writer, 23); writeSpace(writer); } buildParameterDisplay(parameters[i], writer, enclosingDeclaration, flags, typeStack); } - writePunctuation(writer, 17 /* CloseParenToken */); + writePunctuation(writer, 17); } function buildReturnTypeDisplay(signature, writer, enclosingDeclaration, flags, typeStack) { - if (flags & 8 /* WriteArrowStyleSignature */) { + if (flags & 8) { writeSpace(writer); - writePunctuation(writer, 32 /* EqualsGreaterThanToken */); + writePunctuation(writer, 32); } else { - writePunctuation(writer, 51 /* ColonToken */); + writePunctuation(writer, 51); } writeSpace(writer); buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags, typeStack); } function buildSignatureDisplay(signature, writer, enclosingDeclaration, flags, typeStack) { - if (signature.target && (flags & 32 /* WriteTypeArgumentsOfSignature */)) { + if (signature.target && (flags & 32)) { buildDisplayForTypeArgumentsAndDelimiters(signature.target.typeParameters, signature.mapper, writer, enclosingDeclaration); } else { @@ -8649,12 +8695,12 @@ var ts; function isDeclarationVisible(node) { function getContainingExternalModule(node) { for (; node; node = node.parent) { - if (node.kind === 195 /* ModuleDeclaration */) { - if (node.name.kind === 8 /* StringLiteral */) { + if (node.kind === 195) { + if (node.name.kind === 8) { return node; } } - else if (node.kind === 207 /* SourceFile */) { + else if (node.kind === 207) { return ts.isExternalModule(node) ? node : undefined; } } @@ -8670,7 +8716,7 @@ var ts; if (isSymbolUsedInExportAssignment(symbolOfNode)) { return true; } - if (symbolOfNode.flags & 8388608 /* Import */) { + if (symbolOfNode.flags & 8388608) { return isSymbolUsedInExportAssignment(resolveImport(symbolOfNode)); } } @@ -8678,7 +8724,7 @@ var ts; if (exportAssignmentSymbol === symbol) { return true; } - if (exportAssignmentSymbol && !!(exportAssignmentSymbol.flags & 8388608 /* Import */)) { + if (exportAssignmentSymbol && !!(exportAssignmentSymbol.flags & 8388608)) { resolvedExportSymbol = resolvedExportSymbol || resolveImport(exportAssignmentSymbol); if (resolvedExportSymbol === symbol) { return true; @@ -8696,46 +8742,46 @@ var ts; } function determineIfDeclarationIsVisible() { switch (node.kind) { - case 188 /* VariableDeclaration */: - case 146 /* BindingElement */: - case 195 /* ModuleDeclaration */: - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 193 /* TypeAliasDeclaration */: - case 190 /* FunctionDeclaration */: - case 194 /* EnumDeclaration */: - case 197 /* ImportDeclaration */: + case 188: + case 146: + case 195: + case 191: + case 192: + case 193: + case 190: + case 194: + case 197: var parent = getDeclarationContainer(node); - if (!(ts.getCombinedNodeFlags(node) & 1 /* Export */) && !(node.kind !== 197 /* ImportDeclaration */ && parent.kind !== 207 /* SourceFile */ && ts.isInAmbientContext(parent))) { + if (!(ts.getCombinedNodeFlags(node) & 1) && !(node.kind !== 197 && parent.kind !== 207 && ts.isInAmbientContext(parent))) { return isGlobalSourceFile(parent) || isUsedInExportAssignment(node); } return isDeclarationVisible(parent); - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - if (node.flags & (32 /* Private */ | 64 /* Protected */)) { + case 126: + case 125: + case 130: + case 131: + case 128: + case 127: + if (node.flags & (32 | 64)) { return false; } - case 129 /* Constructor */: - case 133 /* ConstructSignature */: - case 132 /* CallSignature */: - case 134 /* IndexSignature */: - case 124 /* Parameter */: - case 196 /* ModuleBlock */: - case 136 /* FunctionType */: - case 137 /* ConstructorType */: - case 139 /* TypeLiteral */: - case 135 /* TypeReference */: - case 140 /* ArrayType */: - case 141 /* TupleType */: - case 142 /* UnionType */: - case 143 /* ParenthesizedType */: + case 129: + case 133: + case 132: + case 134: + case 124: + case 196: + case 136: + case 137: + case 139: + case 135: + case 140: + case 141: + case 142: + case 143: return isDeclarationVisible(node.parent); - case 123 /* TypeParameter */: - case 207 /* SourceFile */: + case 123: + case 207: return true; default: ts.Debug.fail("isDeclarationVisible unknown: SyntaxKind: " + node.kind); @@ -8750,14 +8796,14 @@ var ts; } } function getRootDeclaration(node) { - while (node.kind === 146 /* BindingElement */) { + while (node.kind === 146) { node = node.parent.parent; } return node; } function getDeclarationContainer(node) { node = getRootDeclaration(node); - return node.kind === 188 /* VariableDeclaration */ ? node.parent.parent.parent : node.parent; + return node.kind === 188 ? node.parent.parent.parent : node.parent; } function getTypeOfPrototypeProperty(prototype) { var classType = getDeclaredTypeOfSymbol(prototype.parent); @@ -8779,9 +8825,9 @@ var ts; } return parentType; } - if (pattern.kind === 144 /* ObjectBindingPattern */) { + if (pattern.kind === 144) { var name = declaration.propertyName || declaration.name; - var type = getTypeOfPropertyOfType(parentType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(parentType, 1 /* Number */) || getIndexTypeOfType(parentType, 0 /* String */); + var type = getTypeOfPropertyOfType(parentType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(parentType, 1) || getIndexTypeOfType(parentType, 0); if (!type) { error(name, ts.Diagnostics.Type_0_has_no_property_1_and_no_string_index_signature, typeToString(parentType), ts.declarationNameToString(name)); return unknownType; @@ -8794,20 +8840,20 @@ var ts; } if (!declaration.dotDotDotToken) { var propName = "" + ts.indexOf(pattern.elements, declaration); - var type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1 /* Number */); + var type = isTupleLikeType(parentType) ? getTypeOfPropertyOfType(parentType, propName) : getIndexTypeOfType(parentType, 1); if (!type) { error(declaration, ts.Diagnostics.Type_0_has_no_property_1, typeToString(parentType), propName); return unknownType; } } else { - var type = createArrayType(getIndexTypeOfType(parentType, 1 /* Number */)); + var type = createArrayType(getIndexTypeOfType(parentType, 1)); } } return type; } function getTypeForVariableLikeDeclaration(declaration) { - if (declaration.parent.parent.kind === 178 /* ForInStatement */) { + if (declaration.parent.parent.kind === 178) { return anyType; } if (ts.isBindingPattern(declaration.parent)) { @@ -8816,10 +8862,10 @@ var ts; if (declaration.type) { return getTypeFromTypeNode(declaration.type); } - if (declaration.kind === 124 /* Parameter */) { + if (declaration.kind === 124) { var func = declaration.parent; - if (func.kind === 131 /* SetAccessor */ && !ts.hasDynamicName(func)) { - var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 130 /* GetAccessor */); + if (func.kind === 131 && !ts.hasDynamicName(func)) { + var getter = ts.getDeclarationOfKind(declaration.parent.symbol, 130); if (getter) { return getReturnTypeOfSignature(getSignatureFromDeclaration(getter)); } @@ -8832,7 +8878,7 @@ var ts; if (declaration.initializer) { return checkExpressionCached(declaration.initializer); } - if (declaration.kind === 205 /* ShorthandPropertyAssignment */) { + if (declaration.kind === 205) { return checkIdentifier(declaration.name); } return undefined; @@ -8849,7 +8895,7 @@ var ts; function getTypeFromObjectBindingPattern(pattern) { var members = {}; ts.forEach(pattern.elements, function (e) { - var flags = 4 /* Property */ | 67108864 /* Transient */ | (e.initializer ? 536870912 /* Optional */ : 0); + var flags = 4 | 67108864 | (e.initializer ? 536870912 : 0); var name = e.propertyName || e.name; var symbol = createSymbol(flags, name.text); symbol.type = getTypeFromBindingElement(e); @@ -8861,7 +8907,7 @@ var ts; var hasSpreadElement = false; var elementTypes = []; ts.forEach(pattern.elements, function (e) { - elementTypes.push(e.kind === 168 /* OmittedExpression */ || e.dotDotDotToken ? anyType : getTypeFromBindingElement(e)); + elementTypes.push(e.kind === 168 || e.dotDotDotToken ? anyType : getTypeFromBindingElement(e)); if (e.dotDotDotToken) { hasSpreadElement = true; } @@ -8869,7 +8915,7 @@ var ts; return !elementTypes.length ? anyArrayType : hasSpreadElement ? createArrayType(getUnionType(elementTypes)) : createTupleType(elementTypes); } function getTypeFromBindingPattern(pattern) { - return pattern.kind === 144 /* ObjectBindingPattern */ ? getTypeFromObjectBindingPattern(pattern) : getTypeFromArrayBindingPattern(pattern); + return pattern.kind === 144 ? getTypeFromObjectBindingPattern(pattern) : getTypeFromArrayBindingPattern(pattern); } function getWidenedTypeForVariableLikeDeclaration(declaration, reportErrors) { var type = getTypeForVariableLikeDeclaration(declaration); @@ -8877,7 +8923,7 @@ var ts; if (reportErrors) { reportErrorsFromWidening(declaration, type); } - return declaration.kind !== 204 /* PropertyAssignment */ ? getWidenedType(type) : type; + return declaration.kind !== 204 ? getWidenedType(type) : type; } if (ts.isBindingPattern(declaration.name)) { return getTypeFromBindingPattern(declaration.name); @@ -8885,7 +8931,7 @@ var ts; type = declaration.dotDotDotToken ? anyArrayType : anyType; if (reportErrors && compilerOptions.noImplicitAny) { var root = getRootDeclaration(declaration); - if (!isPrivateWithinAmbient(root) && !(root.kind === 124 /* Parameter */ && isPrivateWithinAmbient(root.parent))) { + if (!isPrivateWithinAmbient(root) && !(root.kind === 124 && isPrivateWithinAmbient(root.parent))) { reportImplicitAnyError(declaration, type); } } @@ -8894,11 +8940,11 @@ var ts; function getTypeOfVariableOrParameterOrProperty(symbol) { var links = getSymbolLinks(symbol); if (!links.type) { - if (symbol.flags & 134217728 /* Prototype */) { + if (symbol.flags & 134217728) { return links.type = getTypeOfPrototypeProperty(symbol); } var declaration = symbol.valueDeclaration; - if (declaration.kind === 203 /* CatchClause */) { + if (declaration.kind === 203) { return links.type = anyType; } links.type = resolvingType; @@ -8921,7 +8967,7 @@ var ts; } function getAnnotatedAccessorType(accessor) { if (accessor) { - if (accessor.kind === 130 /* GetAccessor */) { + if (accessor.kind === 130) { return accessor.type && getTypeFromTypeNode(accessor.type); } else { @@ -8940,8 +8986,8 @@ var ts; links = links || getSymbolLinks(symbol); if (!links.type) { links.type = resolvingType; - var getter = ts.getDeclarationOfKind(symbol, 130 /* GetAccessor */); - var setter = ts.getDeclarationOfKind(symbol, 131 /* SetAccessor */); + var getter = ts.getDeclarationOfKind(symbol, 130); + var setter = ts.getDeclarationOfKind(symbol, 131); var type; var getterReturnType = getAnnotatedAccessorType(getter); if (getterReturnType) { @@ -8971,7 +9017,7 @@ var ts; else if (links.type === resolvingType) { links.type = anyType; if (compilerOptions.noImplicitAny) { - var getter = ts.getDeclarationOfKind(symbol, 130 /* GetAccessor */); + var getter = ts.getDeclarationOfKind(symbol, 130); error(getter, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, symbolToString(symbol)); } } @@ -8979,7 +9025,7 @@ var ts; function getTypeOfFuncClassEnumModule(symbol) { var links = getSymbolLinks(symbol); if (!links.type) { - links.type = createObjectType(32768 /* Anonymous */, symbol); + links.type = createObjectType(32768, symbol); } return links.type; } @@ -9005,28 +9051,28 @@ var ts; return links.type; } function getTypeOfSymbol(symbol) { - if (symbol.flags & 16777216 /* Instantiated */) { + if (symbol.flags & 16777216) { return getTypeOfInstantiatedSymbol(symbol); } - if (symbol.flags & (3 /* Variable */ | 4 /* Property */)) { + if (symbol.flags & (3 | 4)) { return getTypeOfVariableOrParameterOrProperty(symbol); } - if (symbol.flags & (16 /* Function */ | 8192 /* Method */ | 32 /* Class */ | 384 /* Enum */ | 512 /* ValueModule */)) { + if (symbol.flags & (16 | 8192 | 32 | 384 | 512)) { return getTypeOfFuncClassEnumModule(symbol); } - if (symbol.flags & 8 /* EnumMember */) { + if (symbol.flags & 8) { return getTypeOfEnumMember(symbol); } - if (symbol.flags & 98304 /* Accessor */) { + if (symbol.flags & 98304) { return getTypeOfAccessors(symbol); } - if (symbol.flags & 8388608 /* Import */) { + if (symbol.flags & 8388608) { return getTypeOfImport(symbol); } return unknownType; } function getTargetType(type) { - return type.flags & 4096 /* Reference */ ? type.target : type; + return type.flags & 4096 ? type.target : type; } function hasBaseType(type, checkBase) { return check(type); @@ -9038,7 +9084,7 @@ var ts; function getTypeParametersOfClassOrInterface(symbol) { var result; ts.forEach(symbol.declarations, function (node) { - if (node.kind === 192 /* InterfaceDeclaration */ || node.kind === 191 /* ClassDeclaration */) { + if (node.kind === 192 || node.kind === 191) { var declaration = node; if (declaration.typeParameters && declaration.typeParameters.length) { ts.forEach(declaration.typeParameters, function (node) { @@ -9058,10 +9104,10 @@ var ts; function getDeclaredTypeOfClass(symbol) { var links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = links.declaredType = createObjectType(1024 /* Class */, symbol); + var type = links.declaredType = createObjectType(1024, symbol); var typeParameters = getTypeParametersOfClassOrInterface(symbol); if (typeParameters) { - type.flags |= 4096 /* Reference */; + type.flags |= 4096; type.typeParameters = typeParameters; type.instantiations = {}; type.instantiations[getTypeListId(type.typeParameters)] = type; @@ -9069,17 +9115,17 @@ var ts; type.typeArguments = type.typeParameters; } type.baseTypes = []; - var declaration = ts.getDeclarationOfKind(symbol, 191 /* ClassDeclaration */); + var declaration = ts.getDeclarationOfKind(symbol, 191); var baseTypeNode = ts.getClassBaseTypeNode(declaration); if (baseTypeNode) { var baseType = getTypeFromTypeReferenceNode(baseTypeNode); if (baseType !== unknownType) { - if (getTargetType(baseType).flags & 1024 /* Class */) { + if (getTargetType(baseType).flags & 1024) { if (type !== baseType && !hasBaseType(baseType, type)) { type.baseTypes.push(baseType); } else { - error(declaration, ts.Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, undefined, 1 /* WriteArrayAsGenericType */)); + error(declaration, ts.Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, undefined, 1)); } } else { @@ -9090,18 +9136,18 @@ var ts; type.declaredProperties = getNamedMembers(symbol.members); type.declaredCallSignatures = emptyArray; type.declaredConstructSignatures = emptyArray; - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0 /* String */); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); + type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); + type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); } return links.declaredType; } function getDeclaredTypeOfInterface(symbol) { var links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = links.declaredType = createObjectType(2048 /* Interface */, symbol); + var type = links.declaredType = createObjectType(2048, symbol); var typeParameters = getTypeParametersOfClassOrInterface(symbol); if (typeParameters) { - type.flags |= 4096 /* Reference */; + type.flags |= 4096; type.typeParameters = typeParameters; type.instantiations = {}; type.instantiations[getTypeListId(type.typeParameters)] = type; @@ -9110,16 +9156,16 @@ var ts; } type.baseTypes = []; ts.forEach(symbol.declarations, function (declaration) { - if (declaration.kind === 192 /* InterfaceDeclaration */ && ts.getInterfaceBaseTypeNodes(declaration)) { + if (declaration.kind === 192 && ts.getInterfaceBaseTypeNodes(declaration)) { ts.forEach(ts.getInterfaceBaseTypeNodes(declaration), function (node) { var baseType = getTypeFromTypeReferenceNode(node); if (baseType !== unknownType) { - if (getTargetType(baseType).flags & (1024 /* Class */ | 2048 /* Interface */)) { + if (getTargetType(baseType).flags & (1024 | 2048)) { if (type !== baseType && !hasBaseType(baseType, type)) { type.baseTypes.push(baseType); } else { - error(declaration, ts.Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, undefined, 1 /* WriteArrayAsGenericType */)); + error(declaration, ts.Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, undefined, 1)); } } else { @@ -9132,8 +9178,8 @@ var ts; type.declaredProperties = getNamedMembers(symbol.members); type.declaredCallSignatures = getSignaturesOfSymbol(symbol.members["__call"]); type.declaredConstructSignatures = getSignaturesOfSymbol(symbol.members["__new"]); - type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0 /* String */); - type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); + type.declaredStringIndexType = getIndexTypeOfSymbol(symbol, 0); + type.declaredNumberIndexType = getIndexTypeOfSymbol(symbol, 1); } return links.declaredType; } @@ -9141,7 +9187,7 @@ var ts; var links = getSymbolLinks(symbol); if (!links.declaredType) { links.declaredType = resolvingType; - var declaration = ts.getDeclarationOfKind(symbol, 193 /* TypeAliasDeclaration */); + var declaration = ts.getDeclarationOfKind(symbol, 193); var type = getTypeFromTypeNode(declaration.type); if (links.declaredType === resolvingType) { links.declaredType = type; @@ -9149,7 +9195,7 @@ var ts; } else if (links.declaredType === resolvingType) { links.declaredType = unknownType; - var declaration = ts.getDeclarationOfKind(symbol, 193 /* TypeAliasDeclaration */); + var declaration = ts.getDeclarationOfKind(symbol, 193); error(declaration.name, ts.Diagnostics.Type_alias_0_circularly_references_itself, symbolToString(symbol)); } return links.declaredType; @@ -9157,7 +9203,7 @@ var ts; function getDeclaredTypeOfEnum(symbol) { var links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = createType(128 /* Enum */); + var type = createType(128); type.symbol = symbol; links.declaredType = type; } @@ -9166,9 +9212,9 @@ var ts; function getDeclaredTypeOfTypeParameter(symbol) { var links = getSymbolLinks(symbol); if (!links.declaredType) { - var type = createType(512 /* TypeParameter */); + var type = createType(512); type.symbol = symbol; - if (!ts.getDeclarationOfKind(symbol, 123 /* TypeParameter */).constraint) { + if (!ts.getDeclarationOfKind(symbol, 123).constraint) { type.constraint = noConstraintType; } links.declaredType = type; @@ -9183,23 +9229,23 @@ var ts; return links.declaredType; } function getDeclaredTypeOfSymbol(symbol) { - ts.Debug.assert((symbol.flags & 16777216 /* Instantiated */) === 0); - if (symbol.flags & 32 /* Class */) { + ts.Debug.assert((symbol.flags & 16777216) === 0); + if (symbol.flags & 32) { return getDeclaredTypeOfClass(symbol); } - if (symbol.flags & 64 /* Interface */) { + if (symbol.flags & 64) { return getDeclaredTypeOfInterface(symbol); } - if (symbol.flags & 524288 /* TypeAlias */) { + if (symbol.flags & 524288) { return getDeclaredTypeOfTypeAlias(symbol); } - if (symbol.flags & 384 /* Enum */) { + if (symbol.flags & 384) { return getDeclaredTypeOfEnum(symbol); } - if (symbol.flags & 262144 /* TypeParameter */) { + if (symbol.flags & 262144) { return getDeclaredTypeOfTypeParameter(symbol); } - if (symbol.flags & 8388608 /* Import */) { + if (symbol.flags & 8388608) { return getDeclaredTypeOfImport(symbol); } return unknownType; @@ -9245,10 +9291,10 @@ var ts; members = createSymbolTable(type.declaredProperties); ts.forEach(type.baseTypes, function (baseType) { addInheritedMembers(members, getPropertiesOfObjectType(baseType)); - callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(baseType, 0 /* Call */)); - constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(baseType, 1 /* Construct */)); - stringIndexType = stringIndexType || getIndexTypeOfType(baseType, 0 /* String */); - numberIndexType = numberIndexType || getIndexTypeOfType(baseType, 1 /* Number */); + callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(baseType, 0)); + constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(baseType, 1)); + stringIndexType = stringIndexType || getIndexTypeOfType(baseType, 0); + numberIndexType = numberIndexType || getIndexTypeOfType(baseType, 1); }); } setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); @@ -9264,10 +9310,10 @@ var ts; ts.forEach(target.baseTypes, function (baseType) { var instantiatedBaseType = instantiateType(baseType, mapper); addInheritedMembers(members, getPropertiesOfObjectType(instantiatedBaseType)); - callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(instantiatedBaseType, 0 /* Call */)); - constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1 /* Construct */)); - stringIndexType = stringIndexType || getIndexTypeOfType(instantiatedBaseType, 0 /* String */); - numberIndexType = numberIndexType || getIndexTypeOfType(instantiatedBaseType, 1 /* Number */); + callSignatures = ts.concatenate(callSignatures, getSignaturesOfType(instantiatedBaseType, 0)); + constructSignatures = ts.concatenate(constructSignatures, getSignaturesOfType(instantiatedBaseType, 1)); + stringIndexType = stringIndexType || getIndexTypeOfType(instantiatedBaseType, 0); + numberIndexType = numberIndexType || getIndexTypeOfType(instantiatedBaseType, 1); }); setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } @@ -9288,9 +9334,9 @@ var ts; function getDefaultConstructSignatures(classType) { if (classType.baseTypes.length) { var baseType = classType.baseTypes[0]; - var baseSignatures = getSignaturesOfType(getTypeOfSymbol(baseType.symbol), 1 /* Construct */); + var baseSignatures = getSignaturesOfType(getTypeOfSymbol(baseType.symbol), 1); return ts.map(baseSignatures, function (baseSignature) { - var signature = baseType.flags & 4096 /* Reference */ ? getSignatureInstantiation(baseSignature, baseType.typeArguments) : cloneSignature(baseSignature); + var signature = baseType.flags & 4096 ? getSignatureInstantiation(baseSignature, baseType.typeArguments) : cloneSignature(baseSignature); signature.typeParameters = classType.typeParameters; signature.resolvedReturnType = classType; return signature; @@ -9301,7 +9347,7 @@ var ts; function createTupleTypeMemberSymbols(memberTypes) { var members = {}; for (var i = 0; i < memberTypes.length; i++) { - var symbol = createSymbol(4 /* Property */ | 67108864 /* Transient */, "" + i); + var symbol = createSymbol(4 | 67108864, "" + i); symbol.type = memberTypes[i]; members[i] = symbol; } @@ -9357,32 +9403,32 @@ var ts; return getUnionType(indexTypes); } function resolveUnionTypeMembers(type) { - var callSignatures = getUnionSignatures(type.types, 0 /* Call */); - var constructSignatures = getUnionSignatures(type.types, 1 /* Construct */); - var stringIndexType = getUnionIndexType(type.types, 0 /* String */); - var numberIndexType = getUnionIndexType(type.types, 1 /* Number */); + var callSignatures = getUnionSignatures(type.types, 0); + var constructSignatures = getUnionSignatures(type.types, 1); + var stringIndexType = getUnionIndexType(type.types, 0); + var numberIndexType = getUnionIndexType(type.types, 1); setObjectTypeMembers(type, emptySymbols, callSignatures, constructSignatures, stringIndexType, numberIndexType); } function resolveAnonymousTypeMembers(type) { var symbol = type.symbol; - if (symbol.flags & 2048 /* TypeLiteral */) { + if (symbol.flags & 2048) { var members = symbol.members; var callSignatures = getSignaturesOfSymbol(members["__call"]); var constructSignatures = getSignaturesOfSymbol(members["__new"]); - var stringIndexType = getIndexTypeOfSymbol(symbol, 0 /* String */); - var numberIndexType = getIndexTypeOfSymbol(symbol, 1 /* Number */); + var stringIndexType = getIndexTypeOfSymbol(symbol, 0); + var numberIndexType = getIndexTypeOfSymbol(symbol, 1); } else { var members = emptySymbols; var callSignatures = emptyArray; var constructSignatures = emptyArray; - if (symbol.flags & 1952 /* HasExports */) { + if (symbol.flags & 1952) { members = symbol.exports; } - if (symbol.flags & (16 /* Function */ | 8192 /* Method */)) { + if (symbol.flags & (16 | 8192)) { callSignatures = getSignaturesOfSymbol(symbol); } - if (symbol.flags & 32 /* Class */) { + if (symbol.flags & 32) { var classType = getDeclaredTypeOfClass(symbol); constructSignatures = getSignaturesOfSymbol(symbol.members["__constructor"]); if (!constructSignatures.length) { @@ -9394,22 +9440,22 @@ var ts; } } var stringIndexType = undefined; - var numberIndexType = (symbol.flags & 384 /* Enum */) ? stringType : undefined; + var numberIndexType = (symbol.flags & 384) ? stringType : undefined; } setObjectTypeMembers(type, members, callSignatures, constructSignatures, stringIndexType, numberIndexType); } function resolveObjectOrUnionTypeMembers(type) { if (!type.members) { - if (type.flags & (1024 /* Class */ | 2048 /* Interface */)) { + if (type.flags & (1024 | 2048)) { resolveClassOrInterfaceMembers(type); } - else if (type.flags & 32768 /* Anonymous */) { + else if (type.flags & 32768) { resolveAnonymousTypeMembers(type); } - else if (type.flags & 8192 /* Tuple */) { + else if (type.flags & 8192) { resolveTupleTypeMembers(type); } - else if (type.flags & 16384 /* Union */) { + else if (type.flags & 16384) { resolveUnionTypeMembers(type); } else { @@ -9419,13 +9465,13 @@ var ts; return type; } function getPropertiesOfObjectType(type) { - if (type.flags & 48128 /* ObjectType */) { + if (type.flags & 48128) { return resolveObjectOrUnionTypeMembers(type).properties; } return emptyArray; } function getPropertyOfObjectType(type, name) { - if (type.flags & 48128 /* ObjectType */) { + if (type.flags & 48128) { var resolved = resolveObjectOrUnionTypeMembers(type); if (ts.hasProperty(resolved.members, name)) { var symbol = resolved.members[name]; @@ -9446,27 +9492,27 @@ var ts; return result; } function getPropertiesOfType(type) { - if (type.flags & 16384 /* Union */) { + if (type.flags & 16384) { return getPropertiesOfUnionType(type); } return getPropertiesOfObjectType(getApparentType(type)); } function getApparentType(type) { - if (type.flags & 512 /* TypeParameter */) { + if (type.flags & 512) { do { type = getConstraintOfTypeParameter(type); - } while (type && type.flags & 512 /* TypeParameter */); + } while (type && type.flags & 512); if (!type) { type = emptyObjectType; } } - if (type.flags & 258 /* StringLike */) { + if (type.flags & 258) { type = globalStringType; } - else if (type.flags & 132 /* NumberLike */) { + else if (type.flags & 132) { type = globalNumberType; } - else if (type.flags & 8 /* Boolean */) { + else if (type.flags & 8) { type = globalBooleanType; } return type; @@ -9498,7 +9544,7 @@ var ts; } propTypes.push(getTypeOfSymbol(prop)); } - var result = createSymbol(4 /* Property */ | 67108864 /* Transient */ | 268435456 /* UnionProperty */, name); + var result = createSymbol(4 | 67108864 | 268435456, name); result.unionType = unionType; result.declarations = declarations; result.type = getUnionType(propTypes); @@ -9516,12 +9562,12 @@ var ts; return property; } function getPropertyOfType(type, name) { - if (type.flags & 16384 /* Union */) { + if (type.flags & 16384) { return getPropertyOfUnionType(type, name); } - if (!(type.flags & 48128 /* ObjectType */)) { + if (!(type.flags & 48128)) { type = getApparentType(type); - if (!(type.flags & 48128 /* ObjectType */)) { + if (!(type.flags & 48128)) { return undefined; } } @@ -9540,9 +9586,9 @@ var ts; return getPropertyOfObjectType(globalObjectType, name); } function getSignaturesOfObjectOrUnionType(type, kind) { - if (type.flags & (48128 /* ObjectType */ | 16384 /* Union */)) { + if (type.flags & (48128 | 16384)) { var resolved = resolveObjectOrUnionTypeMembers(type); - return kind === 0 /* Call */ ? resolved.callSignatures : resolved.constructSignatures; + return kind === 0 ? resolved.callSignatures : resolved.constructSignatures; } return emptyArray; } @@ -9550,9 +9596,9 @@ var ts; return getSignaturesOfObjectOrUnionType(getApparentType(type), kind); } function getIndexTypeOfObjectOrUnionType(type, kind) { - if (type.flags & (48128 /* ObjectType */ | 16384 /* Union */)) { + if (type.flags & (48128 | 16384)) { var resolved = resolveObjectOrUnionTypeMembers(type); - return kind === 0 /* String */ ? resolved.stringIndexType : resolved.numberIndexType; + return kind === 0 ? resolved.stringIndexType : resolved.numberIndexType; } } function getIndexTypeOfType(type, kind) { @@ -9571,7 +9617,7 @@ var ts; function getSignatureFromDeclaration(declaration) { var links = getNodeLinks(declaration); if (!links.resolvedSignature) { - var classType = declaration.kind === 129 /* Constructor */ ? getDeclaredTypeOfClass(declaration.parent.symbol) : undefined; + var classType = declaration.kind === 129 ? getDeclaredTypeOfClass(declaration.parent.symbol) : undefined; var typeParameters = classType ? classType.typeParameters : declaration.typeParameters ? getTypeParametersFromDeclaration(declaration.typeParameters) : undefined; var parameters = []; var hasStringLiterals = false; @@ -9579,7 +9625,7 @@ var ts; for (var i = 0, n = declaration.parameters.length; i < n; i++) { var param = declaration.parameters[i]; parameters.push(param.symbol); - if (param.type && param.type.kind === 8 /* StringLiteral */) { + if (param.type && param.type.kind === 8) { hasStringLiterals = true; } if (minArgumentCount < 0) { @@ -9599,8 +9645,8 @@ var ts; returnType = getTypeFromTypeNode(declaration.type); } else { - if (declaration.kind === 130 /* GetAccessor */ && !ts.hasDynamicName(declaration)) { - var setter = ts.getDeclarationOfKind(declaration.symbol, 131 /* SetAccessor */); + if (declaration.kind === 130 && !ts.hasDynamicName(declaration)) { + var setter = ts.getDeclarationOfKind(declaration.symbol, 131); returnType = getAnnotatedAccessorType(setter); } if (!returnType && ts.nodeIsMissing(declaration.body)) { @@ -9618,19 +9664,19 @@ var ts; for (var i = 0, len = symbol.declarations.length; i < len; i++) { var node = symbol.declarations[i]; switch (node.kind) { - case 136 /* FunctionType */: - case 137 /* ConstructorType */: - case 190 /* FunctionDeclaration */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 129 /* Constructor */: - case 132 /* CallSignature */: - case 133 /* ConstructSignature */: - case 134 /* IndexSignature */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: + case 136: + case 137: + case 190: + case 128: + case 127: + case 129: + case 132: + case 133: + case 134: + case 130: + case 131: + case 156: + case 157: if (i > 0 && node.body) { var previous = symbol.declarations[i - 1]; if (node.parent === previous.parent && node.kind === previous.kind && node.pos === previous.end) { @@ -9675,7 +9721,7 @@ var ts; function getRestTypeOfSignature(signature) { if (signature.hasRestParameter) { var type = getTypeOfSymbol(signature.parameters[signature.parameters.length - 1]); - if (type.flags & 4096 /* Reference */ && type.target === globalArrayType) { + if (type.flags & 4096 && type.target === globalArrayType) { return type.typeArguments[0]; } } @@ -9699,8 +9745,8 @@ var ts; } function getOrCreateTypeFromSignature(signature) { if (!signature.isolatedSignatureType) { - var isConstructor = signature.declaration.kind === 129 /* Constructor */ || signature.declaration.kind === 133 /* ConstructSignature */; - var type = createObjectType(32768 /* Anonymous */ | 65536 /* FromSignature */); + var isConstructor = signature.declaration.kind === 129 || signature.declaration.kind === 133; + var type = createObjectType(32768 | 65536); type.members = emptySymbols; type.properties = emptyArray; type.callSignatures = !isConstructor ? [signature] : emptyArray; @@ -9713,7 +9759,7 @@ var ts; return symbol.members["__index"]; } function getIndexDeclarationOfSymbol(symbol, kind) { - var syntaxKind = kind === 1 /* Number */ ? 117 /* NumberKeyword */ : 119 /* StringKeyword */; + var syntaxKind = kind === 1 ? 117 : 119; var indexSymbol = getIndexSymbol(symbol); if (indexSymbol) { var len = indexSymbol.declarations.length; @@ -9740,7 +9786,7 @@ var ts; type.constraint = targetConstraint ? instantiateType(targetConstraint, type.mapper) : noConstraintType; } else { - type.constraint = getTypeFromTypeNode(ts.getDeclarationOfKind(type.symbol, 123 /* TypeParameter */).constraint); + type.constraint = getTypeFromTypeNode(ts.getDeclarationOfKind(type.symbol, 123).constraint); } } return type.constraint === noConstraintType ? undefined : type.constraint; @@ -9766,13 +9812,13 @@ var ts; for (var i = 0; i < types.length; i++) { result |= types[i].flags; } - return result & 786432 /* RequiresWidening */; + return result & 786432; } function createTypeReference(target, typeArguments) { var id = getTypeListId(typeArguments); var type = target.instantiations[id]; if (!type) { - var flags = 4096 /* Reference */ | getWideningFlagsOfTypes(typeArguments); + var flags = 4096 | getWideningFlagsOfTypes(typeArguments); type = target.instantiations[id] = createObjectType(flags, target.symbol); type.target = target; type.typeArguments = typeArguments; @@ -9788,17 +9834,17 @@ var ts; while (!ts.forEach(typeParameterSymbol.declarations, function (d) { return d.parent === currentNode.parent; })) { currentNode = currentNode.parent; } - links.isIllegalTypeReferenceInConstraint = currentNode.kind === 123 /* TypeParameter */; + links.isIllegalTypeReferenceInConstraint = currentNode.kind === 123; return links.isIllegalTypeReferenceInConstraint; } function checkTypeParameterHasIllegalReferencesInConstraint(typeParameter) { var typeParameterSymbol; function check(n) { - if (n.kind === 135 /* TypeReference */ && n.typeName.kind === 64 /* Identifier */) { + if (n.kind === 135 && n.typeName.kind === 64) { var links = getNodeLinks(n); if (links.isIllegalTypeReferenceInConstraint === undefined) { - var symbol = resolveName(typeParameter, n.typeName.text, 793056 /* Type */, undefined, undefined); - if (symbol && (symbol.flags & 262144 /* TypeParameter */)) { + var symbol = resolveName(typeParameter, n.typeName.text, 793056, undefined, undefined); + if (symbol && (symbol.flags & 262144)) { links.isIllegalTypeReferenceInConstraint = ts.forEach(symbol.declarations, function (d) { return d.parent == typeParameter.parent; }); } } @@ -9816,21 +9862,21 @@ var ts; function getTypeFromTypeReferenceNode(node) { var links = getNodeLinks(node); if (!links.resolvedType) { - var symbol = resolveEntityName(node, node.typeName, 793056 /* Type */); + var symbol = resolveEntityName(node, node.typeName, 793056); if (symbol) { var type; - if ((symbol.flags & 262144 /* TypeParameter */) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) { + if ((symbol.flags & 262144) && isTypeParameterReferenceIllegalInConstraint(node, symbol)) { type = unknownType; } else { type = getDeclaredTypeOfSymbol(symbol); - if (type.flags & (1024 /* Class */ | 2048 /* Interface */) && type.flags & 4096 /* Reference */) { + if (type.flags & (1024 | 2048) && type.flags & 4096) { var typeParameters = type.typeParameters; if (node.typeArguments && node.typeArguments.length === typeParameters.length) { type = createTypeReference(type, ts.map(node.typeArguments, getTypeFromTypeNode)); } else { - error(node, ts.Diagnostics.Generic_type_0_requires_1_type_argument_s, typeToString(type, undefined, 1 /* WriteArrayAsGenericType */), typeParameters.length); + error(node, ts.Diagnostics.Generic_type_0_requires_1_type_argument_s, typeToString(type, undefined, 1), typeParameters.length); type = undefined; } } @@ -9859,9 +9905,9 @@ var ts; for (var i = 0; i < declarations.length; i++) { var declaration = declarations[i]; switch (declaration.kind) { - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 194 /* EnumDeclaration */: + case 191: + case 192: + case 194: return declaration; } } @@ -9870,7 +9916,7 @@ var ts; return emptyObjectType; } var type = getDeclaredTypeOfSymbol(symbol); - if (!(type.flags & 48128 /* ObjectType */)) { + if (!(type.flags & 48128)) { error(getTypeDeclaration(symbol), ts.Diagnostics.Global_type_0_must_be_a_class_or_interface_type, symbol.name); return emptyObjectType; } @@ -9881,7 +9927,7 @@ var ts; return type; } function getGlobalSymbol(name) { - return resolveName(undefined, name, 793056 /* Type */, ts.Diagnostics.Cannot_find_global_type_0, name); + return resolveName(undefined, name, 793056, ts.Diagnostics.Cannot_find_global_type_0, name); } function getGlobalType(name) { return getTypeOfGlobalSymbol(getGlobalSymbol(name), 0); @@ -9901,7 +9947,7 @@ var ts; var id = getTypeListId(elementTypes); var type = tupleTypes[id]; if (!type) { - type = tupleTypes[id] = createObjectType(8192 /* Tuple */); + type = tupleTypes[id] = createObjectType(8192); type.elementTypes = elementTypes; } return type; @@ -9914,7 +9960,7 @@ var ts; return links.resolvedType; } function addTypeToSortedSet(sortedSet, type) { - if (type.flags & 16384 /* Union */) { + if (type.flags & 16384) { addTypesToSortedSet(sortedSet, type.types); } else { @@ -9952,7 +9998,7 @@ var ts; } function containsAnyType(types) { for (var i = 0; i < types.length; i++) { - if (types[i].flags & 1 /* Any */) { + if (types[i].flags & 1) { return true; } } @@ -9989,7 +10035,7 @@ var ts; var id = getTypeListId(sortedTypes); var type = unionTypes[id]; if (!type) { - type = unionTypes[id] = createObjectType(16384 /* Union */ | getWideningFlagsOfTypes(sortedTypes)); + type = unionTypes[id] = createObjectType(16384 | getWideningFlagsOfTypes(sortedTypes)); type.types = sortedTypes; } return type; @@ -10004,7 +10050,7 @@ var ts; function getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node) { var links = getNodeLinks(node); if (!links.resolvedType) { - links.resolvedType = createObjectType(32768 /* Anonymous */, node.symbol); + links.resolvedType = createObjectType(32768, node.symbol); } return links.resolvedType; } @@ -10012,7 +10058,7 @@ var ts; if (ts.hasProperty(stringLiteralTypes, node.text)) { return stringLiteralTypes[node.text]; } - var type = stringLiteralTypes[node.text] = createType(256 /* StringLiteral */); + var type = stringLiteralTypes[node.text] = createType(256); type.text = ts.getTextOfNode(node); return type; } @@ -10025,36 +10071,36 @@ var ts; } function getTypeFromTypeNode(node) { switch (node.kind) { - case 110 /* AnyKeyword */: + case 110: return anyType; - case 119 /* StringKeyword */: + case 119: return stringType; - case 117 /* NumberKeyword */: + case 117: return numberType; - case 111 /* BooleanKeyword */: + case 111: return booleanType; - case 98 /* VoidKeyword */: + case 98: return voidType; - case 8 /* StringLiteral */: + case 8: return getTypeFromStringLiteral(node); - case 135 /* TypeReference */: + case 135: return getTypeFromTypeReferenceNode(node); - case 138 /* TypeQuery */: + case 138: return getTypeFromTypeQueryNode(node); - case 140 /* ArrayType */: + case 140: return getTypeFromArrayTypeNode(node); - case 141 /* TupleType */: + case 141: return getTypeFromTupleTypeNode(node); - case 142 /* UnionType */: + case 142: return getTypeFromUnionTypeNode(node); - case 143 /* ParenthesizedType */: + case 143: return getTypeFromTypeNode(node.type); - case 136 /* FunctionType */: - case 137 /* ConstructorType */: - case 139 /* TypeLiteral */: + case 136: + case 137: + case 139: return getTypeFromTypeLiteralOrFunctionOrConstructorTypeNode(node); - case 64 /* Identifier */: - case 121 /* QualifiedName */: + case 64: + case 121: var symbol = getSymbolInfo(node); return symbol && getDeclaredTypeOfSymbol(symbol); default: @@ -10126,7 +10172,7 @@ var ts; return function (t) { return mapper2(mapper1(t)); }; } function instantiateTypeParameter(typeParameter, mapper) { - var result = createType(512 /* TypeParameter */); + var result = createType(512); result.symbol = typeParameter.symbol; if (typeParameter.constraint) { result.constraint = instantiateType(typeParameter.constraint, mapper); @@ -10148,12 +10194,12 @@ var ts; return result; } function instantiateSymbol(symbol, mapper) { - if (symbol.flags & 16777216 /* Instantiated */) { + if (symbol.flags & 16777216) { var links = getSymbolLinks(symbol); symbol = links.target; mapper = combineTypeMappers(links.mapper, mapper); } - var result = createSymbol(16777216 /* Instantiated */ | 67108864 /* Transient */ | symbol.flags, symbol.name); + var result = createSymbol(16777216 | 67108864 | symbol.flags, symbol.name); result.declarations = symbol.declarations; result.parent = symbol.parent; result.target = symbol; @@ -10164,13 +10210,13 @@ var ts; return result; } function instantiateAnonymousType(type, mapper) { - var result = createObjectType(32768 /* Anonymous */, type.symbol); + var result = createObjectType(32768, type.symbol); result.properties = instantiateList(getPropertiesOfObjectType(type), mapper, instantiateSymbol); result.members = createSymbolTable(result.properties); - result.callSignatures = instantiateList(getSignaturesOfType(type, 0 /* Call */), mapper, instantiateSignature); - result.constructSignatures = instantiateList(getSignaturesOfType(type, 1 /* Construct */), mapper, instantiateSignature); - var stringIndexType = getIndexTypeOfType(type, 0 /* String */); - var numberIndexType = getIndexTypeOfType(type, 1 /* Number */); + result.callSignatures = instantiateList(getSignaturesOfType(type, 0), mapper, instantiateSignature); + result.constructSignatures = instantiateList(getSignaturesOfType(type, 1), mapper, instantiateSignature); + var stringIndexType = getIndexTypeOfType(type, 0); + var numberIndexType = getIndexTypeOfType(type, 1); if (stringIndexType) result.stringIndexType = instantiateType(stringIndexType, mapper); if (numberIndexType) @@ -10179,44 +10225,44 @@ var ts; } function instantiateType(type, mapper) { if (mapper !== identityMapper) { - if (type.flags & 512 /* TypeParameter */) { + if (type.flags & 512) { return mapper(type); } - if (type.flags & 32768 /* Anonymous */) { - return type.symbol && type.symbol.flags & (16 /* Function */ | 8192 /* Method */ | 2048 /* TypeLiteral */ | 4096 /* ObjectLiteral */) ? instantiateAnonymousType(type, mapper) : type; + if (type.flags & 32768) { + return type.symbol && type.symbol.flags & (16 | 8192 | 2048 | 4096) ? instantiateAnonymousType(type, mapper) : type; } - if (type.flags & 4096 /* Reference */) { + if (type.flags & 4096) { return createTypeReference(type.target, instantiateList(type.typeArguments, mapper, instantiateType)); } - if (type.flags & 8192 /* Tuple */) { + if (type.flags & 8192) { return createTupleType(instantiateList(type.elementTypes, mapper, instantiateType)); } - if (type.flags & 16384 /* Union */) { + if (type.flags & 16384) { return getUnionType(instantiateList(type.types, mapper, instantiateType), true); } } return type; } function isContextSensitive(node) { - ts.Debug.assert(node.kind !== 128 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node)); + ts.Debug.assert(node.kind !== 128 || ts.isObjectLiteralMethod(node)); switch (node.kind) { - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: + case 156: + case 157: return isContextSensitiveFunctionLikeDeclaration(node); - case 148 /* ObjectLiteralExpression */: + case 148: return ts.forEach(node.properties, isContextSensitive); - case 147 /* ArrayLiteralExpression */: + case 147: return ts.forEach(node.elements, isContextSensitive); - case 164 /* ConditionalExpression */: + case 164: return isContextSensitive(node.whenTrue) || isContextSensitive(node.whenFalse); - case 163 /* BinaryExpression */: - return node.operator === 49 /* BarBarToken */ && (isContextSensitive(node.left) || isContextSensitive(node.right)); - case 204 /* PropertyAssignment */: + case 163: + return node.operator === 49 && (isContextSensitive(node.left) || isContextSensitive(node.right)); + case 204: return isContextSensitive(node.initializer); - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: + case 128: + case 127: return isContextSensitiveFunctionLikeDeclaration(node); - case 155 /* ParenthesizedExpression */: + case 155: return isContextSensitive(node.expression); } return false; @@ -10225,10 +10271,10 @@ var ts; return !node.typeParameters && node.parameters.length && !ts.forEach(node.parameters, function (p) { return p.type; }); } function getTypeWithoutConstructors(type) { - if (type.flags & 48128 /* ObjectType */) { + if (type.flags & 48128) { var resolved = resolveObjectOrUnionTypeMembers(type); if (resolved.constructSignatures.length) { - var result = createObjectType(32768 /* Anonymous */, type.symbol); + var result = createObjectType(32768, type.symbol); result.members = resolved.members; result.properties = resolved.properties; result.callSignatures = resolved.callSignatures; @@ -10245,7 +10291,7 @@ var ts; return checkTypeRelatedTo(source, target, identityRelation, undefined); } function compareTypes(source, target) { - return checkTypeRelatedTo(source, target, identityRelation, undefined) ? -1 /* True */ : 0 /* False */; + return checkTypeRelatedTo(source, target, identityRelation, undefined) ? -1 : 0; } function isTypeSubtypeOf(source, target) { return checkTypeSubtypeOf(source, target, undefined); @@ -10285,9 +10331,9 @@ var ts; if (containingMessageChain) { errorInfo = ts.concatenateDiagnosticMessageChains(containingMessageChain, errorInfo); } - addDiagnostic(ts.createDiagnosticForNodeFromMessageChain(errorNode, errorInfo, host.getCompilerHost().getNewLine())); + diagnostics.add(ts.createDiagnosticForNodeFromMessageChain(errorNode, errorInfo)); } - return result !== 0 /* False */; + return result !== 0; function reportError(message, arg0, arg1, arg2) { errorInfo = ts.chainDiagnosticMessages(errorInfo, message, arg0, arg1, arg2); } @@ -10295,35 +10341,35 @@ var ts; if (elaborateErrors === void 0) { elaborateErrors = false; } var result; if (source === target) - return -1 /* True */; + return -1; if (relation !== identityRelation) { - if (target.flags & 1 /* Any */) - return -1 /* True */; + if (target.flags & 1) + return -1; if (source === undefinedType) - return -1 /* True */; + return -1; if (source === nullType && target !== undefinedType) - return -1 /* True */; - if (source.flags & 128 /* Enum */ && target === numberType) - return -1 /* True */; - if (source.flags & 256 /* StringLiteral */ && target === stringType) - return -1 /* True */; + return -1; + if (source.flags & 128 && target === numberType) + return -1; + if (source.flags & 256 && target === stringType) + return -1; if (relation === assignableRelation) { - if (source.flags & 1 /* Any */) - return -1 /* True */; - if (source === numberType && target.flags & 128 /* Enum */) - return -1 /* True */; + if (source.flags & 1) + return -1; + if (source === numberType && target.flags & 128) + return -1; } } - if (source.flags & 16384 /* Union */ || target.flags & 16384 /* Union */) { + if (source.flags & 16384 || target.flags & 16384) { if (relation === identityRelation) { - if (source.flags & 16384 /* Union */ && target.flags & 16384 /* Union */) { + if (source.flags & 16384 && target.flags & 16384) { if (result = unionTypeRelatedToUnionType(source, target)) { if (result &= unionTypeRelatedToUnionType(target, source)) { return result; } } } - else if (source.flags & 16384 /* Union */) { + else if (source.flags & 16384) { if (result = unionTypeRelatedToType(source, target, reportErrors)) { return result; } @@ -10335,7 +10381,7 @@ var ts; } } else { - if (source.flags & 16384 /* Union */) { + if (source.flags & 16384) { if (result = unionTypeRelatedToType(source, target, reportErrors)) { return result; } @@ -10347,38 +10393,44 @@ var ts; } } } - else if (source.flags & 512 /* TypeParameter */ && target.flags & 512 /* TypeParameter */) { + else if (source.flags & 512 && target.flags & 512) { if (result = typeParameterRelatedTo(source, target, reportErrors)) { return result; } } else { var saveErrorInfo = errorInfo; - if (source.flags & 4096 /* Reference */ && target.flags & 4096 /* Reference */ && source.target === target.target) { + if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { if (result = typesRelatedTo(source.typeArguments, target.typeArguments, reportErrors)) { return result; } } var reportStructuralErrors = reportErrors && errorInfo === saveErrorInfo; var sourceOrApparentType = relation === identityRelation ? source : getApparentType(source); - if (sourceOrApparentType.flags & 48128 /* ObjectType */ && target.flags & 48128 /* ObjectType */ && (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { + if (sourceOrApparentType.flags & 48128 && target.flags & 48128 && (result = objectTypeRelatedTo(sourceOrApparentType, target, reportStructuralErrors, elaborateErrors))) { errorInfo = saveErrorInfo; return result; } } if (reportErrors) { headMessage = headMessage || ts.Diagnostics.Type_0_is_not_assignable_to_type_1; - reportError(headMessage, typeToString(source), typeToString(target)); + var sourceType = typeToString(source); + var targetType = typeToString(target); + if (sourceType === targetType) { + sourceType = typeToString(source, undefined, 128); + targetType = typeToString(target, undefined, 128); + } + reportError(headMessage, sourceType, targetType); } - return 0 /* False */; + return 0; } function unionTypeRelatedToUnionType(source, target) { - var result = -1 /* True */; + var result = -1; var sourceTypes = source.types; for (var i = 0, len = sourceTypes.length; i < len; i++) { var related = typeRelatedToUnionType(sourceTypes[i], target, false); if (!related) { - return 0 /* False */; + return 0; } result &= related; } @@ -10392,26 +10444,26 @@ var ts; return related; } } - return 0 /* False */; + return 0; } function unionTypeRelatedToType(source, target, reportErrors) { - var result = -1 /* True */; + var result = -1; var sourceTypes = source.types; for (var i = 0, len = sourceTypes.length; i < len; i++) { var related = isRelatedTo(sourceTypes[i], target, reportErrors); if (!related) { - return 0 /* False */; + return 0; } result &= related; } return result; } function typesRelatedTo(sources, targets, reportErrors) { - var result = -1 /* True */; + var result = -1; for (var i = 0, len = sources.length; i < len; i++) { var related = isRelatedTo(sources[i], targets[i], reportErrors); if (!related) { - return 0 /* False */; + return 0; } result &= related; } @@ -10420,13 +10472,13 @@ var ts; function typeParameterRelatedTo(source, target, reportErrors) { if (relation === identityRelation) { if (source.symbol.name !== target.symbol.name) { - return 0 /* False */; + return 0; } if (source.constraint === target.constraint) { - return -1 /* True */; + return -1; } if (source.constraint === noConstraintType || target.constraint === noConstraintType) { - return 0 /* False */; + return 0; } return isRelatedTo(source.constraint, target.constraint, reportErrors); } @@ -10434,35 +10486,35 @@ var ts; while (true) { var constraint = getConstraintOfTypeParameter(source); if (constraint === target) - return -1 /* True */; - if (!(constraint && constraint.flags & 512 /* TypeParameter */)) + return -1; + if (!(constraint && constraint.flags & 512)) break; source = constraint; } - return 0 /* False */; + return 0; } } function objectTypeRelatedTo(source, target, reportErrors, elaborateErrors) { if (elaborateErrors === void 0) { elaborateErrors = false; } if (overflow) { - return 0 /* False */; + return 0; } var id = relation !== identityRelation || source.id < target.id ? source.id + "," + target.id : target.id + "," + source.id; var related = relation[id]; if (related !== undefined) { - if (!elaborateErrors || (related === 3 /* FailedAndReported */)) { - return related === 1 /* Succeeded */ ? -1 /* True */ : 0 /* False */; + if (!elaborateErrors || (related === 3)) { + return related === 1 ? -1 : 0; } } if (depth > 0) { for (var i = 0; i < depth; i++) { if (maybeStack[i][id]) { - return 1 /* Maybe */; + return 1; } } if (depth === 100) { overflow = true; - return 0 /* False */; + return 0; } } else { @@ -10474,7 +10526,7 @@ var ts; sourceStack[depth] = source; targetStack[depth] = target; maybeStack[depth] = {}; - maybeStack[depth][id] = 1 /* Succeeded */; + maybeStack[depth][id] = 1; depth++; var saveExpandingFlags = expandingFlags; if (!(expandingFlags & 1) && isDeeplyNestedGeneric(source, sourceStack)) @@ -10482,14 +10534,14 @@ var ts; if (!(expandingFlags & 2) && isDeeplyNestedGeneric(target, targetStack)) expandingFlags |= 2; if (expandingFlags === 3) { - var result = 1 /* Maybe */; + var result = 1; } else { var result = propertiesRelatedTo(source, target, reportErrors); if (result) { - result &= signaturesRelatedTo(source, target, 0 /* Call */, reportErrors); + result &= signaturesRelatedTo(source, target, 0, reportErrors); if (result) { - result &= signaturesRelatedTo(source, target, 1 /* Construct */, reportErrors); + result &= signaturesRelatedTo(source, target, 1, reportErrors); if (result) { result &= stringIndexTypesRelatedTo(source, target, reportErrors); if (result) { @@ -10503,21 +10555,21 @@ var ts; depth--; if (result) { var maybeCache = maybeStack[depth]; - var destinationCache = (result === -1 /* True */ || depth === 0) ? relation : maybeStack[depth - 1]; + var destinationCache = (result === -1 || depth === 0) ? relation : maybeStack[depth - 1]; ts.copyMap(maybeCache, destinationCache); } else { - relation[id] = reportErrors ? 3 /* FailedAndReported */ : 2 /* Failed */; + relation[id] = reportErrors ? 3 : 2; } return result; } function isDeeplyNestedGeneric(type, stack) { - if (type.flags & 4096 /* Reference */ && depth >= 10) { + if (type.flags & 4096 && depth >= 10) { var target = type.target; var count = 0; for (var i = 0; i < depth; i++) { var t = stack[i]; - if (t.flags & 4096 /* Reference */ && t.target === target) { + if (t.flags & 4096 && t.target === target) { count++; if (count >= 10) return true; @@ -10530,67 +10582,67 @@ var ts; if (relation === identityRelation) { return propertiesIdenticalTo(source, target); } - var result = -1 /* True */; + var result = -1; var properties = getPropertiesOfObjectType(target); - var requireOptionalProperties = relation === subtypeRelation && !(source.flags & 131072 /* ObjectLiteral */); + var requireOptionalProperties = relation === subtypeRelation && !(source.flags & 131072); for (var i = 0; i < properties.length; i++) { var targetProp = properties[i]; var sourceProp = getPropertyOfType(source, targetProp.name); if (sourceProp !== targetProp) { if (!sourceProp) { - if (!(targetProp.flags & 536870912 /* Optional */) || requireOptionalProperties) { + if (!(targetProp.flags & 536870912) || requireOptionalProperties) { if (reportErrors) { reportError(ts.Diagnostics.Property_0_is_missing_in_type_1, symbolToString(targetProp), typeToString(source)); } - return 0 /* False */; + return 0; } } - else if (!(targetProp.flags & 134217728 /* Prototype */)) { + else if (!(targetProp.flags & 134217728)) { var sourceFlags = getDeclarationFlagsFromSymbol(sourceProp); var targetFlags = getDeclarationFlagsFromSymbol(targetProp); - if (sourceFlags & 32 /* Private */ || targetFlags & 32 /* Private */) { + if (sourceFlags & 32 || targetFlags & 32) { if (sourceProp.valueDeclaration !== targetProp.valueDeclaration) { if (reportErrors) { - if (sourceFlags & 32 /* Private */ && targetFlags & 32 /* Private */) { + if (sourceFlags & 32 && targetFlags & 32) { reportError(ts.Diagnostics.Types_have_separate_declarations_of_a_private_property_0, symbolToString(targetProp)); } else { - reportError(ts.Diagnostics.Property_0_is_private_in_type_1_but_not_in_type_2, symbolToString(targetProp), typeToString(sourceFlags & 32 /* Private */ ? source : target), typeToString(sourceFlags & 32 /* Private */ ? target : source)); + reportError(ts.Diagnostics.Property_0_is_private_in_type_1_but_not_in_type_2, symbolToString(targetProp), typeToString(sourceFlags & 32 ? source : target), typeToString(sourceFlags & 32 ? target : source)); } } - return 0 /* False */; + return 0; } } - else if (targetFlags & 64 /* Protected */) { - var sourceDeclaredInClass = sourceProp.parent && sourceProp.parent.flags & 32 /* Class */; + else if (targetFlags & 64) { + var sourceDeclaredInClass = sourceProp.parent && sourceProp.parent.flags & 32; var sourceClass = sourceDeclaredInClass ? getDeclaredTypeOfSymbol(sourceProp.parent) : undefined; var targetClass = getDeclaredTypeOfSymbol(targetProp.parent); if (!sourceClass || !hasBaseType(sourceClass, targetClass)) { if (reportErrors) { reportError(ts.Diagnostics.Property_0_is_protected_but_type_1_is_not_a_class_derived_from_2, symbolToString(targetProp), typeToString(sourceClass || source), typeToString(targetClass)); } - return 0 /* False */; + return 0; } } - else if (sourceFlags & 64 /* Protected */) { + else if (sourceFlags & 64) { if (reportErrors) { reportError(ts.Diagnostics.Property_0_is_protected_in_type_1_but_public_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target)); } - return 0 /* False */; + return 0; } var related = isRelatedTo(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp), reportErrors); if (!related) { if (reportErrors) { reportError(ts.Diagnostics.Types_of_property_0_are_incompatible, symbolToString(targetProp)); } - return 0 /* False */; + return 0; } result &= related; - if (sourceProp.flags & 536870912 /* Optional */ && !(targetProp.flags & 536870912 /* Optional */)) { + if (sourceProp.flags & 536870912 && !(targetProp.flags & 536870912)) { if (reportErrors) { reportError(ts.Diagnostics.Property_0_is_optional_in_type_1_but_required_in_type_2, symbolToString(targetProp), typeToString(source), typeToString(target)); } - return 0 /* False */; + return 0; } } } @@ -10601,18 +10653,18 @@ var ts; var sourceProperties = getPropertiesOfObjectType(source); var targetProperties = getPropertiesOfObjectType(target); if (sourceProperties.length !== targetProperties.length) { - return 0 /* False */; + return 0; } - var result = -1 /* True */; + var result = -1; for (var i = 0, len = sourceProperties.length; i < len; ++i) { var sourceProp = sourceProperties[i]; var targetProp = getPropertyOfObjectType(target, sourceProp.name); if (!targetProp) { - return 0 /* False */; + return 0; } var related = compareProperties(sourceProp, targetProp, isRelatedTo); if (!related) { - return 0 /* False */; + return 0; } result &= related; } @@ -10623,19 +10675,19 @@ var ts; return signaturesIdenticalTo(source, target, kind); } if (target === anyFunctionType || source === anyFunctionType) { - return -1 /* True */; + return -1; } var sourceSignatures = getSignaturesOfType(source, kind); var targetSignatures = getSignaturesOfType(target, kind); - var result = -1 /* True */; + var result = -1; var saveErrorInfo = errorInfo; outer: for (var i = 0; i < targetSignatures.length; i++) { var t = targetSignatures[i]; - if (!t.hasStringLiterals || target.flags & 65536 /* FromSignature */) { + if (!t.hasStringLiterals || target.flags & 65536) { var localErrors = reportErrors; for (var j = 0; j < sourceSignatures.length; j++) { var s = sourceSignatures[j]; - if (!s.hasStringLiterals || source.flags & 65536 /* FromSignature */) { + if (!s.hasStringLiterals || source.flags & 65536) { var related = signatureRelatedTo(s, t, localErrors); if (related) { result &= related; @@ -10645,17 +10697,17 @@ var ts; localErrors = false; } } - return 0 /* False */; + return 0; } } return result; } function signatureRelatedTo(source, target, reportErrors) { if (source === target) { - return -1 /* True */; + return -1; } if (!target.hasRestParameter && source.minArgumentCount > target.parameters.length) { - return 0 /* False */; + return 0; } var sourceMax = source.parameters.length; var targetMax = target.parameters.length; @@ -10678,7 +10730,7 @@ var ts; } source = getErasedSignature(source); target = getErasedSignature(target); - var result = -1 /* True */; + var result = -1; for (var i = 0; i < checkCount; i++) { var s = i < sourceMax ? getTypeOfSymbol(source.parameters[i]) : getRestTypeOfSignature(source); var t = i < targetMax ? getTypeOfSymbol(target.parameters[i]) : getRestTypeOfSignature(target); @@ -10690,7 +10742,7 @@ var ts; if (reportErrors) { reportError(ts.Diagnostics.Types_of_parameters_0_and_1_are_incompatible, source.parameters[i < sourceMax ? i : sourceMax].name, target.parameters[i < targetMax ? i : targetMax].name); } - return 0 /* False */; + return 0; } errorInfo = saveErrorInfo; } @@ -10706,13 +10758,13 @@ var ts; var sourceSignatures = getSignaturesOfType(source, kind); var targetSignatures = getSignaturesOfType(target, kind); if (sourceSignatures.length !== targetSignatures.length) { - return 0 /* False */; + return 0; } - var result = -1 /* True */; + var result = -1; for (var i = 0, len = sourceSignatures.length; i < len; ++i) { var related = compareSignatures(sourceSignatures[i], targetSignatures[i], true, isRelatedTo); if (!related) { - return 0 /* False */; + return 0; } result &= related; } @@ -10720,41 +10772,41 @@ var ts; } function stringIndexTypesRelatedTo(source, target, reportErrors) { if (relation === identityRelation) { - return indexTypesIdenticalTo(0 /* String */, source, target); + return indexTypesIdenticalTo(0, source, target); } - var targetType = getIndexTypeOfType(target, 0 /* String */); + var targetType = getIndexTypeOfType(target, 0); if (targetType) { - var sourceType = getIndexTypeOfType(source, 0 /* String */); + var sourceType = getIndexTypeOfType(source, 0); if (!sourceType) { if (reportErrors) { reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); } - return 0 /* False */; + return 0; } var related = isRelatedTo(sourceType, targetType, reportErrors); if (!related) { if (reportErrors) { reportError(ts.Diagnostics.Index_signatures_are_incompatible); } - return 0 /* False */; + return 0; } return related; } - return -1 /* True */; + return -1; } function numberIndexTypesRelatedTo(source, target, reportErrors) { if (relation === identityRelation) { - return indexTypesIdenticalTo(1 /* Number */, source, target); + return indexTypesIdenticalTo(1, source, target); } - var targetType = getIndexTypeOfType(target, 1 /* Number */); + var targetType = getIndexTypeOfType(target, 1); if (targetType) { - var sourceStringType = getIndexTypeOfType(source, 0 /* String */); - var sourceNumberType = getIndexTypeOfType(source, 1 /* Number */); + var sourceStringType = getIndexTypeOfType(source, 0); + var sourceNumberType = getIndexTypeOfType(source, 1); if (!(sourceStringType || sourceNumberType)) { if (reportErrors) { reportError(ts.Diagnostics.Index_signature_is_missing_in_type_0, typeToString(source)); } - return 0 /* False */; + return 0; } if (sourceStringType && sourceNumberType) { var related = isRelatedTo(sourceStringType, targetType, false) || isRelatedTo(sourceNumberType, targetType, reportErrors); @@ -10766,70 +10818,70 @@ var ts; if (reportErrors) { reportError(ts.Diagnostics.Index_signatures_are_incompatible); } - return 0 /* False */; + return 0; } return related; } - return -1 /* True */; + return -1; } function indexTypesIdenticalTo(indexKind, source, target) { var targetType = getIndexTypeOfType(target, indexKind); var sourceType = getIndexTypeOfType(source, indexKind); if (!sourceType && !targetType) { - return -1 /* True */; + return -1; } if (sourceType && targetType) { return isRelatedTo(sourceType, targetType); } - return 0 /* False */; + return 0; } } function isPropertyIdenticalTo(sourceProp, targetProp) { - return compareProperties(sourceProp, targetProp, compareTypes) !== 0 /* False */; + return compareProperties(sourceProp, targetProp, compareTypes) !== 0; } function compareProperties(sourceProp, targetProp, compareTypes) { if (sourceProp === targetProp) { - return -1 /* True */; + return -1; } - var sourcePropAccessibility = getDeclarationFlagsFromSymbol(sourceProp) & (32 /* Private */ | 64 /* Protected */); - var targetPropAccessibility = getDeclarationFlagsFromSymbol(targetProp) & (32 /* Private */ | 64 /* Protected */); + var sourcePropAccessibility = getDeclarationFlagsFromSymbol(sourceProp) & (32 | 64); + var targetPropAccessibility = getDeclarationFlagsFromSymbol(targetProp) & (32 | 64); if (sourcePropAccessibility !== targetPropAccessibility) { - return 0 /* False */; + return 0; } if (sourcePropAccessibility) { if (getTargetSymbol(sourceProp) !== getTargetSymbol(targetProp)) { - return 0 /* False */; + return 0; } } else { - if ((sourceProp.flags & 536870912 /* Optional */) !== (targetProp.flags & 536870912 /* Optional */)) { - return 0 /* False */; + if ((sourceProp.flags & 536870912) !== (targetProp.flags & 536870912)) { + return 0; } } return compareTypes(getTypeOfSymbol(sourceProp), getTypeOfSymbol(targetProp)); } function compareSignatures(source, target, compareReturnTypes, compareTypes) { if (source === target) { - return -1 /* True */; + return -1; } if (source.parameters.length !== target.parameters.length || source.minArgumentCount !== target.minArgumentCount || source.hasRestParameter !== target.hasRestParameter) { - return 0 /* False */; + return 0; } - var result = -1 /* True */; + var result = -1; if (source.typeParameters && target.typeParameters) { if (source.typeParameters.length !== target.typeParameters.length) { - return 0 /* False */; + return 0; } for (var i = 0, len = source.typeParameters.length; i < len; ++i) { var related = compareTypes(source.typeParameters[i], target.typeParameters[i]); if (!related) { - return 0 /* False */; + return 0; } result &= related; } } else if (source.typeParameters || target.typeParameters) { - return 0 /* False */; + return 0; } source = getErasedSignature(source); target = getErasedSignature(target); @@ -10838,7 +10890,7 @@ var ts; var t = target.hasRestParameter && i === len - 1 ? getRestTypeOfSignature(target) : getTypeOfSymbol(target.parameters[i]); var related = compareTypes(s, t); if (!related) { - return 0 /* False */; + return 0; } result &= related; } @@ -10884,7 +10936,7 @@ var ts; checkTypeSubtypeOf(bestSupertypeDownfallType, bestSupertype, errorLocation, ts.Diagnostics.Type_argument_candidate_1_is_not_a_valid_type_argument_because_it_is_not_a_supertype_of_candidate_0, errorMessageChainHead); } function isArrayType(type) { - return type.flags & 4096 /* Reference */ && type.target === globalArrayType; + return type.flags & 4096 && type.target === globalArrayType; } function isTupleLikeType(type) { return !!getPropertyOfType(type, "0"); @@ -10896,7 +10948,7 @@ var ts; var propType = getTypeOfSymbol(p); var widenedType = getWidenedType(propType); if (propType !== widenedType) { - var symbol = createSymbol(p.flags | 67108864 /* Transient */, p.name); + var symbol = createSymbol(p.flags | 67108864, p.name); symbol.declarations = p.declarations; symbol.parent = p.parent; symbol.type = widenedType; @@ -10907,8 +10959,8 @@ var ts; } members[p.name] = p; }); - var stringIndexType = getIndexTypeOfType(type, 0 /* String */); - var numberIndexType = getIndexTypeOfType(type, 1 /* Number */); + var stringIndexType = getIndexTypeOfType(type, 0); + var numberIndexType = getIndexTypeOfType(type, 1); if (stringIndexType) stringIndexType = getWidenedType(stringIndexType); if (numberIndexType) @@ -10916,14 +10968,14 @@ var ts; return createAnonymousType(type.symbol, members, emptyArray, emptyArray, stringIndexType, numberIndexType); } function getWidenedType(type) { - if (type.flags & 786432 /* RequiresWidening */) { - if (type.flags & (32 /* Undefined */ | 64 /* Null */)) { + if (type.flags & 786432) { + if (type.flags & (32 | 64)) { return anyType; } - if (type.flags & 131072 /* ObjectLiteral */) { + if (type.flags & 131072) { return getWidenedTypeOfObjectLiteral(type); } - if (type.flags & 16384 /* Union */) { + if (type.flags & 16384) { return getUnionType(ts.map(type.types, getWidenedType)); } if (isArrayType(type)) { @@ -10933,7 +10985,7 @@ var ts; return type; } function reportWideningErrorsInType(type) { - if (type.flags & 16384 /* Union */) { + if (type.flags & 16384) { var errorReported = false; ts.forEach(type.types, function (t) { if (reportWideningErrorsInType(t)) { @@ -10945,11 +10997,11 @@ var ts; if (isArrayType(type)) { return reportWideningErrorsInType(type.typeArguments[0]); } - if (type.flags & 131072 /* ObjectLiteral */) { + if (type.flags & 131072) { var errorReported = false; ts.forEach(getPropertiesOfObjectType(type), function (p) { var t = getTypeOfSymbol(p); - if (t.flags & 262144 /* ContainsUndefinedOrNull */) { + if (t.flags & 262144) { if (!reportWideningErrorsInType(t)) { error(p.valueDeclaration, ts.Diagnostics.Object_literal_s_property_0_implicitly_has_an_1_type, p.name, typeToString(getWidenedType(t))); } @@ -10963,20 +11015,20 @@ var ts; function reportImplicitAnyError(declaration, type) { var typeAsString = typeToString(getWidenedType(type)); switch (declaration.kind) { - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: + case 126: + case 125: var diagnostic = ts.Diagnostics.Member_0_implicitly_has_an_1_type; break; - case 124 /* Parameter */: + case 124: var diagnostic = declaration.dotDotDotToken ? ts.Diagnostics.Rest_parameter_0_implicitly_has_an_any_type : ts.Diagnostics.Parameter_0_implicitly_has_an_1_type; break; - case 190 /* FunctionDeclaration */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: + case 190: + case 128: + case 127: + case 130: + case 131: + case 156: + case 157: if (!declaration.name) { error(declaration, ts.Diagnostics.Function_expression_which_lacks_return_type_annotation_implicitly_has_an_0_return_type, typeAsString); return; @@ -10989,7 +11041,7 @@ var ts; error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString); } function reportErrorsFromWidening(declaration, type) { - if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & 262144 /* ContainsUndefinedOrNull */) { + if (produceDiagnostics && compilerOptions.noImplicitAny && type.flags & 262144) { if (!reportWideningErrorsInType(type)) { reportImplicitAnyError(declaration, type); } @@ -11053,7 +11105,7 @@ var ts; var count = 0; for (var i = 0; i < depth; i++) { var t = stack[i]; - if (t.flags & 4096 /* Reference */ && t.target === target) + if (t.flags & 4096 && t.target === target) count++; } return count < 5; @@ -11061,7 +11113,10 @@ var ts; return true; } function inferFromTypes(source, target) { - if (target.flags & 512 /* TypeParameter */) { + if (source === anyFunctionType) { + return; + } + if (target.flags & 512) { var typeParameters = context.typeParameters; for (var i = 0; i < typeParameters.length; i++) { if (target === typeParameters[i]) { @@ -11073,20 +11128,20 @@ var ts; } } } - else if (source.flags & 4096 /* Reference */ && target.flags & 4096 /* Reference */ && source.target === target.target) { + else if (source.flags & 4096 && target.flags & 4096 && source.target === target.target) { var sourceTypes = source.typeArguments; var targetTypes = target.typeArguments; for (var i = 0; i < sourceTypes.length; i++) { inferFromTypes(sourceTypes[i], targetTypes[i]); } } - else if (target.flags & 16384 /* Union */) { + else if (target.flags & 16384) { var targetTypes = target.types; var typeParameterCount = 0; var typeParameter; for (var i = 0; i < targetTypes.length; i++) { var t = targetTypes[i]; - if (t.flags & 512 /* TypeParameter */ && ts.contains(context.typeParameters, t)) { + if (t.flags & 512 && ts.contains(context.typeParameters, t)) { typeParameter = t; typeParameterCount++; } @@ -11100,13 +11155,13 @@ var ts; inferiority--; } } - else if (source.flags & 16384 /* Union */) { + else if (source.flags & 16384) { var sourceTypes = source.types; for (var i = 0; i < sourceTypes.length; i++) { inferFromTypes(sourceTypes[i], target); } } - else if (source.flags & 48128 /* ObjectType */ && (target.flags & (4096 /* Reference */ | 8192 /* Tuple */) || (target.flags & 32768 /* Anonymous */) && target.symbol && target.symbol.flags & (8192 /* Method */ | 2048 /* TypeLiteral */))) { + else if (source.flags & 48128 && (target.flags & (4096 | 8192) || (target.flags & 32768) && target.symbol && target.symbol.flags & (8192 | 2048))) { if (!isInProcess(source, target) && isWithinDepthLimit(source, sourceStack) && isWithinDepthLimit(target, targetStack)) { if (depth === 0) { sourceStack = []; @@ -11116,11 +11171,11 @@ var ts; targetStack[depth] = target; depth++; inferFromProperties(source, target); - inferFromSignatures(source, target, 0 /* Call */); - inferFromSignatures(source, target, 1 /* Construct */); - inferFromIndexTypes(source, target, 0 /* String */, 0 /* String */); - inferFromIndexTypes(source, target, 1 /* Number */, 1 /* Number */); - inferFromIndexTypes(source, target, 0 /* String */, 1 /* Number */); + inferFromSignatures(source, target, 0); + inferFromSignatures(source, target, 1); + inferFromIndexTypes(source, target, 0, 0); + inferFromIndexTypes(source, target, 1, 1); + inferFromIndexTypes(source, target, 0, 1); depth--; } } @@ -11194,17 +11249,17 @@ var ts; function getResolvedSymbol(node) { var links = getNodeLinks(node); if (!links.resolvedSymbol) { - links.resolvedSymbol = (ts.getFullWidth(node) > 0 && resolveName(node, node.text, 107455 /* Value */ | 1048576 /* ExportValue */, ts.Diagnostics.Cannot_find_name_0, node)) || unknownSymbol; + links.resolvedSymbol = (ts.getFullWidth(node) > 0 && resolveName(node, node.text, 107455 | 1048576, ts.Diagnostics.Cannot_find_name_0, node)) || unknownSymbol; } return links.resolvedSymbol; } function isInTypeQuery(node) { while (node) { switch (node.kind) { - case 138 /* TypeQuery */: + case 138: return true; - case 64 /* Identifier */: - case 121 /* QualifiedName */: + case 64: + case 121: node = node.parent; continue; default: @@ -11214,7 +11269,7 @@ var ts; ts.Debug.fail("should not get here"); } function removeTypesFromUnionType(type, typeKind, isOfTypeKind) { - if (type.flags & 16384 /* Union */) { + if (type.flags & 16384) { var types = type.types; if (ts.forEach(types, function (t) { return !!(t.flags & typeKind) === isOfTypeKind; })) { var narrowedType = getUnionType(ts.filter(types, function (t) { return !(t.flags & typeKind) === isOfTypeKind; })); @@ -11241,12 +11296,12 @@ var ts; } return links.assignmentChecks[symbol.id] = isAssignedIn(node); function isAssignedInBinaryExpression(node) { - if (node.operator >= 52 /* FirstAssignment */ && node.operator <= 63 /* LastAssignment */) { + if (node.operator >= 52 && node.operator <= 63) { var n = node.left; - while (n.kind === 155 /* ParenthesizedExpression */) { + while (n.kind === 155) { n = n.expression; } - if (n.kind === 64 /* Identifier */ && getResolvedSymbol(n) === symbol) { + if (n.kind === 64 && getResolvedSymbol(n) === symbol) { return true; } } @@ -11260,45 +11315,45 @@ var ts; } function isAssignedIn(node) { switch (node.kind) { - case 163 /* BinaryExpression */: + case 163: return isAssignedInBinaryExpression(node); - case 188 /* VariableDeclaration */: - case 146 /* BindingElement */: + case 188: + case 146: return isAssignedInVariableDeclaration(node); - case 144 /* ObjectBindingPattern */: - case 145 /* ArrayBindingPattern */: - case 147 /* ArrayLiteralExpression */: - case 148 /* ObjectLiteralExpression */: - case 149 /* PropertyAccessExpression */: - case 150 /* ElementAccessExpression */: - case 151 /* CallExpression */: - case 152 /* NewExpression */: - case 154 /* TypeAssertionExpression */: - case 155 /* ParenthesizedExpression */: - case 161 /* PrefixUnaryExpression */: - case 158 /* DeleteExpression */: - case 159 /* TypeOfExpression */: - case 160 /* VoidExpression */: - case 162 /* PostfixUnaryExpression */: - case 164 /* ConditionalExpression */: - case 167 /* SpreadElementExpression */: - case 170 /* Block */: - case 171 /* VariableStatement */: - case 173 /* ExpressionStatement */: - case 174 /* IfStatement */: - case 175 /* DoStatement */: - case 176 /* WhileStatement */: - case 177 /* ForStatement */: - case 178 /* ForInStatement */: - case 181 /* ReturnStatement */: - case 182 /* WithStatement */: - case 183 /* SwitchStatement */: - case 200 /* CaseClause */: - case 201 /* DefaultClause */: - case 184 /* LabeledStatement */: - case 185 /* ThrowStatement */: - case 186 /* TryStatement */: - case 203 /* CatchClause */: + case 144: + case 145: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 154: + case 155: + case 161: + case 158: + case 159: + case 160: + case 162: + case 164: + case 167: + case 170: + case 171: + case 173: + case 174: + case 175: + case 176: + case 177: + case 178: + case 181: + case 182: + case 183: + case 200: + case 201: + case 184: + case 185: + case 186: + case 203: return ts.forEachChild(node, isAssignedIn); } return false; @@ -11329,40 +11384,40 @@ var ts; } function getNarrowedTypeOfSymbol(symbol, node) { var type = getTypeOfSymbol(symbol); - if (node && symbol.flags & 3 /* Variable */ && type.flags & (1 /* Any */ | 48128 /* ObjectType */ | 16384 /* Union */ | 512 /* TypeParameter */)) { + if (node && symbol.flags & 3 && type.flags & (1 | 48128 | 16384 | 512)) { loop: while (node.parent) { var child = node; node = node.parent; var narrowedType = type; switch (node.kind) { - case 174 /* IfStatement */: + case 174: if (child !== node.expression) { narrowedType = narrowType(type, node.expression, child === node.thenStatement); } break; - case 164 /* ConditionalExpression */: + case 164: if (child !== node.condition) { narrowedType = narrowType(type, node.condition, child === node.whenTrue); } break; - case 163 /* BinaryExpression */: + case 163: if (child === node.right) { - if (node.operator === 48 /* AmpersandAmpersandToken */) { + if (node.operator === 48) { narrowedType = narrowType(type, node.left, true); } - else if (node.operator === 49 /* BarBarToken */) { + else if (node.operator === 49) { narrowedType = narrowType(type, node.left, false); } } break; - case 207 /* SourceFile */: - case 195 /* ModuleDeclaration */: - case 190 /* FunctionDeclaration */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 129 /* Constructor */: + case 207: + case 195: + case 190: + case 128: + case 127: + case 130: + case 131: + case 129: break loop; } if (narrowedType !== type) { @@ -11375,21 +11430,21 @@ var ts; } return type; function narrowTypeByEquality(type, expr, assumeTrue) { - if (expr.left.kind !== 159 /* TypeOfExpression */ || expr.right.kind !== 8 /* StringLiteral */) { + if (expr.left.kind !== 159 || expr.right.kind !== 8) { return type; } var left = expr.left; var right = expr.right; - if (left.expression.kind !== 64 /* Identifier */ || getResolvedSymbol(left.expression) !== symbol) { + if (left.expression.kind !== 64 || getResolvedSymbol(left.expression) !== symbol) { return type; } var typeInfo = primitiveTypeInfo[right.text]; - if (expr.operator === 31 /* ExclamationEqualsEqualsToken */) { + if (expr.operator === 31) { assumeTrue = !assumeTrue; } if (assumeTrue) { if (!typeInfo) { - return removeTypesFromUnionType(type, 258 /* StringLike */ | 132 /* NumberLike */ | 8 /* Boolean */, true); + return removeTypesFromUnionType(type, 258 | 132 | 8, true); } if (isTypeSubtypeOf(typeInfo.type, type)) { return typeInfo.type; @@ -11426,7 +11481,7 @@ var ts; } } function narrowTypeByInstanceof(type, expr, assumeTrue) { - if (type.flags & 1 /* Any */ || !assumeTrue || expr.left.kind !== 64 /* Identifier */ || getResolvedSymbol(expr.left) !== symbol) { + if (type.flags & 1 || !assumeTrue || expr.left.kind !== 64 || getResolvedSymbol(expr.left) !== symbol) { return type; } var rightType = checkExpression(expr.right); @@ -11441,32 +11496,32 @@ var ts; if (isTypeSubtypeOf(targetType, type)) { return targetType; } - if (type.flags & 16384 /* Union */) { + if (type.flags & 16384) { return getUnionType(ts.filter(type.types, function (t) { return isTypeSubtypeOf(t, targetType); })); } return type; } function narrowType(type, expr, assumeTrue) { switch (expr.kind) { - case 155 /* ParenthesizedExpression */: + case 155: return narrowType(type, expr.expression, assumeTrue); - case 163 /* BinaryExpression */: + case 163: var operator = expr.operator; - if (operator === 30 /* EqualsEqualsEqualsToken */ || operator === 31 /* ExclamationEqualsEqualsToken */) { + if (operator === 30 || operator === 31) { return narrowTypeByEquality(type, expr, assumeTrue); } - else if (operator === 48 /* AmpersandAmpersandToken */) { + else if (operator === 48) { return narrowTypeByAnd(type, expr, assumeTrue); } - else if (operator === 49 /* BarBarToken */) { + else if (operator === 49) { return narrowTypeByOr(type, expr, assumeTrue); } - else if (operator === 86 /* InstanceOfKeyword */) { + else if (operator === 86) { return narrowTypeByInstanceof(type, expr, assumeTrue); } break; - case 161 /* PrefixUnaryExpression */: - if (expr.operator === 46 /* ExclamationToken */) { + case 161: + if (expr.operator === 46) { return narrowType(type, expr.operand, !assumeTrue); } break; @@ -11480,17 +11535,20 @@ var ts; var rightSide = nodeLinks.importOnRightSide; nodeLinks.importOnRightSide = undefined; getSymbolLinks(rightSide).referenced = true; - ts.Debug.assert((rightSide.flags & 8388608 /* Import */) !== 0); - nodeLinks = getNodeLinks(ts.getDeclarationOfKind(rightSide, 197 /* ImportDeclaration */)); + ts.Debug.assert((rightSide.flags & 8388608) !== 0); + nodeLinks = getNodeLinks(ts.getDeclarationOfKind(rightSide, 197)); } } function checkIdentifier(node) { var symbol = getResolvedSymbol(node); - if (symbol.flags & 8388608 /* Import */) { + if (symbol === argumentsSymbol && ts.getContainingFunction(node).kind === 157) { + error(node, ts.Diagnostics.The_arguments_object_cannot_be_referenced_in_an_arrow_function_Consider_using_a_standard_function_expression); + } + if (symbol.flags & 8388608) { var symbolLinks = getSymbolLinks(symbol); if (!symbolLinks.referenced) { var importOrExportAssignment = getLeftSideOfImportOrExportAssignment(node); - if (!importOrExportAssignment || (importOrExportAssignment.flags & 1 /* Export */) || (importOrExportAssignment.kind === 198 /* ExportAssignment */)) { + if (!importOrExportAssignment || (importOrExportAssignment.flags & 1) || (importOrExportAssignment.kind === 198)) { symbolLinks.referenced = !isInTypeQuery(node) && !isConstEnumOrConstEnumOnlyModule(resolveImport(symbol)); } else { @@ -11500,7 +11558,7 @@ var ts; } } if (symbolLinks.referenced) { - markLinkedImportsAsReferenced(ts.getDeclarationOfKind(symbol, 197 /* ImportDeclaration */)); + markLinkedImportsAsReferenced(ts.getDeclarationOfKind(symbol, 197)); } } checkCollisionWithCapturedSuperVariable(node, node); @@ -11508,65 +11566,65 @@ var ts; return getNarrowedTypeOfSymbol(getExportSymbolOfValueSymbolIfExported(symbol), node); } function captureLexicalThis(node, container) { - var classNode = container.parent && container.parent.kind === 191 /* ClassDeclaration */ ? container.parent : undefined; - getNodeLinks(node).flags |= 2 /* LexicalThis */; - if (container.kind === 126 /* PropertyDeclaration */ || container.kind === 129 /* Constructor */) { - getNodeLinks(classNode).flags |= 4 /* CaptureThis */; + var classNode = container.parent && container.parent.kind === 191 ? container.parent : undefined; + getNodeLinks(node).flags |= 2; + if (container.kind === 126 || container.kind === 129) { + getNodeLinks(classNode).flags |= 4; } else { - getNodeLinks(container).flags |= 4 /* CaptureThis */; + getNodeLinks(container).flags |= 4; } } function checkThisExpression(node) { var container = ts.getThisContainer(node, true); var needToCaptureLexicalThis = false; - if (container.kind === 157 /* ArrowFunction */) { + if (container.kind === 157) { container = ts.getThisContainer(container, false); - needToCaptureLexicalThis = true; + needToCaptureLexicalThis = (languageVersion < 2); } switch (container.kind) { - case 195 /* ModuleDeclaration */: + case 195: error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_module_body); break; - case 194 /* EnumDeclaration */: + case 194: error(node, ts.Diagnostics.this_cannot_be_referenced_in_current_location); break; - case 129 /* Constructor */: + case 129: if (isInConstructorArgumentInitializer(node, container)) { error(node, ts.Diagnostics.this_cannot_be_referenced_in_constructor_arguments); } break; - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - if (container.flags & 128 /* Static */) { + case 126: + case 125: + if (container.flags & 128) { error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_static_property_initializer); } break; - case 122 /* ComputedPropertyName */: + case 122: error(node, ts.Diagnostics.this_cannot_be_referenced_in_a_computed_property_name); break; } if (needToCaptureLexicalThis) { captureLexicalThis(node, container); } - var classNode = container.parent && container.parent.kind === 191 /* ClassDeclaration */ ? container.parent : undefined; + var classNode = container.parent && container.parent.kind === 191 ? container.parent : undefined; if (classNode) { var symbol = getSymbolOfNode(classNode); - return container.flags & 128 /* Static */ ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol); + return container.flags & 128 ? getTypeOfSymbol(symbol) : getDeclaredTypeOfSymbol(symbol); } return anyType; } function isInConstructorArgumentInitializer(node, constructorDecl) { for (var n = node; n && n !== constructorDecl; n = n.parent) { - if (n.kind === 124 /* Parameter */) { + if (n.kind === 124) { return true; } } return false; } function checkSuperExpression(node) { - var isCallExpression = node.parent.kind === 151 /* CallExpression */ && node.parent.expression === node; - var enclosingClass = ts.getAncestor(node, 191 /* ClassDeclaration */); + var isCallExpression = node.parent.kind === 151 && node.parent.expression === node; + var enclosingClass = ts.getAncestor(node, 191); var baseClass; if (enclosingClass && ts.getClassBaseTypeNode(enclosingClass)) { var classType = getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClass)); @@ -11580,34 +11638,34 @@ var ts; if (container) { var canUseSuperExpression = false; if (isCallExpression) { - canUseSuperExpression = container.kind === 129 /* Constructor */; + canUseSuperExpression = container.kind === 129; } else { var needToCaptureLexicalThis = false; - while (container && container.kind === 157 /* ArrowFunction */) { + while (container && container.kind === 157) { container = ts.getSuperContainer(container, true); needToCaptureLexicalThis = true; } - if (container && container.parent && container.parent.kind === 191 /* ClassDeclaration */) { - if (container.flags & 128 /* Static */) { - canUseSuperExpression = container.kind === 128 /* MethodDeclaration */ || container.kind === 127 /* MethodSignature */ || container.kind === 130 /* GetAccessor */ || container.kind === 131 /* SetAccessor */; + if (container && container.parent && container.parent.kind === 191) { + if (container.flags & 128) { + canUseSuperExpression = container.kind === 128 || container.kind === 127 || container.kind === 130 || container.kind === 131; } else { - canUseSuperExpression = container.kind === 128 /* MethodDeclaration */ || container.kind === 127 /* MethodSignature */ || container.kind === 130 /* GetAccessor */ || container.kind === 131 /* SetAccessor */ || container.kind === 126 /* PropertyDeclaration */ || container.kind === 125 /* PropertySignature */ || container.kind === 129 /* Constructor */; + canUseSuperExpression = container.kind === 128 || container.kind === 127 || container.kind === 130 || container.kind === 131 || container.kind === 126 || container.kind === 125 || container.kind === 129; } } } if (canUseSuperExpression) { var returnType; - if ((container.flags & 128 /* Static */) || isCallExpression) { - getNodeLinks(node).flags |= 32 /* SuperStatic */; + if ((container.flags & 128) || isCallExpression) { + getNodeLinks(node).flags |= 32; returnType = getTypeOfSymbol(baseClass.symbol); } else { - getNodeLinks(node).flags |= 16 /* SuperInstance */; + getNodeLinks(node).flags |= 16; returnType = baseClass; } - if (container.kind === 129 /* Constructor */ && isInConstructorArgumentInitializer(node, container)) { + if (container.kind === 129 && isInConstructorArgumentInitializer(node, container)) { error(node, ts.Diagnostics.super_cannot_be_referenced_in_constructor_arguments); returnType = unknownType; } @@ -11617,7 +11675,7 @@ var ts; return returnType; } } - if (container.kind === 122 /* ComputedPropertyName */) { + if (container.kind === 122) { error(node, ts.Diagnostics.super_cannot_be_referenced_in_a_computed_property_name); } else if (isCallExpression) { @@ -11654,7 +11712,7 @@ var ts; if (declaration.type) { return getTypeFromTypeNode(declaration.type); } - if (declaration.kind === 124 /* Parameter */) { + if (declaration.kind === 124) { var type = getContextuallyTypedParameterType(declaration); if (type) { return type; @@ -11669,7 +11727,7 @@ var ts; function getContextualTypeForReturnExpression(node) { var func = ts.getContainingFunction(node); if (func) { - if (func.type || func.kind === 129 /* Constructor */ || func.kind === 130 /* GetAccessor */ && getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(func.symbol, 131 /* SetAccessor */))) { + if (func.type || func.kind === 129 || func.kind === 130 && getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(func.symbol, 131))) { return getReturnTypeOfSignature(getSignatureFromDeclaration(func)); } var signature = getContextualSignatureForFunctionLikeDeclaration(func); @@ -11689,7 +11747,7 @@ var ts; return undefined; } function getContextualTypeForSubstitutionExpression(template, substitutionExpression) { - if (template.parent.kind === 153 /* TaggedTemplateExpression */) { + if (template.parent.kind === 153) { return getContextualTypeForArgument(template.parent, substitutionExpression); } return undefined; @@ -11697,12 +11755,12 @@ var ts; function getContextualTypeForBinaryOperand(node) { var binaryExpression = node.parent; var operator = binaryExpression.operator; - if (operator >= 52 /* FirstAssignment */ && operator <= 63 /* LastAssignment */) { + if (operator >= 52 && operator <= 63) { if (node === binaryExpression.right) { return checkExpression(binaryExpression.left); } } - else if (operator === 49 /* BarBarToken */) { + else if (operator === 49) { var type = getContextualType(binaryExpression); if (!type && node === binaryExpression.right) { type = checkExpression(binaryExpression.left); @@ -11712,7 +11770,7 @@ var ts; return undefined; } function applyToContextualType(type, mapper) { - if (!(type.flags & 16384 /* Union */)) { + if (!(type.flags & 16384)) { return mapper(type); } var types = type.types; @@ -11744,10 +11802,10 @@ var ts; return applyToContextualType(type, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }); } function contextualTypeIsTupleLikeType(type) { - return !!(type.flags & 16384 /* Union */ ? ts.forEach(type.types, isTupleLikeType) : isTupleLikeType(type)); + return !!(type.flags & 16384 ? ts.forEach(type.types, isTupleLikeType) : isTupleLikeType(type)); } function contextualTypeHasIndexSignature(type, kind) { - return !!(type.flags & 16384 /* Union */ ? ts.forEach(type.types, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }) : getIndexTypeOfObjectOrUnionType(type, kind)); + return !!(type.flags & 16384 ? ts.forEach(type.types, function (t) { return getIndexTypeOfObjectOrUnionType(t, kind); }) : getIndexTypeOfObjectOrUnionType(type, kind)); } function getContextualTypeForObjectLiteralMethod(node) { ts.Debug.assert(ts.isObjectLiteralMethod(node)); @@ -11767,7 +11825,7 @@ var ts; return propertyType; } } - return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1 /* Number */) || getIndexTypeOfContextualType(type, 0 /* String */); + return isNumericName(element.name) && getIndexTypeOfContextualType(type, 1) || getIndexTypeOfContextualType(type, 0); } return undefined; } @@ -11776,7 +11834,7 @@ var ts; var type = getContextualType(arrayLiteral); if (type) { var index = ts.indexOf(arrayLiteral.elements, node); - return getTypeOfPropertyOfContextualType(type, "" + index) || getIndexTypeOfContextualType(type, 1 /* Number */); + return getTypeOfPropertyOfContextualType(type, "" + index) || getIndexTypeOfContextualType(type, 1); } return undefined; } @@ -11793,38 +11851,38 @@ var ts; } var parent = node.parent; switch (parent.kind) { - case 188 /* VariableDeclaration */: - case 124 /* Parameter */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 146 /* BindingElement */: + case 188: + case 124: + case 126: + case 125: + case 146: return getContextualTypeForInitializerExpression(node); - case 157 /* ArrowFunction */: - case 181 /* ReturnStatement */: + case 157: + case 181: return getContextualTypeForReturnExpression(node); - case 151 /* CallExpression */: - case 152 /* NewExpression */: + case 151: + case 152: return getContextualTypeForArgument(parent, node); - case 154 /* TypeAssertionExpression */: + case 154: return getTypeFromTypeNode(parent.type); - case 163 /* BinaryExpression */: + case 163: return getContextualTypeForBinaryOperand(node); - case 204 /* PropertyAssignment */: + case 204: return getContextualTypeForObjectLiteralElement(parent); - case 147 /* ArrayLiteralExpression */: + case 147: return getContextualTypeForElementExpression(node); - case 164 /* ConditionalExpression */: + case 164: return getContextualTypeForConditionalOperand(node); - case 169 /* TemplateSpan */: - ts.Debug.assert(parent.parent.kind === 165 /* TemplateExpression */); + case 169: + ts.Debug.assert(parent.parent.kind === 165); return getContextualTypeForSubstitutionExpression(parent.parent, node); - case 155 /* ParenthesizedExpression */: + case 155: return getContextualType(parent); } return undefined; } function getNonGenericSignature(type) { - var signatures = getSignaturesOfObjectOrUnionType(type, 0 /* Call */); + var signatures = getSignaturesOfObjectOrUnionType(type, 0); if (signatures.length === 1) { var signature = signatures[0]; if (!signature.typeParameters) { @@ -11833,24 +11891,24 @@ var ts; } } function isFunctionExpressionOrArrowFunction(node) { - return node.kind === 156 /* FunctionExpression */ || node.kind === 157 /* ArrowFunction */; + return node.kind === 156 || node.kind === 157; } function getContextualSignatureForFunctionLikeDeclaration(node) { return isFunctionExpressionOrArrowFunction(node) ? getContextualSignature(node) : undefined; } function getContextualSignature(node) { - ts.Debug.assert(node.kind !== 128 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node)); + ts.Debug.assert(node.kind !== 128 || ts.isObjectLiteralMethod(node)); var type = ts.isObjectLiteralMethod(node) ? getContextualTypeForObjectLiteralMethod(node) : getContextualType(node); if (!type) { return undefined; } - if (!(type.flags & 16384 /* Union */)) { + if (!(type.flags & 16384)) { return getNonGenericSignature(type); } var signatureList; var types = type.types; for (var i = 0; i < types.length; i++) { - if (signatureList && getSignaturesOfObjectOrUnionType(types[i], 0 /* Call */).length > 1) { + if (signatureList && getSignaturesOfObjectOrUnionType(types[i], 0).length > 1) { return undefined; } var signature = getNonGenericSignature(types[i]); @@ -11879,13 +11937,13 @@ var ts; } function isAssignmentTarget(node) { var parent = node.parent; - if (parent.kind === 163 /* BinaryExpression */ && parent.operator === 52 /* EqualsToken */ && parent.left === node) { + if (parent.kind === 163 && parent.operator === 52 && parent.left === node) { return true; } - if (parent.kind === 204 /* PropertyAssignment */) { + if (parent.kind === 204) { return isAssignmentTarget(parent.parent); } - if (parent.kind === 147 /* ArrayLiteralExpression */) { + if (parent.kind === 147) { return isAssignmentTarget(parent); } return false; @@ -11907,8 +11965,8 @@ var ts; var elementTypes = []; ts.forEach(elements, function (e) { var type = checkExpression(e, contextualMapper); - if (e.kind === 167 /* SpreadElementExpression */) { - elementTypes.push(getIndexTypeOfType(type, 1 /* Number */) || anyType); + if (e.kind === 167) { + elementTypes.push(getIndexTypeOfType(type, 1) || anyType); hasSpreadElement = true; } else { @@ -11924,10 +11982,10 @@ var ts; return createArrayType(getUnionType(elementTypes)); } function isNumericName(name) { - return name.kind === 122 /* ComputedPropertyName */ ? isNumericComputedName(name) : isNumericLiteralName(name.text); + return name.kind === 122 ? isNumericComputedName(name) : isNumericLiteralName(name.text); } function isNumericComputedName(name) { - return isTypeOfKind(checkComputedPropertyName(name), 1 /* Any */ | 132 /* NumberLike */); + return isTypeOfKind(checkComputedPropertyName(name), 1 | 132); } function isNumericLiteralName(name) { return (+name).toString() === name; @@ -11936,7 +11994,7 @@ var ts; var links = getNodeLinks(node.expression); if (!links.resolvedType) { links.resolvedType = checkExpression(node.expression); - if (!isTypeOfKind(links.resolvedType, 1 /* Any */ | 132 /* NumberLike */ | 258 /* StringLike */)) { + if (!isTypeOfKind(links.resolvedType, 1 | 132 | 258)) { error(node, ts.Diagnostics.A_computed_property_name_must_be_of_type_string_number_or_any); } } @@ -11951,19 +12009,19 @@ var ts; for (var i = 0; i < node.properties.length; i++) { var memberDecl = node.properties[i]; var member = memberDecl.symbol; - if (memberDecl.kind === 204 /* PropertyAssignment */ || memberDecl.kind === 205 /* ShorthandPropertyAssignment */ || ts.isObjectLiteralMethod(memberDecl)) { - if (memberDecl.kind === 204 /* PropertyAssignment */) { + if (memberDecl.kind === 204 || memberDecl.kind === 205 || ts.isObjectLiteralMethod(memberDecl)) { + if (memberDecl.kind === 204) { var type = checkPropertyAssignment(memberDecl, contextualMapper); } - else if (memberDecl.kind === 128 /* MethodDeclaration */) { + else if (memberDecl.kind === 128) { var type = checkObjectLiteralMethod(memberDecl, contextualMapper); } else { - ts.Debug.assert(memberDecl.kind === 205 /* ShorthandPropertyAssignment */); - var type = memberDecl.name.kind === 122 /* ComputedPropertyName */ ? unknownType : checkExpression(memberDecl.name, contextualMapper); + ts.Debug.assert(memberDecl.kind === 205); + var type = memberDecl.name.kind === 122 ? unknownType : checkExpression(memberDecl.name, contextualMapper); } typeFlags |= type.flags; - var prop = createSymbol(4 /* Property */ | 67108864 /* Transient */ | member.flags, member.name); + var prop = createSymbol(4 | 67108864 | member.flags, member.name); prop.declarations = member.declarations; prop.parent = member.parent; if (member.valueDeclaration) { @@ -11974,7 +12032,7 @@ var ts; member = prop; } else { - ts.Debug.assert(memberDecl.kind === 130 /* GetAccessor */ || memberDecl.kind === 131 /* SetAccessor */); + ts.Debug.assert(memberDecl.kind === 130 || memberDecl.kind === 131); checkAccessorDeclaration(memberDecl); } if (!ts.hasDynamicName(memberDecl)) { @@ -11982,17 +12040,17 @@ var ts; } propertiesArray.push(member); } - var stringIndexType = getIndexType(0 /* String */); - var numberIndexType = getIndexType(1 /* Number */); + var stringIndexType = getIndexType(0); + var numberIndexType = getIndexType(1); var result = createAnonymousType(node.symbol, propertiesTable, emptyArray, emptyArray, stringIndexType, numberIndexType); - result.flags |= 131072 /* ObjectLiteral */ | 524288 /* ContainsObjectLiteral */ | (typeFlags & 262144 /* ContainsUndefinedOrNull */); + result.flags |= 131072 | 524288 | (typeFlags & 262144); return result; function getIndexType(kind) { if (contextualType && contextualTypeHasIndexSignature(contextualType, kind)) { var propTypes = []; for (var i = 0; i < propertiesArray.length; i++) { var propertyDecl = node.properties[i]; - if (kind === 0 /* String */ || isNumericName(propertyDecl.name)) { + if (kind === 0 || isNumericName(propertyDecl.name)) { var type = getTypeOfSymbol(propertiesArray[i]); if (!ts.contains(propTypes, type)) { propTypes.push(type); @@ -12007,36 +12065,36 @@ var ts; } } function getDeclarationKindFromSymbol(s) { - return s.valueDeclaration ? s.valueDeclaration.kind : 126 /* PropertyDeclaration */; + return s.valueDeclaration ? s.valueDeclaration.kind : 126; } function getDeclarationFlagsFromSymbol(s) { - return s.valueDeclaration ? ts.getCombinedNodeFlags(s.valueDeclaration) : s.flags & 134217728 /* Prototype */ ? 16 /* Public */ | 128 /* Static */ : 0; + return s.valueDeclaration ? ts.getCombinedNodeFlags(s.valueDeclaration) : s.flags & 134217728 ? 16 | 128 : 0; } function checkClassPropertyAccess(node, left, type, prop) { var flags = getDeclarationFlagsFromSymbol(prop); - if (!(flags & (32 /* Private */ | 64 /* Protected */))) { + if (!(flags & (32 | 64))) { return; } - var enclosingClassDeclaration = ts.getAncestor(node, 191 /* ClassDeclaration */); + var enclosingClassDeclaration = ts.getAncestor(node, 191); var enclosingClass = enclosingClassDeclaration ? getDeclaredTypeOfSymbol(getSymbolOfNode(enclosingClassDeclaration)) : undefined; var declaringClass = getDeclaredTypeOfSymbol(prop.parent); - if (flags & 32 /* Private */) { + if (flags & 32) { if (declaringClass !== enclosingClass) { error(node, ts.Diagnostics.Property_0_is_private_and_only_accessible_within_class_1, symbolToString(prop), typeToString(declaringClass)); } return; } - if (left.kind === 90 /* SuperKeyword */) { + if (left.kind === 90) { return; } if (!enclosingClass || !hasBaseType(enclosingClass, declaringClass)) { error(node, ts.Diagnostics.Property_0_is_protected_and_only_accessible_within_class_1_and_its_subclasses, symbolToString(prop), typeToString(declaringClass)); return; } - if (flags & 128 /* Static */) { + if (flags & 128) { return; } - if (!(getTargetType(type).flags & (1024 /* Class */ | 2048 /* Interface */) && hasBaseType(type, enclosingClass))) { + if (!(getTargetType(type).flags & (1024 | 2048) && hasBaseType(type, enclosingClass))) { error(node, ts.Diagnostics.Property_0_is_protected_and_only_accessible_through_an_instance_of_class_1, symbolToString(prop), typeToString(enclosingClass)); } } @@ -12063,8 +12121,8 @@ var ts; return unknownType; } getNodeLinks(node).resolvedSymbol = prop; - if (prop.parent && prop.parent.flags & 32 /* Class */) { - if (left.kind === 90 /* SuperKeyword */ && getDeclarationKindFromSymbol(prop) !== 128 /* MethodDeclaration */) { + if (prop.parent && prop.parent.flags & 32) { + if (left.kind === 90 && getDeclarationKindFromSymbol(prop) !== 128) { error(right, ts.Diagnostics.Only_public_and_protected_methods_of_the_base_class_are_accessible_via_the_super_keyword); } else { @@ -12076,18 +12134,18 @@ var ts; return anyType; } function isValidPropertyAccess(node, propertyName) { - var left = node.kind === 149 /* PropertyAccessExpression */ ? node.expression : node.left; + var left = node.kind === 149 ? node.expression : node.left; var type = checkExpressionOrQualifiedName(left); if (type !== unknownType && type !== anyType) { var prop = getPropertyOfType(getWidenedType(type), propertyName); - if (prop && prop.parent && prop.parent.flags & 32 /* Class */) { - if (left.kind === 90 /* SuperKeyword */ && getDeclarationKindFromSymbol(prop) !== 128 /* MethodDeclaration */) { + if (prop && prop.parent && prop.parent.flags & 32) { + if (left.kind === 90 && getDeclarationKindFromSymbol(prop) !== 128) { return false; } else { - var diagnosticsCount = diagnostics.length; + var modificationCount = diagnostics.getModificationCount(); checkClassPropertyAccess(node, left, type, prop); - return diagnostics.length === diagnosticsCount; + return diagnostics.getModificationCount() === modificationCount; } } } @@ -12096,7 +12154,7 @@ var ts; function checkIndexedAccess(node) { if (!node.argumentExpression) { var sourceFile = getSourceFile(node); - if (node.parent.kind === 152 /* NewExpression */ && node.parent.expression === node) { + if (node.parent.kind === 152 && node.parent.expression === node) { var start = ts.skipTrivia(sourceFile.text, node.expression.end); var end = node.end; grammarErrorAtPos(sourceFile, start, end - start, ts.Diagnostics.new_T_cannot_be_used_to_create_an_array_Use_new_Array_T_instead); @@ -12113,12 +12171,12 @@ var ts; return unknownType; } var isConstEnum = isConstEnumObjectType(objectType); - if (isConstEnum && (!node.argumentExpression || node.argumentExpression.kind !== 8 /* StringLiteral */)) { + if (isConstEnum && (!node.argumentExpression || node.argumentExpression.kind !== 8)) { error(node.argumentExpression, ts.Diagnostics.A_const_enum_member_can_only_be_accessed_using_a_string_literal); return unknownType; } if (node.argumentExpression) { - if (node.argumentExpression.kind === 8 /* StringLiteral */ || node.argumentExpression.kind === 7 /* NumericLiteral */) { + if (node.argumentExpression.kind === 8 || node.argumentExpression.kind === 7) { var name = node.argumentExpression.text; var prop = getPropertyOfType(objectType, name); if (prop) { @@ -12131,14 +12189,14 @@ var ts; } } } - if (isTypeOfKind(indexType, 1 /* Any */ | 258 /* StringLike */ | 132 /* NumberLike */)) { - if (isTypeOfKind(indexType, 1 /* Any */ | 132 /* NumberLike */)) { - var numberIndexType = getIndexTypeOfType(objectType, 1 /* Number */); + if (isTypeOfKind(indexType, 1 | 258 | 132)) { + if (isTypeOfKind(indexType, 1 | 132)) { + var numberIndexType = getIndexTypeOfType(objectType, 1); if (numberIndexType) { return numberIndexType; } } - var stringIndexType = getIndexTypeOfType(objectType, 0 /* String */); + var stringIndexType = getIndexTypeOfType(objectType, 0); if (stringIndexType) { return stringIndexType; } @@ -12151,7 +12209,7 @@ var ts; return unknownType; } function resolveUntypedCall(node) { - if (node.kind === 153 /* TaggedTemplateExpression */) { + if (node.kind === 153) { checkExpression(node.template); } else { @@ -12169,11 +12227,11 @@ var ts; var adjustedArgCount; var typeArguments; var callIsIncomplete; - if (node.kind === 153 /* TaggedTemplateExpression */) { + if (node.kind === 153) { var tagExpression = node; adjustedArgCount = args.length; typeArguments = undefined; - if (tagExpression.template.kind === 165 /* TemplateExpression */) { + if (tagExpression.template.kind === 165) { var templateExpression = tagExpression.template; var lastSpan = ts.lastOrUndefined(templateExpression.templateSpans); ts.Debug.assert(lastSpan !== undefined); @@ -12181,14 +12239,14 @@ var ts; } else { var templateLiteral = tagExpression.template; - ts.Debug.assert(templateLiteral.kind === 10 /* NoSubstitutionTemplateLiteral */); + ts.Debug.assert(templateLiteral.kind === 10); callIsIncomplete = !!templateLiteral.isUnterminated; } } else { var callExpression = node; if (!callExpression.arguments) { - ts.Debug.assert(callExpression.kind === 152 /* NewExpression */); + ts.Debug.assert(callExpression.kind === 152); return signature.minArgumentCount === 0; } adjustedArgCount = callExpression.arguments.hasTrailingComma ? args.length + 1 : args.length; @@ -12211,7 +12269,7 @@ var ts; } } function getSingleCallSignature(type) { - if (type.flags & 48128 /* ObjectType */) { + if (type.flags & 48128) { var resolved = resolveObjectOrUnionTypeMembers(type); if (resolved.callSignatures.length === 1 && resolved.constructSignatures.length === 0 && resolved.properties.length === 0 && !resolved.stringIndexType && !resolved.numberIndexType) { return resolved.callSignatures[0]; @@ -12229,28 +12287,27 @@ var ts; function inferTypeArguments(signature, args, excludeArgument) { var typeParameters = signature.typeParameters; var context = createInferenceContext(typeParameters, false); - var mapper = createInferenceMapper(context); + var inferenceMapper = createInferenceMapper(context); for (var i = 0; i < args.length; i++) { - if (args[i].kind === 168 /* OmittedExpression */) { + if (args[i].kind === 168) { continue; } - if (!excludeArgument || excludeArgument[i] === undefined) { - var parameterType = getTypeAtPosition(signature, i); - if (i === 0 && args[i].parent.kind === 153 /* TaggedTemplateExpression */) { - inferTypes(context, globalTemplateStringsArrayType, parameterType); - continue; - } - inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); + var parameterType = getTypeAtPosition(signature, i); + if (i === 0 && args[i].parent.kind === 153) { + inferTypes(context, globalTemplateStringsArrayType, parameterType); + continue; } + var mapper = excludeArgument && excludeArgument[i] !== undefined ? identityMapper : inferenceMapper; + inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); } if (excludeArgument) { for (var i = 0; i < args.length; i++) { - if (args[i].kind === 168 /* OmittedExpression */) { + if (args[i].kind === 168) { continue; } if (excludeArgument[i] === false) { var parameterType = getTypeAtPosition(signature, i); - inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, mapper), parameterType); + inferTypes(context, checkExpressionWithContextualType(args[i], parameterType, inferenceMapper), parameterType); } } } @@ -12283,15 +12340,15 @@ var ts; for (var i = 0; i < args.length; i++) { var arg = args[i]; var argType; - if (arg.kind === 168 /* OmittedExpression */) { + if (arg.kind === 168) { continue; } var paramType = getTypeAtPosition(signature, i); - if (i === 0 && node.kind === 153 /* TaggedTemplateExpression */) { + if (i === 0 && node.kind === 153) { argType = globalTemplateStringsArrayType; } else { - argType = arg.kind === 8 /* StringLiteral */ && !reportErrors ? getStringLiteralType(arg) : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); + argType = arg.kind === 8 && !reportErrors ? getStringLiteralType(arg) : checkExpressionWithContextualType(arg, paramType, excludeArgument && excludeArgument[i] ? identityMapper : undefined); } var isValidArgument = checkTypeRelatedTo(argType, paramType, relation, reportErrors ? arg : undefined, ts.Diagnostics.Argument_of_type_0_is_not_assignable_to_parameter_of_type_1); if (!isValidArgument) { @@ -12302,10 +12359,10 @@ var ts; } function getEffectiveCallArguments(node) { var args; - if (node.kind === 153 /* TaggedTemplateExpression */) { + if (node.kind === 153) { var template = node.template; args = [template]; - if (template.kind === 165 /* TemplateExpression */) { + if (template.kind === 165) { ts.forEach(template.templateSpans, function (span) { args.push(span.expression); }); @@ -12317,8 +12374,8 @@ var ts; return args; } function getEffectiveTypeArguments(callExpression) { - if (callExpression.expression.kind === 90 /* SuperKeyword */) { - var containingClass = ts.getAncestor(callExpression, 191 /* ClassDeclaration */); + if (callExpression.expression.kind === 90) { + var containingClass = ts.getAncestor(callExpression, 191); var baseClassTypeNode = containingClass && ts.getClassBaseTypeNode(containingClass); return baseClassTypeNode && baseClassTypeNode.typeArguments; } @@ -12327,11 +12384,11 @@ var ts; } } function resolveCall(node, signatures, candidatesOutArray) { - var isTaggedTemplate = node.kind === 153 /* TaggedTemplateExpression */; + var isTaggedTemplate = node.kind === 153; var typeArguments; if (!isTaggedTemplate) { typeArguments = getEffectiveTypeArguments(node); - if (node.expression.kind !== 90 /* SuperKeyword */) { + if (node.expression.kind !== 90) { ts.forEach(typeArguments, checkSourceElement); } } @@ -12487,10 +12544,10 @@ var ts; } } function resolveCallExpression(node, candidatesOutArray) { - if (node.expression.kind === 90 /* SuperKeyword */) { + if (node.expression.kind === 90) { var superType = checkSuperExpression(node.expression); if (superType !== unknownType) { - return resolveCall(node, getSignaturesOfType(superType, 1 /* Construct */), candidatesOutArray); + return resolveCall(node, getSignaturesOfType(superType, 1), candidatesOutArray); } return resolveUntypedCall(node); } @@ -12499,9 +12556,9 @@ var ts; if (apparentType === unknownType) { return resolveErrorCall(node); } - var callSignatures = getSignaturesOfType(apparentType, 0 /* Call */); - var constructSignatures = getSignaturesOfType(apparentType, 1 /* Construct */); - if (funcType === anyType || (!callSignatures.length && !constructSignatures.length && !(funcType.flags & 16384 /* Union */) && isTypeAssignableTo(funcType, globalFunctionType))) { + var callSignatures = getSignaturesOfType(apparentType, 0); + var constructSignatures = getSignaturesOfType(apparentType, 1); + if (funcType === anyType || (!callSignatures.length && !constructSignatures.length && !(funcType.flags & 16384) && isTypeAssignableTo(funcType, globalFunctionType))) { if (node.typeArguments) { error(node, ts.Diagnostics.Untyped_function_calls_may_not_accept_type_arguments); } @@ -12530,11 +12587,11 @@ var ts; if (expressionType === unknownType) { return resolveErrorCall(node); } - var constructSignatures = getSignaturesOfType(expressionType, 1 /* Construct */); + var constructSignatures = getSignaturesOfType(expressionType, 1); if (constructSignatures.length) { return resolveCall(node, constructSignatures, candidatesOutArray); } - var callSignatures = getSignaturesOfType(expressionType, 0 /* Call */); + var callSignatures = getSignaturesOfType(expressionType, 0); if (callSignatures.length) { var signature = resolveCall(node, callSignatures, candidatesOutArray); if (getReturnTypeOfSignature(signature) !== voidType) { @@ -12551,8 +12608,8 @@ var ts; if (apparentType === unknownType) { return resolveErrorCall(node); } - var callSignatures = getSignaturesOfType(apparentType, 0 /* Call */); - if (tagType === anyType || (!callSignatures.length && !(tagType.flags & 16384 /* Union */) && isTypeAssignableTo(tagType, globalFunctionType))) { + var callSignatures = getSignaturesOfType(apparentType, 0); + if (tagType === anyType || (!callSignatures.length && !(tagType.flags & 16384) && isTypeAssignableTo(tagType, globalFunctionType))) { return resolveUntypedCall(node); } if (!callSignatures.length) { @@ -12565,13 +12622,13 @@ var ts; var links = getNodeLinks(node); if (!links.resolvedSignature || candidatesOutArray) { links.resolvedSignature = anySignature; - if (node.kind === 151 /* CallExpression */) { + if (node.kind === 151) { links.resolvedSignature = resolveCallExpression(node, candidatesOutArray); } - else if (node.kind === 152 /* NewExpression */) { + else if (node.kind === 152) { links.resolvedSignature = resolveNewExpression(node, candidatesOutArray); } - else if (node.kind === 153 /* TaggedTemplateExpression */) { + else if (node.kind === 153) { links.resolvedSignature = resolveTaggedTemplateExpression(node, candidatesOutArray); } else { @@ -12583,12 +12640,12 @@ var ts; function checkCallExpression(node) { checkGrammarTypeArguments(node, node.typeArguments) || checkGrammarArguments(node, node.arguments); var signature = getResolvedSignature(node); - if (node.expression.kind === 90 /* SuperKeyword */) { + if (node.expression.kind === 90) { return voidType; } - if (node.kind === 152 /* NewExpression */) { + if (node.kind === 152) { var declaration = signature.declaration; - if (declaration && declaration.kind !== 129 /* Constructor */ && declaration.kind !== 133 /* ConstructSignature */ && declaration.kind !== 137 /* ConstructorType */) { + if (declaration && declaration.kind !== 129 && declaration.kind !== 133 && declaration.kind !== 137) { if (compilerOptions.noImplicitAny) { error(node, ts.Diagnostics.new_expression_whose_target_lacks_a_construct_signature_implicitly_has_an_any_type); } @@ -12598,7 +12655,7 @@ var ts; return getReturnTypeOfSignature(signature); } function checkTaggedTemplateExpression(node) { - if (languageVersion < 2 /* ES6 */) { + if (languageVersion < 2) { grammarErrorOnFirstToken(node.template, ts.Diagnostics.Tagged_templates_are_only_available_when_targeting_ECMAScript_6_and_higher); } return getReturnTypeOfSignature(getResolvedSignature(node)); @@ -12632,7 +12689,10 @@ var ts; } function getReturnTypeFromBody(func, contextualMapper) { var contextualSignature = getContextualSignatureForFunctionLikeDeclaration(func); - if (func.body.kind !== 170 /* Block */) { + if (!func.body) { + return unknownType; + } + if (func.body.kind !== 170) { var type = checkExpressionCached(func.body, contextualMapper); } else { @@ -12670,7 +12730,7 @@ var ts; }); } function bodyContainsSingleThrowStatement(body) { - return (body.statements.length === 1) && (body.statements[0].kind === 185 /* ThrowStatement */); + return (body.statements.length === 1) && (body.statements[0].kind === 185); } function checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(func, returnType) { if (!produceDiagnostics) { @@ -12679,7 +12739,7 @@ var ts; if (returnType === voidType || returnType === anyType) { return; } - if (ts.nodeIsMissing(func.body) || func.body.kind !== 170 /* Block */) { + if (ts.nodeIsMissing(func.body) || func.body.kind !== 170) { return; } var bodyBlock = func.body; @@ -12692,22 +12752,22 @@ var ts; error(func.type, ts.Diagnostics.A_function_whose_declared_type_is_neither_void_nor_any_must_return_a_value_or_consist_of_a_single_throw_statement); } function checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper) { - ts.Debug.assert(node.kind !== 128 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node)); + ts.Debug.assert(node.kind !== 128 || ts.isObjectLiteralMethod(node)); var hasGrammarError = checkGrammarFunctionLikeDeclaration(node); - if (!hasGrammarError && node.kind === 156 /* FunctionExpression */) { + if (!hasGrammarError && node.kind === 156) { checkGrammarFunctionName(node.name) || checkGrammarForGenerator(node); } - if (contextualMapper === identityMapper) { + if (contextualMapper === identityMapper && isContextSensitive(node)) { return anyFunctionType; } var links = getNodeLinks(node); var type = getTypeOfSymbol(node.symbol); - if (!(links.flags & 64 /* ContextChecked */)) { + if (!(links.flags & 64)) { var contextualSignature = getContextualSignature(node); - if (!(links.flags & 64 /* ContextChecked */)) { - links.flags |= 64 /* ContextChecked */; + if (!(links.flags & 64)) { + links.flags |= 64; if (contextualSignature) { - var signature = getSignaturesOfType(type, 0 /* Call */)[0]; + var signature = getSignaturesOfType(type, 0)[0]; if (isContextSensitive(node)) { assignContextualParameterTypes(signature, contextualSignature, contextualMapper || identityMapper); } @@ -12722,19 +12782,19 @@ var ts; checkSignatureDeclaration(node); } } - if (produceDiagnostics && node.kind !== 128 /* MethodDeclaration */ && node.kind !== 127 /* MethodSignature */) { + if (produceDiagnostics && node.kind !== 128 && node.kind !== 127) { checkCollisionWithCapturedSuperVariable(node, node.name); checkCollisionWithCapturedThisVariable(node, node.name); } return type; } function checkFunctionExpressionOrObjectLiteralMethodBody(node) { - ts.Debug.assert(node.kind !== 128 /* MethodDeclaration */ || ts.isObjectLiteralMethod(node)); + ts.Debug.assert(node.kind !== 128 || ts.isObjectLiteralMethod(node)); if (node.type) { checkIfNonVoidFunctionHasReturnExpressionsOrSingleThrowStatment(node, getTypeFromTypeNode(node.type)); } if (node.body) { - if (node.body.kind === 170 /* Block */) { + if (node.body.kind === 170) { checkSourceElement(node.body); } else { @@ -12747,7 +12807,7 @@ var ts; } } function checkArithmeticOperandType(operand, type, diagnostic) { - if (!isTypeOfKind(type, 1 /* Any */ | 132 /* NumberLike */)) { + if (!isTypeOfKind(type, 1 | 132)) { error(operand, diagnostic); return false; } @@ -12760,15 +12820,15 @@ var ts; } function isReferenceOrErrorExpression(n) { switch (n.kind) { - case 64 /* Identifier */: + case 64: var symbol = findSymbol(n); - return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3 /* Variable */) !== 0; - case 149 /* PropertyAccessExpression */: + return !symbol || symbol === unknownSymbol || symbol === argumentsSymbol || (symbol.flags & 3) !== 0; + case 149: var symbol = findSymbol(n); - return !symbol || symbol === unknownSymbol || (symbol.flags & ~8 /* EnumMember */) !== 0; - case 150 /* ElementAccessExpression */: + return !symbol || symbol === unknownSymbol || (symbol.flags & ~8) !== 0; + case 150: return true; - case 155 /* ParenthesizedExpression */: + case 155: return isReferenceOrErrorExpression(n.expression); default: return false; @@ -12776,20 +12836,20 @@ var ts; } function isConstVariableReference(n) { switch (n.kind) { - case 64 /* Identifier */: - case 149 /* PropertyAccessExpression */: + case 64: + case 149: var symbol = findSymbol(n); - return symbol && (symbol.flags & 3 /* Variable */) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 4096 /* Const */) !== 0; - case 150 /* ElementAccessExpression */: + return symbol && (symbol.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(symbol) & 4096) !== 0; + case 150: var index = n.argumentExpression; var symbol = findSymbol(n.expression); - if (symbol && index && index.kind === 8 /* StringLiteral */) { + if (symbol && index && index.kind === 8) { var name = index.text; var prop = getPropertyOfType(getTypeOfSymbol(symbol), name); - return prop && (prop.flags & 3 /* Variable */) !== 0 && (getDeclarationFlagsFromSymbol(prop) & 4096 /* Const */) !== 0; + return prop && (prop.flags & 3) !== 0 && (getDeclarationFlagsFromSymbol(prop) & 4096) !== 0; } return false; - case 155 /* ParenthesizedExpression */: + case 155: return isConstVariableReference(n.expression); default: return false; @@ -12806,7 +12866,7 @@ var ts; return true; } function checkDeleteExpression(node) { - if (node.parserContextFlags & 1 /* StrictMode */ && node.expression.kind === 64 /* Identifier */) { + if (node.parserContextFlags & 1 && node.expression.kind === 64) { grammarErrorOnNode(node.expression, ts.Diagnostics.delete_cannot_be_called_on_an_identifier_in_strict_mode); } var operandType = checkExpression(node.expression); @@ -12821,19 +12881,19 @@ var ts; return undefinedType; } function checkPrefixUnaryExpression(node) { - if ((node.operator === 38 /* PlusPlusToken */ || node.operator === 39 /* MinusMinusToken */)) { + if ((node.operator === 38 || node.operator === 39)) { checkGrammarEvalOrArgumentsInStrictMode(node, node.operand); } var operandType = checkExpression(node.operand); switch (node.operator) { - case 33 /* PlusToken */: - case 34 /* MinusToken */: - case 47 /* TildeToken */: + case 33: + case 34: + case 47: return numberType; - case 46 /* ExclamationToken */: + case 46: return booleanType; - case 38 /* PlusPlusToken */: - case 39 /* MinusMinusToken */: + case 38: + case 39: var ok = checkArithmeticOperandType(node.operand, operandType, ts.Diagnostics.An_arithmetic_operand_must_be_of_type_any_number_or_an_enum_type); if (ok) { checkReferenceExpression(node.operand, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_must_be_a_variable_property_or_indexer, ts.Diagnostics.The_operand_of_an_increment_or_decrement_operator_cannot_be_a_constant); @@ -12855,7 +12915,7 @@ var ts; if (type.flags & kind) { return true; } - if (type.flags & 16384 /* Union */) { + if (type.flags & 16384) { var types = type.types; for (var i = 0; i < types.length; i++) { if (!(types[i].flags & kind)) { @@ -12867,25 +12927,25 @@ var ts; return false; } function isConstEnumObjectType(type) { - return type.flags & (48128 /* ObjectType */ | 32768 /* Anonymous */) && type.symbol && isConstEnumSymbol(type.symbol); + return type.flags & (48128 | 32768) && type.symbol && isConstEnumSymbol(type.symbol); } function isConstEnumSymbol(symbol) { - return (symbol.flags & 128 /* ConstEnum */) !== 0; + return (symbol.flags & 128) !== 0; } function checkInstanceOfExpression(node, leftType, rightType) { - if (isTypeOfKind(leftType, 510 /* Primitive */)) { + if (isTypeOfKind(leftType, 510)) { error(node.left, ts.Diagnostics.The_left_hand_side_of_an_instanceof_expression_must_be_of_type_any_an_object_type_or_a_type_parameter); } - if (!(rightType.flags & 1 /* Any */ || isTypeSubtypeOf(rightType, globalFunctionType))) { + if (!(rightType.flags & 1 || isTypeSubtypeOf(rightType, globalFunctionType))) { error(node.right, ts.Diagnostics.The_right_hand_side_of_an_instanceof_expression_must_be_of_type_any_or_of_a_type_assignable_to_the_Function_interface_type); } return booleanType; } function checkInExpression(node, leftType, rightType) { - if (!isTypeOfKind(leftType, 1 /* Any */ | 258 /* StringLike */ | 132 /* NumberLike */)) { + if (!isTypeOfKind(leftType, 1 | 258 | 132)) { error(node.left, ts.Diagnostics.The_left_hand_side_of_an_in_expression_must_be_of_types_any_string_or_number); } - if (!isTypeOfKind(rightType, 1 /* Any */ | 48128 /* ObjectType */ | 512 /* TypeParameter */)) { + if (!isTypeOfKind(rightType, 1 | 48128 | 512)) { error(node.right, ts.Diagnostics.The_right_hand_side_of_an_in_expression_must_be_of_type_any_an_object_type_or_a_type_parameter); } return booleanType; @@ -12894,9 +12954,9 @@ var ts; var properties = node.properties; for (var i = 0; i < properties.length; i++) { var p = properties[i]; - if (p.kind === 204 /* PropertyAssignment */ || p.kind === 205 /* ShorthandPropertyAssignment */) { + if (p.kind === 204 || p.kind === 205) { var name = p.name; - var type = sourceType.flags & 1 /* Any */ ? sourceType : getTypeOfPropertyOfType(sourceType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(sourceType, 1 /* Number */) || getIndexTypeOfType(sourceType, 0 /* String */); + var type = sourceType.flags & 1 ? sourceType : getTypeOfPropertyOfType(sourceType, name.text) || isNumericLiteralName(name.text) && getIndexTypeOfType(sourceType, 1) || getIndexTypeOfType(sourceType, 0); if (type) { checkDestructuringAssignment(p.initializer || name, type); } @@ -12918,10 +12978,10 @@ var ts; var elements = node.elements; for (var i = 0; i < elements.length; i++) { var e = elements[i]; - if (e.kind !== 168 /* OmittedExpression */) { - if (e.kind !== 167 /* SpreadElementExpression */) { + if (e.kind !== 168) { + if (e.kind !== 167) { var propName = "" + i; - var type = sourceType.flags & 1 /* Any */ ? sourceType : isTupleLikeType(sourceType) ? getTypeOfPropertyOfType(sourceType, propName) : getIndexTypeOfType(sourceType, 1 /* Number */); + var type = sourceType.flags & 1 ? sourceType : isTupleLikeType(sourceType) ? getTypeOfPropertyOfType(sourceType, propName) : getIndexTypeOfType(sourceType, 1); if (type) { checkDestructuringAssignment(e, type, contextualMapper); } @@ -12942,14 +13002,14 @@ var ts; return sourceType; } function checkDestructuringAssignment(target, sourceType, contextualMapper) { - if (target.kind === 163 /* BinaryExpression */ && target.operator === 52 /* EqualsToken */) { + if (target.kind === 163 && target.operator === 52) { checkBinaryExpression(target, contextualMapper); target = target.left; } - if (target.kind === 148 /* ObjectLiteralExpression */) { + if (target.kind === 148) { return checkObjectLiteralAssignment(target, sourceType, contextualMapper); } - if (target.kind === 147 /* ArrayLiteralExpression */) { + if (target.kind === 147) { return checkArrayLiteralAssignment(target, sourceType, contextualMapper); } return checkReferenceAssignment(target, sourceType, contextualMapper); @@ -12966,38 +13026,38 @@ var ts; checkGrammarEvalOrArgumentsInStrictMode(node, node.left); } var operator = node.operator; - if (operator === 52 /* EqualsToken */ && (node.left.kind === 148 /* ObjectLiteralExpression */ || node.left.kind === 147 /* ArrayLiteralExpression */)) { + if (operator === 52 && (node.left.kind === 148 || node.left.kind === 147)) { return checkDestructuringAssignment(node.left, checkExpression(node.right, contextualMapper), contextualMapper); } var leftType = checkExpression(node.left, contextualMapper); var rightType = checkExpression(node.right, contextualMapper); switch (operator) { - case 35 /* AsteriskToken */: - case 55 /* AsteriskEqualsToken */: - case 36 /* SlashToken */: - case 56 /* SlashEqualsToken */: - case 37 /* PercentToken */: - case 57 /* PercentEqualsToken */: - case 34 /* MinusToken */: - case 54 /* MinusEqualsToken */: - case 40 /* LessThanLessThanToken */: - case 58 /* LessThanLessThanEqualsToken */: - case 41 /* GreaterThanGreaterThanToken */: - case 59 /* GreaterThanGreaterThanEqualsToken */: - case 42 /* GreaterThanGreaterThanGreaterThanToken */: - case 60 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 44 /* BarToken */: - case 62 /* BarEqualsToken */: - case 45 /* CaretToken */: - case 63 /* CaretEqualsToken */: - case 43 /* AmpersandToken */: - case 61 /* AmpersandEqualsToken */: - if (leftType.flags & (32 /* Undefined */ | 64 /* Null */)) + case 35: + case 55: + case 36: + case 56: + case 37: + case 57: + case 34: + case 54: + case 40: + case 58: + case 41: + case 59: + case 42: + case 60: + case 44: + case 62: + case 45: + case 63: + case 43: + case 61: + if (leftType.flags & (32 | 64)) leftType = rightType; - if (rightType.flags & (32 /* Undefined */ | 64 /* Null */)) + if (rightType.flags & (32 | 64)) rightType = leftType; var suggestedOperator; - if ((leftType.flags & 8 /* Boolean */) && (rightType.flags & 8 /* Boolean */) && (suggestedOperator = getSuggestedBooleanOperator(node.operator)) !== undefined) { + if ((leftType.flags & 8) && (rightType.flags & 8) && (suggestedOperator = getSuggestedBooleanOperator(node.operator)) !== undefined) { error(node, ts.Diagnostics.The_0_operator_is_not_allowed_for_boolean_types_Consider_using_1_instead, ts.tokenToString(node.operator), ts.tokenToString(suggestedOperator)); } else { @@ -13008,73 +13068,73 @@ var ts; } } return numberType; - case 33 /* PlusToken */: - case 53 /* PlusEqualsToken */: - if (leftType.flags & (32 /* Undefined */ | 64 /* Null */)) + case 33: + case 53: + if (leftType.flags & (32 | 64)) leftType = rightType; - if (rightType.flags & (32 /* Undefined */ | 64 /* Null */)) + if (rightType.flags & (32 | 64)) rightType = leftType; var resultType; - if (isTypeOfKind(leftType, 132 /* NumberLike */) && isTypeOfKind(rightType, 132 /* NumberLike */)) { + if (isTypeOfKind(leftType, 132) && isTypeOfKind(rightType, 132)) { resultType = numberType; } - else if (isTypeOfKind(leftType, 258 /* StringLike */) || isTypeOfKind(rightType, 258 /* StringLike */)) { + else if (isTypeOfKind(leftType, 258) || isTypeOfKind(rightType, 258)) { resultType = stringType; } - else if (leftType.flags & 1 /* Any */ || rightType.flags & 1 /* Any */) { + else if (leftType.flags & 1 || rightType.flags & 1) { resultType = anyType; } if (!resultType) { reportOperatorError(); return anyType; } - if (operator === 53 /* PlusEqualsToken */) { + if (operator === 53) { checkAssignmentOperator(resultType); } return resultType; - case 28 /* EqualsEqualsToken */: - case 29 /* ExclamationEqualsToken */: - case 30 /* EqualsEqualsEqualsToken */: - case 31 /* ExclamationEqualsEqualsToken */: - case 24 /* LessThanToken */: - case 25 /* GreaterThanToken */: - case 26 /* LessThanEqualsToken */: - case 27 /* GreaterThanEqualsToken */: + case 28: + case 29: + case 30: + case 31: + case 24: + case 25: + case 26: + case 27: if (!isTypeAssignableTo(leftType, rightType) && !isTypeAssignableTo(rightType, leftType)) { reportOperatorError(); } return booleanType; - case 86 /* InstanceOfKeyword */: + case 86: return checkInstanceOfExpression(node, leftType, rightType); - case 85 /* InKeyword */: + case 85: return checkInExpression(node, leftType, rightType); - case 48 /* AmpersandAmpersandToken */: + case 48: return rightType; - case 49 /* BarBarToken */: + case 49: return getUnionType([leftType, rightType]); - case 52 /* EqualsToken */: + case 52: checkAssignmentOperator(rightType); return rightType; - case 23 /* CommaToken */: + case 23: return rightType; } function getSuggestedBooleanOperator(operator) { switch (operator) { - case 44 /* BarToken */: - case 62 /* BarEqualsToken */: - return 49 /* BarBarToken */; - case 45 /* CaretToken */: - case 63 /* CaretEqualsToken */: - return 31 /* ExclamationEqualsEqualsToken */; - case 43 /* AmpersandToken */: - case 61 /* AmpersandEqualsToken */: - return 48 /* AmpersandAmpersandToken */; + case 44: + case 62: + return 49; + case 45: + case 63: + return 31; + case 43: + case 61: + return 48; default: return undefined; } } function checkAssignmentOperator(valueType) { - if (produceDiagnostics && operator >= 52 /* FirstAssignment */ && operator <= 63 /* LastAssignment */) { + if (produceDiagnostics && operator >= 52 && operator <= 63) { var ok = checkReferenceExpression(node.left, ts.Diagnostics.Invalid_left_hand_side_of_assignment_expression, ts.Diagnostics.Left_hand_side_of_assignment_expression_cannot_be_a_constant); if (ok) { checkTypeAssignableTo(valueType, leftType, node.left, undefined); @@ -13086,7 +13146,7 @@ var ts; } } function checkYieldExpression(node) { - if (!(node.parserContextFlags & 4 /* Yield */)) { + if (!(node.parserContextFlags & 4)) { grammarErrorOnFirstToken(node, ts.Diagnostics.yield_expression_must_be_contained_within_a_generator_declaration); } else { @@ -13153,7 +13213,7 @@ var ts; } function checkExpressionOrQualifiedName(node, contextualMapper) { var type; - if (node.kind == 121 /* QualifiedName */) { + if (node.kind == 121) { type = checkQualifiedName(node); } else { @@ -13161,7 +13221,7 @@ var ts; type = instantiateTypeWithSingleGenericCallSignature(node, uninstantiatedType, contextualMapper); } if (isConstEnumObjectType(type)) { - var ok = (node.parent.kind === 149 /* PropertyAccessExpression */ && node.parent.expression === node) || (node.parent.kind === 150 /* ElementAccessExpression */ && node.parent.expression === node) || ((node.kind === 64 /* Identifier */ || node.kind === 121 /* QualifiedName */) && isInRightSideOfImportOrExportAssignment(node)); + var ok = (node.parent.kind === 149 && node.parent.expression === node) || (node.parent.kind === 150 && node.parent.expression === node) || ((node.kind === 64 || node.kind === 121) && isInRightSideOfImportOrExportAssignment(node)); if (!ok) { error(node, ts.Diagnostics.const_enums_can_only_be_used_in_property_or_index_access_expressions_or_the_right_hand_side_of_an_import_declaration_or_export_assignment); } @@ -13174,65 +13234,65 @@ var ts; } function checkExpressionWorker(node, contextualMapper) { switch (node.kind) { - case 64 /* Identifier */: + case 64: return checkIdentifier(node); - case 92 /* ThisKeyword */: + case 92: return checkThisExpression(node); - case 90 /* SuperKeyword */: + case 90: return checkSuperExpression(node); - case 88 /* NullKeyword */: + case 88: return nullType; - case 94 /* TrueKeyword */: - case 79 /* FalseKeyword */: + case 94: + case 79: return booleanType; - case 7 /* NumericLiteral */: + case 7: return checkNumericLiteral(node); - case 165 /* TemplateExpression */: + case 165: return checkTemplateExpression(node); - case 8 /* StringLiteral */: - case 10 /* NoSubstitutionTemplateLiteral */: + case 8: + case 10: return stringType; - case 9 /* RegularExpressionLiteral */: + case 9: return globalRegExpType; - case 147 /* ArrayLiteralExpression */: + case 147: return checkArrayLiteral(node, contextualMapper); - case 148 /* ObjectLiteralExpression */: + case 148: return checkObjectLiteral(node, contextualMapper); - case 149 /* PropertyAccessExpression */: + case 149: return checkPropertyAccessExpression(node); - case 150 /* ElementAccessExpression */: + case 150: return checkIndexedAccess(node); - case 151 /* CallExpression */: - case 152 /* NewExpression */: + case 151: + case 152: return checkCallExpression(node); - case 153 /* TaggedTemplateExpression */: + case 153: return checkTaggedTemplateExpression(node); - case 154 /* TypeAssertionExpression */: + case 154: return checkTypeAssertion(node); - case 155 /* ParenthesizedExpression */: - return checkExpression(node.expression); - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: + case 155: + return checkExpression(node.expression, contextualMapper); + case 156: + case 157: return checkFunctionExpressionOrObjectLiteralMethod(node, contextualMapper); - case 159 /* TypeOfExpression */: + case 159: return checkTypeOfExpression(node); - case 158 /* DeleteExpression */: + case 158: return checkDeleteExpression(node); - case 160 /* VoidExpression */: + case 160: return checkVoidExpression(node); - case 161 /* PrefixUnaryExpression */: + case 161: return checkPrefixUnaryExpression(node); - case 162 /* PostfixUnaryExpression */: + case 162: return checkPostfixUnaryExpression(node); - case 163 /* BinaryExpression */: + case 163: return checkBinaryExpression(node, contextualMapper); - case 164 /* ConditionalExpression */: + case 164: return checkConditionalExpression(node, contextualMapper); - case 167 /* SpreadElementExpression */: + case 167: return checkSpreadElementExpression(node, contextualMapper); - case 168 /* OmittedExpression */: + case 168: return undefinedType; - case 166 /* YieldExpression */: + case 166: checkYieldExpression(node); return unknownType; } @@ -13252,9 +13312,9 @@ var ts; checkGrammarModifiers(node) || checkGrammarEvalOrArgumentsInStrictMode(node, node.name); checkVariableLikeDeclaration(node); var func = ts.getContainingFunction(node); - if (node.flags & 112 /* AccessibilityModifier */) { + if (node.flags & 112) { func = ts.getContainingFunction(node); - if (!(func.kind === 129 /* Constructor */ && ts.nodeIsPresent(func.body))) { + if (!(func.kind === 129 && ts.nodeIsPresent(func.body))) { error(node, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); } } @@ -13268,10 +13328,10 @@ var ts; } } function checkSignatureDeclaration(node) { - if (node.kind === 134 /* IndexSignature */) { + if (node.kind === 134) { checkGrammarIndexSignature(node); } - else if (node.kind === 136 /* FunctionType */ || node.kind === 190 /* FunctionDeclaration */ || node.kind === 137 /* ConstructorType */ || node.kind === 132 /* CallSignature */ || node.kind === 129 /* Constructor */ || node.kind === 133 /* ConstructSignature */) { + else if (node.kind === 136 || node.kind === 190 || node.kind === 137 || node.kind === 132 || node.kind === 129 || node.kind === 133) { checkGrammarFunctionLikeDeclaration(node); } checkTypeParameters(node.typeParameters); @@ -13283,10 +13343,10 @@ var ts; checkCollisionWithArgumentsInGeneratedCode(node); if (compilerOptions.noImplicitAny && !node.type) { switch (node.kind) { - case 133 /* ConstructSignature */: + case 133: error(node, ts.Diagnostics.Construct_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type); break; - case 132 /* CallSignature */: + case 132: error(node, ts.Diagnostics.Call_signature_which_lacks_return_type_annotation_implicitly_has_an_any_return_type); break; } @@ -13295,7 +13355,7 @@ var ts; checkSpecializedSignatureDeclaration(node); } function checkTypeForDuplicateIndexSignatures(node) { - if (node.kind === 192 /* InterfaceDeclaration */) { + if (node.kind === 192) { var nodeSymbol = getSymbolOfNode(node); if (nodeSymbol.declarations.length > 0 && nodeSymbol.declarations[0] !== node) { return; @@ -13309,7 +13369,7 @@ var ts; var declaration = indexSymbol.declarations[i]; if (declaration.parameters.length === 1 && declaration.parameters[0].type) { switch (declaration.parameters[0].type.kind) { - case 119 /* StringKeyword */: + case 119: if (!seenStringIndexer) { seenStringIndexer = true; } @@ -13317,7 +13377,7 @@ var ts; error(declaration, ts.Diagnostics.Duplicate_string_index_signature); } break; - case 117 /* NumberKeyword */: + case 117: if (!seenNumericIndexer) { seenNumericIndexer = true; } @@ -13354,37 +13414,37 @@ var ts; return; } function isSuperCallExpression(n) { - return n.kind === 151 /* CallExpression */ && n.expression.kind === 90 /* SuperKeyword */; + return n.kind === 151 && n.expression.kind === 90; } function containsSuperCall(n) { if (isSuperCallExpression(n)) { return true; } switch (n.kind) { - case 156 /* FunctionExpression */: - case 190 /* FunctionDeclaration */: - case 157 /* ArrowFunction */: - case 148 /* ObjectLiteralExpression */: return false; + case 156: + case 190: + case 157: + case 148: return false; default: return ts.forEachChild(n, containsSuperCall); } } function markThisReferencesAsErrors(n) { - if (n.kind === 92 /* ThisKeyword */) { + if (n.kind === 92) { error(n, ts.Diagnostics.this_cannot_be_referenced_in_current_location); } - else if (n.kind !== 156 /* FunctionExpression */ && n.kind !== 190 /* FunctionDeclaration */) { + else if (n.kind !== 156 && n.kind !== 190) { ts.forEachChild(n, markThisReferencesAsErrors); } } function isInstancePropertyWithInitializer(n) { - return n.kind === 126 /* PropertyDeclaration */ && !(n.flags & 128 /* Static */) && !!n.initializer; + return n.kind === 126 && !(n.flags & 128) && !!n.initializer; } if (ts.getClassBaseTypeNode(node.parent)) { if (containsSuperCall(node.body)) { - var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || ts.forEach(node.parameters, function (p) { return p.flags & (16 /* Public */ | 32 /* Private */ | 64 /* Protected */); }); + var superCallShouldBeFirst = ts.forEach(node.parent.members, isInstancePropertyWithInitializer) || ts.forEach(node.parameters, function (p) { return p.flags & (16 | 32 | 64); }); if (superCallShouldBeFirst) { var statements = node.body.statements; - if (!statements.length || statements[0].kind !== 173 /* ExpressionStatement */ || !isSuperCallExpression(statements[0].expression)) { + if (!statements.length || statements[0].kind !== 173 || !isSuperCallExpression(statements[0].expression)) { error(node, ts.Diagnostics.A_super_call_must_be_the_first_statement_in_the_constructor_when_a_class_contains_initialized_properties_or_has_parameter_properties); } else { @@ -13400,16 +13460,16 @@ var ts; function checkAccessorDeclaration(node) { if (produceDiagnostics) { checkGrammarFunctionLikeDeclaration(node) || checkGrammarAccessor(node) || checkGrammarComputedPropertyName(node.name); - if (node.kind === 130 /* GetAccessor */) { + if (node.kind === 130) { if (!ts.isInAmbientContext(node) && ts.nodeIsPresent(node.body) && !(bodyContainsAReturnStatement(node.body) || bodyContainsSingleThrowStatement(node.body))) { error(node.name, ts.Diagnostics.A_get_accessor_must_return_a_value_or_consist_of_a_single_throw_statement); } } if (!ts.hasDynamicName(node)) { - var otherKind = node.kind === 130 /* GetAccessor */ ? 131 /* SetAccessor */ : 130 /* GetAccessor */; + var otherKind = node.kind === 130 ? 131 : 130; var otherAccessor = ts.getDeclarationOfKind(node.symbol, otherKind); if (otherAccessor) { - if (((node.flags & 112 /* AccessibilityModifier */) !== (otherAccessor.flags & 112 /* AccessibilityModifier */))) { + if (((node.flags & 112) !== (otherAccessor.flags & 112))) { error(node.name, ts.Diagnostics.Getter_and_setter_accessors_do_not_agree_in_visibility); } var currentAccessorType = getAnnotatedAccessorType(node); @@ -13465,7 +13525,7 @@ var ts; ts.forEach(node.types, checkSourceElement); } function isPrivateWithinAmbient(node) { - return (node.flags & 32 /* Private */) && ts.isInAmbientContext(node); + return (node.flags & 32) && ts.isInAmbientContext(node); } function checkSpecializedSignatureDeclaration(signatureDeclarationNode) { if (!produceDiagnostics) { @@ -13480,9 +13540,9 @@ var ts; return; } var signaturesToCheck; - if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 192 /* InterfaceDeclaration */) { - ts.Debug.assert(signatureDeclarationNode.kind === 132 /* CallSignature */ || signatureDeclarationNode.kind === 133 /* ConstructSignature */); - var signatureKind = signatureDeclarationNode.kind === 132 /* CallSignature */ ? 0 /* Call */ : 1 /* Construct */; + if (!signatureDeclarationNode.name && signatureDeclarationNode.parent && signatureDeclarationNode.parent.kind === 192) { + ts.Debug.assert(signatureDeclarationNode.kind === 132 || signatureDeclarationNode.kind === 133); + var signatureKind = signatureDeclarationNode.kind === 132 ? 0 : 1; var containingSymbol = getSymbolOfNode(signatureDeclarationNode.parent); var containingType = getDeclaredTypeOfSymbol(containingSymbol); signaturesToCheck = getSignaturesOfType(containingType, signatureKind); @@ -13500,11 +13560,11 @@ var ts; } function getEffectiveDeclarationFlags(n, flagsToCheck) { var flags = ts.getCombinedNodeFlags(n); - if (n.parent.kind !== 192 /* InterfaceDeclaration */ && ts.isInAmbientContext(n)) { - if (!(flags & 2 /* Ambient */)) { - flags |= 1 /* Export */; + if (n.parent.kind !== 192 && ts.isInAmbientContext(n)) { + if (!(flags & 2)) { + flags |= 1; } - flags |= 2 /* Ambient */; + flags |= 2; } return flags & flagsToCheck; } @@ -13522,13 +13582,13 @@ var ts; var canonicalFlags = getEffectiveDeclarationFlags(getCanonicalOverload(overloads, implementation), flagsToCheck); ts.forEach(overloads, function (o) { var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags; - if (deviation & 1 /* Export */) { + if (deviation & 1) { error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_exported_or_not_exported); } - else if (deviation & 2 /* Ambient */) { + else if (deviation & 2) { error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient); } - else if (deviation & (32 /* Private */ | 64 /* Protected */)) { + else if (deviation & (32 | 64)) { error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected); } }); @@ -13545,7 +13605,7 @@ var ts; }); } } - var flagsToCheck = 1 /* Export */ | 2 /* Ambient */ | 32 /* Private */ | 64 /* Protected */; + var flagsToCheck = 1 | 2 | 32 | 64; var someNodeFlags = 0; var allNodeFlags = flagsToCheck; var someHaveQuestionToken = false; @@ -13555,7 +13615,7 @@ var ts; var lastSeenNonAmbientDeclaration; var previousDeclaration; var declarations = symbol.declarations; - var isConstructor = (symbol.flags & 16384 /* Constructor */) !== 0; + var isConstructor = (symbol.flags & 16384) !== 0; function reportImplementationExpectedError(node) { if (node.name && ts.getFullWidth(node.name) === 0) { return; @@ -13573,9 +13633,9 @@ var ts; if (subsequentNode.kind === node.kind) { var errorNode = subsequentNode.name || subsequentNode; if (node.name && subsequentNode.name && node.name.text === subsequentNode.name.text) { - ts.Debug.assert(node.kind === 128 /* MethodDeclaration */ || node.kind === 127 /* MethodSignature */); - ts.Debug.assert((node.flags & 128 /* Static */) !== (subsequentNode.flags & 128 /* Static */)); - var diagnostic = node.flags & 128 /* Static */ ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static; + ts.Debug.assert(node.kind === 128 || node.kind === 127); + ts.Debug.assert((node.flags & 128) !== (subsequentNode.flags & 128)); + var diagnostic = node.flags & 128 ? ts.Diagnostics.Function_overload_must_be_static : ts.Diagnostics.Function_overload_must_not_be_static; error(errorNode, diagnostic); return; } @@ -13593,17 +13653,17 @@ var ts; error(errorNode, ts.Diagnostics.Function_implementation_is_missing_or_not_immediately_following_the_declaration); } } - var isExportSymbolInsideModule = symbol.parent && symbol.parent.flags & 1536 /* Module */; + var isExportSymbolInsideModule = symbol.parent && symbol.parent.flags & 1536; var duplicateFunctionDeclaration = false; var multipleConstructorImplementation = false; for (var i = 0; i < declarations.length; i++) { var node = declarations[i]; var inAmbientContext = ts.isInAmbientContext(node); - var inAmbientContextOrInterface = node.parent.kind === 192 /* InterfaceDeclaration */ || node.parent.kind === 139 /* TypeLiteral */ || inAmbientContext; + var inAmbientContextOrInterface = node.parent.kind === 192 || node.parent.kind === 139 || inAmbientContext; if (inAmbientContextOrInterface) { previousDeclaration = undefined; } - if (node.kind === 190 /* FunctionDeclaration */ || node.kind === 128 /* MethodDeclaration */ || node.kind === 127 /* MethodSignature */ || node.kind === 129 /* Constructor */) { + if (node.kind === 190 || node.kind === 128 || node.kind === 127 || node.kind === 129) { var currentNodeFlags = getEffectiveDeclarationFlags(node, flagsToCheck); someNodeFlags |= currentNodeFlags; allNodeFlags &= currentNodeFlags; @@ -13672,7 +13732,7 @@ var ts; var symbol = node.localSymbol; if (!symbol) { symbol = getSymbolOfNode(node); - if (!(symbol.flags & 7340032 /* Export */)) { + if (!(symbol.flags & 7340032)) { return; } } @@ -13683,7 +13743,7 @@ var ts; var nonExportedDeclarationSpaces = 0; ts.forEach(symbol.declarations, function (d) { var declarationSpaces = getDeclarationSpaces(d); - if (getEffectiveDeclarationFlags(d, 1 /* Export */)) { + if (getEffectiveDeclarationFlags(d, 1)) { exportedDeclarationSpaces |= declarationSpaces; } else { @@ -13700,14 +13760,14 @@ var ts; } function getDeclarationSpaces(d) { switch (d.kind) { - case 192 /* InterfaceDeclaration */: - return 2097152 /* ExportType */; - case 195 /* ModuleDeclaration */: - return d.name.kind === 8 /* StringLiteral */ || ts.getModuleInstanceState(d) !== 0 /* NonInstantiated */ ? 4194304 /* ExportNamespace */ | 1048576 /* ExportValue */ : 4194304 /* ExportNamespace */; - case 191 /* ClassDeclaration */: - case 194 /* EnumDeclaration */: - return 2097152 /* ExportType */ | 1048576 /* ExportValue */; - case 197 /* ImportDeclaration */: + case 192: + return 2097152; + case 195: + return d.name.kind === 8 || ts.getModuleInstanceState(d) !== 0 ? 4194304 | 1048576 : 4194304; + case 191: + case 194: + return 2097152 | 1048576; + case 197: var result = 0; var target = resolveImport(getSymbolOfNode(d)); ts.forEach(target.declarations, function (d) { @@ -13715,7 +13775,7 @@ var ts; }); return result; default: - return 1048576 /* ExportValue */; + return 1048576; } } } @@ -13754,11 +13814,11 @@ var ts; } } function checkBlock(node) { - if (node.kind === 170 /* Block */) { + if (node.kind === 170) { checkGrammarForStatementInAmbientContext(node); } ts.forEach(node.statements, checkSourceElement); - if (ts.isFunctionBlock(node) || node.kind === 196 /* ModuleBlock */) { + if (ts.isFunctionBlock(node) || node.kind === 196) { checkFunctionExpressionBodies(node); } } @@ -13776,14 +13836,14 @@ var ts; if (!(identifier && identifier.text === name)) { return false; } - if (node.kind === 126 /* PropertyDeclaration */ || node.kind === 125 /* PropertySignature */ || node.kind === 128 /* MethodDeclaration */ || node.kind === 127 /* MethodSignature */ || node.kind === 130 /* GetAccessor */ || node.kind === 131 /* SetAccessor */) { + if (node.kind === 126 || node.kind === 125 || node.kind === 128 || node.kind === 127 || node.kind === 130 || node.kind === 131) { return false; } if (ts.isInAmbientContext(node)) { return false; } var root = getRootDeclaration(node); - if (root.kind === 124 /* Parameter */ && ts.nodeIsMissing(root.parent.body)) { + if (root.kind === 124 && ts.nodeIsMissing(root.parent.body)) { return false; } return true; @@ -13796,8 +13856,8 @@ var ts; function checkIfThisIsCapturedInEnclosingScope(node) { var current = node; while (current) { - if (getNodeCheckFlags(current) & 4 /* CaptureThis */) { - var isDeclaration = node.kind !== 64 /* Identifier */; + if (getNodeCheckFlags(current) & 4) { + var isDeclaration = node.kind !== 64; if (isDeclaration) { error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference); } @@ -13813,12 +13873,12 @@ var ts; if (!needCollisionCheckForIdentifier(node, name, "_super")) { return; } - var enclosingClass = ts.getAncestor(node, 191 /* ClassDeclaration */); + var enclosingClass = ts.getAncestor(node, 191); if (!enclosingClass || ts.isInAmbientContext(enclosingClass)) { return; } if (ts.getClassBaseTypeNode(enclosingClass)) { - var isDeclaration = node.kind !== 64 /* Identifier */; + var isDeclaration = node.kind !== 64; if (isDeclaration) { error(node, ts.Diagnostics.Duplicate_identifier_super_Compiler_uses_super_to_capture_base_class_reference); } @@ -13831,21 +13891,21 @@ var ts; if (!needCollisionCheckForIdentifier(node, name, "require") && !needCollisionCheckForIdentifier(node, name, "exports")) { return; } - if (node.kind === 195 /* ModuleDeclaration */ && ts.getModuleInstanceState(node) !== 1 /* Instantiated */) { + if (node.kind === 195 && ts.getModuleInstanceState(node) !== 1) { return; } var parent = getDeclarationContainer(node); - if (parent.kind === 207 /* SourceFile */ && ts.isExternalModule(parent)) { + if (parent.kind === 207 && ts.isExternalModule(parent)) { error(name, ts.Diagnostics.Duplicate_identifier_0_Compiler_reserves_name_1_in_top_level_scope_of_an_external_module, ts.declarationNameToString(name), ts.declarationNameToString(name)); } } function checkCollisionWithConstDeclarations(node) { - if (node.initializer && (ts.getCombinedNodeFlags(node) & 6144 /* BlockScoped */) === 0) { + if (node.initializer && (ts.getCombinedNodeFlags(node) & 6144) === 0) { var symbol = getSymbolOfNode(node); - if (symbol.flags & 1 /* FunctionScopedVariable */) { - var localDeclarationSymbol = resolveName(node, node.name.text, 3 /* Variable */, undefined, undefined); - if (localDeclarationSymbol && localDeclarationSymbol !== symbol && localDeclarationSymbol.flags & 2 /* BlockScopedVariable */) { - if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 4096 /* Const */) { + if (symbol.flags & 1) { + var localDeclarationSymbol = resolveName(node, node.name.text, 3, undefined, undefined); + if (localDeclarationSymbol && localDeclarationSymbol !== symbol && localDeclarationSymbol.flags & 2) { + if (getDeclarationFlagsFromSymbol(localDeclarationSymbol) & 4096) { error(node, ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0, symbolToString(localDeclarationSymbol)); } } @@ -13853,21 +13913,21 @@ var ts; } } function isParameterDeclaration(node) { - while (node.kind === 146 /* BindingElement */) { + while (node.kind === 146) { node = node.parent.parent; } - return node.kind === 124 /* Parameter */; + return node.kind === 124; } function checkParameterInitializer(node) { - if (getRootDeclaration(node).kind === 124 /* Parameter */) { + if (getRootDeclaration(node).kind === 124) { var func = ts.getContainingFunction(node); visit(node.initializer); } function visit(n) { - if (n.kind === 64 /* Identifier */) { + if (n.kind === 64) { var referencedSymbol = getNodeLinks(n).resolvedSymbol; - if (referencedSymbol && referencedSymbol !== unknownSymbol && getSymbol(func.locals, referencedSymbol.name, 107455 /* Value */) === referencedSymbol) { - if (referencedSymbol.valueDeclaration.kind === 124 /* Parameter */) { + if (referencedSymbol && referencedSymbol !== unknownSymbol && getSymbol(func.locals, referencedSymbol.name, 107455) === referencedSymbol) { + if (referencedSymbol.valueDeclaration.kind === 124) { if (referencedSymbol.valueDeclaration === node) { error(n, ts.Diagnostics.Parameter_0_cannot_be_referenced_in_its_initializer, ts.declarationNameToString(node.name)); return; @@ -13896,7 +13956,7 @@ var ts; if (ts.isBindingPattern(node.name)) { ts.forEach(node.name.elements, checkSourceElement); } - if (node.initializer && getRootDeclaration(node).kind === 124 /* Parameter */ && ts.nodeIsMissing(ts.getContainingFunction(node).body)) { + if (node.initializer && getRootDeclaration(node).kind === 124 && ts.nodeIsMissing(ts.getContainingFunction(node).body)) { error(node, ts.Diagnostics.A_parameter_initializer_is_only_allowed_in_a_function_or_constructor_implementation); return; } @@ -13924,7 +13984,7 @@ var ts; checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, undefined); } } - if (node.kind !== 126 /* PropertyDeclaration */ && node.kind !== 125 /* PropertySignature */) { + if (node.kind !== 126 && node.kind !== 125) { checkExportsOnMergedDeclarations(node); checkCollisionWithConstDeclarations(node); checkCollisionWithCapturedSuperVariable(node, node.name); @@ -13953,7 +14013,7 @@ var ts; } function inBlockOrObjectLiteralExpression(node) { while (node) { - if (node.kind === 170 /* Block */ || node.kind === 148 /* ObjectLiteralExpression */) { + if (node.kind === 170 || node.kind === 148) { return true; } node = node.parent; @@ -13981,12 +14041,12 @@ var ts; } function checkForStatement(node) { if (!checkGrammarForStatementInAmbientContext(node)) { - if (node.initializer && node.initializer.kind == 189 /* VariableDeclarationList */) { + if (node.initializer && node.initializer.kind == 189) { checkGrammarVariableDeclarationList(node.initializer); } } if (node.initializer) { - if (node.initializer.kind === 189 /* VariableDeclarationList */) { + if (node.initializer.kind === 189) { ts.forEach(node.initializer.declarations, checkVariableDeclaration); } else { @@ -14001,7 +14061,7 @@ var ts; } function checkForInStatement(node) { if (!checkGrammarForStatementInAmbientContext(node)) { - if (node.initializer.kind === 189 /* VariableDeclarationList */) { + if (node.initializer.kind === 189) { var variableList = node.initializer; if (!checkGrammarVariableDeclarationList(variableList)) { if (variableList.declarations.length > 1) { @@ -14010,7 +14070,7 @@ var ts; } } } - if (node.initializer.kind === 189 /* VariableDeclarationList */) { + if (node.initializer.kind === 189) { var variableDeclarationList = node.initializer; if (variableDeclarationList.declarations.length >= 1) { var decl = variableDeclarationList.declarations[0]; @@ -14031,7 +14091,7 @@ var ts; } } var exprType = checkExpression(node.expression); - if (!isTypeOfKind(exprType, 1 /* Any */ | 48128 /* ObjectType */ | 512 /* TypeParameter */)) { + if (!isTypeOfKind(exprType, 1 | 48128 | 512)) { error(node.expression, ts.Diagnostics.The_right_hand_side_of_a_for_in_statement_must_be_of_type_any_an_object_type_or_a_type_parameter); } checkSourceElement(node.statement); @@ -14040,7 +14100,7 @@ var ts; checkGrammarForStatementInAmbientContext(node) || checkGrammarBreakOrContinueStatement(node); } function isGetAccessorWithAnnotatatedSetAccessor(node) { - return !!(node.kind === 130 /* GetAccessor */ && getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(node.symbol, 131 /* SetAccessor */))); + return !!(node.kind === 130 && getSetAccessorTypeAnnotationNode(ts.getDeclarationOfKind(node.symbol, 131))); } function checkReturnStatement(node) { if (!checkGrammarForStatementInAmbientContext(node)) { @@ -14054,11 +14114,11 @@ var ts; if (func) { var returnType = getReturnTypeOfSignature(getSignatureFromDeclaration(func)); var exprType = checkExpressionCached(node.expression); - if (func.kind === 131 /* SetAccessor */) { + if (func.kind === 131) { error(node.expression, ts.Diagnostics.Setters_cannot_return_a_value); } else { - if (func.kind === 129 /* Constructor */) { + if (func.kind === 129) { if (!isTypeAssignableTo(exprType, returnType)) { error(node.expression, ts.Diagnostics.Return_type_of_constructor_signature_must_be_assignable_to_the_instance_type_of_the_class); } @@ -14072,7 +14132,7 @@ var ts; } function checkWithStatement(node) { if (!checkGrammarForStatementInAmbientContext(node)) { - if (node.parserContextFlags & 1 /* StrictMode */) { + if (node.parserContextFlags & 1) { grammarErrorOnFirstToken(node, ts.Diagnostics.with_statements_are_not_allowed_in_strict_mode); } } @@ -14085,7 +14145,7 @@ var ts; var hasDuplicateDefaultClause = false; var expressionType = checkExpression(node.expression); ts.forEach(node.clauses, function (clause) { - if (clause.kind === 201 /* DefaultClause */ && !hasDuplicateDefaultClause) { + if (clause.kind === 201 && !hasDuplicateDefaultClause) { if (firstDefaultClause === undefined) { firstDefaultClause = clause; } @@ -14097,7 +14157,7 @@ var ts; hasDuplicateDefaultClause = true; } } - if (produceDiagnostics && clause.kind === 200 /* CaseClause */) { + if (produceDiagnostics && clause.kind === 200) { var caseClause = clause; var caseType = checkExpression(caseClause.expression); if (!isTypeAssignableTo(expressionType, caseType)) { @@ -14114,7 +14174,7 @@ var ts; if (ts.isAnyFunction(current)) { break; } - if (current.kind === 184 /* LabeledStatement */ && current.label.text === node.label.text) { + if (current.kind === 184 && current.label.text === node.label.text) { var sourceFile = ts.getSourceFileOfNode(node); grammarErrorOnNode(node.label, ts.Diagnostics.Duplicate_label_0, ts.getTextOfNodeFromSourceText(sourceFile.text, node.label)); break; @@ -14151,24 +14211,24 @@ var ts; checkBlock(node.finallyBlock); } function checkIndexConstraints(type) { - var declaredNumberIndexer = getIndexDeclarationOfSymbol(type.symbol, 1 /* Number */); - var declaredStringIndexer = getIndexDeclarationOfSymbol(type.symbol, 0 /* String */); - var stringIndexType = getIndexTypeOfType(type, 0 /* String */); - var numberIndexType = getIndexTypeOfType(type, 1 /* Number */); + var declaredNumberIndexer = getIndexDeclarationOfSymbol(type.symbol, 1); + var declaredStringIndexer = getIndexDeclarationOfSymbol(type.symbol, 0); + var stringIndexType = getIndexTypeOfType(type, 0); + var numberIndexType = getIndexTypeOfType(type, 1); if (stringIndexType || numberIndexType) { ts.forEach(getPropertiesOfObjectType(type), function (prop) { var propType = getTypeOfSymbol(prop); - checkIndexConstraintForProperty(prop, propType, type, declaredStringIndexer, stringIndexType, 0 /* String */); - checkIndexConstraintForProperty(prop, propType, type, declaredNumberIndexer, numberIndexType, 1 /* Number */); + checkIndexConstraintForProperty(prop, propType, type, declaredStringIndexer, stringIndexType, 0); + checkIndexConstraintForProperty(prop, propType, type, declaredNumberIndexer, numberIndexType, 1); }); - if (type.flags & 1024 /* Class */ && type.symbol.valueDeclaration.kind === 191 /* ClassDeclaration */) { + if (type.flags & 1024 && type.symbol.valueDeclaration.kind === 191) { var classDeclaration = type.symbol.valueDeclaration; for (var i = 0; i < classDeclaration.members.length; i++) { var member = classDeclaration.members[i]; - if (!(member.flags & 128 /* Static */) && ts.hasDynamicName(member)) { + if (!(member.flags & 128) && ts.hasDynamicName(member)) { var propType = getTypeOfSymbol(member.symbol); - checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, 0 /* String */); - checkIndexConstraintForProperty(member.symbol, propType, type, declaredNumberIndexer, numberIndexType, 1 /* Number */); + checkIndexConstraintForProperty(member.symbol, propType, type, declaredStringIndexer, stringIndexType, 0); + checkIndexConstraintForProperty(member.symbol, propType, type, declaredNumberIndexer, numberIndexType, 1); } } } @@ -14176,8 +14236,8 @@ var ts; var errorNode; if (stringIndexType && numberIndexType) { errorNode = declaredNumberIndexer || declaredStringIndexer; - if (!errorNode && (type.flags & 2048 /* Interface */)) { - var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { return getIndexTypeOfType(base, 0 /* String */) && getIndexTypeOfType(base, 1 /* Number */); }); + if (!errorNode && (type.flags & 2048)) { + var someBaseTypeHasBothIndexers = ts.forEach(type.baseTypes, function (base) { return getIndexTypeOfType(base, 0) && getIndexTypeOfType(base, 1); }); errorNode = someBaseTypeHasBothIndexers ? undefined : type.symbol.declarations[0]; } } @@ -14188,22 +14248,22 @@ var ts; if (!indexType) { return; } - if (indexKind === 1 /* Number */ && !isNumericName(prop.valueDeclaration.name)) { + if (indexKind === 1 && !isNumericName(prop.valueDeclaration.name)) { return; } var errorNode; - if (prop.valueDeclaration.name.kind === 122 /* ComputedPropertyName */ || prop.parent === containingType.symbol) { + if (prop.valueDeclaration.name.kind === 122 || prop.parent === containingType.symbol) { errorNode = prop.valueDeclaration; } else if (indexDeclaration) { errorNode = indexDeclaration; } - else if (containingType.flags & 2048 /* Interface */) { + else if (containingType.flags & 2048) { var someBaseClassHasBothPropertyAndIndexer = ts.forEach(containingType.baseTypes, function (base) { return getPropertyOfObjectType(base, prop.name) && getIndexTypeOfType(base, indexKind); }); errorNode = someBaseClassHasBothPropertyAndIndexer ? undefined : containingType.symbol.declarations[0]; } if (errorNode && !isTypeAssignableTo(propertyType, indexType)) { - var errorMessage = indexKind === 0 /* String */ ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; + var errorMessage = indexKind === 0 ? ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_string_index_type_2 : ts.Diagnostics.Property_0_of_type_1_is_not_assignable_to_numeric_index_type_2; error(errorNode, errorMessage, symbolToString(prop), typeToString(propertyType), typeToString(indexType)); } } @@ -14254,7 +14314,7 @@ var ts; checkTypeAssignableTo(type, baseType, node.name, ts.Diagnostics.Class_0_incorrectly_extends_base_class_1); var staticBaseType = getTypeOfSymbol(baseType.symbol); checkTypeAssignableTo(staticType, getTypeWithoutConstructors(staticBaseType), node.name, ts.Diagnostics.Class_static_side_0_incorrectly_extends_base_class_static_side_1); - if (baseType.symbol !== resolveEntityName(node, baseTypeNode.typeName, 107455 /* Value */)) { + if (baseType.symbol !== resolveEntityName(node, baseTypeNode.typeName, 107455)) { error(baseTypeNode, ts.Diagnostics.Type_name_0_in_extends_clause_does_not_reference_constructor_function_for_0, typeToString(baseType)); } checkKindsOfPropertyMemberOverrides(type, baseType); @@ -14268,8 +14328,8 @@ var ts; if (produceDiagnostics) { var t = getTypeFromTypeReferenceNode(typeRefNode); if (t !== unknownType) { - var declaredType = (t.flags & 4096 /* Reference */) ? t.target : t; - if (declaredType.flags & (1024 /* Class */ | 2048 /* Interface */)) { + var declaredType = (t.flags & 4096) ? t.target : t; + if (declaredType.flags & (1024 | 2048)) { checkTypeAssignableTo(type, t, node.name, ts.Diagnostics.Class_0_incorrectly_implements_interface_1); } else { @@ -14286,45 +14346,45 @@ var ts; } } function getTargetSymbol(s) { - return s.flags & 16777216 /* Instantiated */ ? getSymbolLinks(s).target : s; + return s.flags & 16777216 ? getSymbolLinks(s).target : s; } function checkKindsOfPropertyMemberOverrides(type, baseType) { var baseProperties = getPropertiesOfObjectType(baseType); for (var i = 0, len = baseProperties.length; i < len; ++i) { var base = getTargetSymbol(baseProperties[i]); - if (base.flags & 134217728 /* Prototype */) { + if (base.flags & 134217728) { continue; } var derived = getTargetSymbol(getPropertyOfObjectType(type, base.name)); if (derived) { var baseDeclarationFlags = getDeclarationFlagsFromSymbol(base); var derivedDeclarationFlags = getDeclarationFlagsFromSymbol(derived); - if ((baseDeclarationFlags & 32 /* Private */) || (derivedDeclarationFlags & 32 /* Private */)) { + if ((baseDeclarationFlags & 32) || (derivedDeclarationFlags & 32)) { continue; } - if ((baseDeclarationFlags & 128 /* Static */) !== (derivedDeclarationFlags & 128 /* Static */)) { + if ((baseDeclarationFlags & 128) !== (derivedDeclarationFlags & 128)) { continue; } - if ((base.flags & derived.flags & 8192 /* Method */) || ((base.flags & 98308 /* PropertyOrAccessor */) && (derived.flags & 98308 /* PropertyOrAccessor */))) { + if ((base.flags & derived.flags & 8192) || ((base.flags & 98308) && (derived.flags & 98308))) { continue; } var errorMessage; - if (base.flags & 8192 /* Method */) { - if (derived.flags & 98304 /* Accessor */) { + if (base.flags & 8192) { + if (derived.flags & 98304) { errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_accessor; } else { - ts.Debug.assert((derived.flags & 4 /* Property */) !== 0); + ts.Debug.assert((derived.flags & 4) !== 0); errorMessage = ts.Diagnostics.Class_0_defines_instance_member_function_1_but_extended_class_2_defines_it_as_instance_member_property; } } - else if (base.flags & 4 /* Property */) { - ts.Debug.assert((derived.flags & 8192 /* Method */) !== 0); + else if (base.flags & 4) { + ts.Debug.assert((derived.flags & 8192) !== 0); errorMessage = ts.Diagnostics.Class_0_defines_instance_member_property_1_but_extended_class_2_defines_it_as_instance_member_function; } else { - ts.Debug.assert((base.flags & 98304 /* Accessor */) !== 0); - ts.Debug.assert((derived.flags & 8192 /* Method */) !== 0); + ts.Debug.assert((base.flags & 98304) !== 0); + ts.Debug.assert((derived.flags & 8192) !== 0); errorMessage = ts.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function; } error(derived.valueDeclaration.name, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type)); @@ -14332,7 +14392,7 @@ var ts; } } function isAccessor(kind) { - return kind === 130 /* GetAccessor */ || kind === 131 /* SetAccessor */; + return kind === 130 || kind === 131; } function areTypeParametersIdentical(list1, list2) { if (!list1 && !list2) { @@ -14385,7 +14445,7 @@ var ts; var typeName2 = typeToString(base); var errorInfo = ts.chainDiagnosticMessages(undefined, ts.Diagnostics.Named_properties_0_of_types_1_and_2_are_not_identical, prop.name, typeName1, typeName2); errorInfo = ts.chainDiagnosticMessages(errorInfo, ts.Diagnostics.Interface_0_cannot_simultaneously_extend_types_1_and_2, typeToString(type), typeName1, typeName2); - addDiagnostic(ts.createDiagnosticForNodeFromMessageChain(typeNode, errorInfo, host.getCompilerHost().getNewLine())); + diagnostics.add(ts.createDiagnosticForNodeFromMessageChain(typeNode, errorInfo)); } } } @@ -14399,7 +14459,7 @@ var ts; checkTypeNameIsReserved(node.name, ts.Diagnostics.Interface_name_cannot_be_0); checkExportsOnMergedDeclarations(node); var symbol = getSymbolOfNode(node); - var firstInterfaceDecl = ts.getDeclarationOfKind(symbol, 192 /* InterfaceDeclaration */); + var firstInterfaceDecl = ts.getDeclarationOfKind(symbol, 192); if (symbol.declarations.length > 1) { if (node !== firstInterfaceDecl && !areTypeParametersIdentical(firstInterfaceDecl.typeParameters, node.typeParameters)) { error(node.name, ts.Diagnostics.All_declarations_of_an_interface_must_have_identical_type_parameters); @@ -14428,14 +14488,14 @@ var ts; } function computeEnumMemberValues(node) { var nodeLinks = getNodeLinks(node); - if (!(nodeLinks.flags & 128 /* EnumValuesComputed */)) { + if (!(nodeLinks.flags & 128)) { var enumSymbol = getSymbolOfNode(node); var enumType = getDeclaredTypeOfSymbol(enumSymbol); var autoValue = 0; var ambient = ts.isInAmbientContext(node); var enumIsConst = ts.isConst(node); ts.forEach(node.members, function (member) { - if (member.name.kind !== 122 /* ComputedPropertyName */ && isNumericLiteralName(member.name.text)) { + if (member.name.kind !== 122 && isNumericLiteralName(member.name.text)) { error(member.name, ts.Diagnostics.An_enum_member_cannot_have_a_numeric_name); } var initializer = member.initializer; @@ -14465,24 +14525,24 @@ var ts; getNodeLinks(member).enumMemberValue = autoValue++; } }); - nodeLinks.flags |= 128 /* EnumValuesComputed */; + nodeLinks.flags |= 128; } function getConstantValueForEnumMemberInitializer(initializer, enumIsConst) { return evalConstant(initializer); function evalConstant(e) { switch (e.kind) { - case 161 /* PrefixUnaryExpression */: + case 161: var value = evalConstant(e.operand); if (value === undefined) { return undefined; } switch (e.operator) { - case 33 /* PlusToken */: return value; - case 34 /* MinusToken */: return -value; - case 47 /* TildeToken */: return enumIsConst ? ~value : undefined; + case 33: return value; + case 34: return -value; + case 47: return enumIsConst ? ~value : undefined; } return undefined; - case 163 /* BinaryExpression */: + case 163: if (!enumIsConst) { return undefined; } @@ -14495,26 +14555,26 @@ var ts; return undefined; } switch (e.operator) { - case 44 /* BarToken */: return left | right; - case 43 /* AmpersandToken */: return left & right; - case 41 /* GreaterThanGreaterThanToken */: return left >> right; - case 42 /* GreaterThanGreaterThanGreaterThanToken */: return left >>> right; - case 40 /* LessThanLessThanToken */: return left << right; - case 45 /* CaretToken */: return left ^ right; - case 35 /* AsteriskToken */: return left * right; - case 36 /* SlashToken */: return left / right; - case 33 /* PlusToken */: return left + right; - case 34 /* MinusToken */: return left - right; - case 37 /* PercentToken */: return left % right; + case 44: return left | right; + case 43: return left & right; + case 41: return left >> right; + case 42: return left >>> right; + case 40: return left << right; + case 45: return left ^ right; + case 35: return left * right; + case 36: return left / right; + case 33: return left + right; + case 34: return left - right; + case 37: return left % right; } return undefined; - case 7 /* NumericLiteral */: + case 7: return +e.text; - case 155 /* ParenthesizedExpression */: + case 155: return enumIsConst ? evalConstant(e.expression) : undefined; - case 64 /* Identifier */: - case 150 /* ElementAccessExpression */: - case 149 /* PropertyAccessExpression */: + case 64: + case 150: + case 149: if (!enumIsConst) { return undefined; } @@ -14522,13 +14582,13 @@ var ts; var currentType = getTypeOfSymbol(getSymbolOfNode(member.parent)); var enumType; var propertyName; - if (e.kind === 64 /* Identifier */) { + if (e.kind === 64) { enumType = currentType; propertyName = e.text; } else { - if (e.kind === 150 /* ElementAccessExpression */) { - if (e.argumentExpression === undefined || e.argumentExpression.kind !== 8 /* StringLiteral */) { + if (e.kind === 150) { + if (e.argumentExpression === undefined || e.argumentExpression.kind !== 8) { return undefined; } var enumType = getTypeOfNode(e.expression); @@ -14546,7 +14606,7 @@ var ts; return undefined; } var property = getPropertyOfObjectType(enumType, propertyName); - if (!property || !(property.flags & 8 /* EnumMember */)) { + if (!property || !(property.flags & 8)) { return undefined; } var propertyDecl = property.valueDeclaration; @@ -14584,7 +14644,7 @@ var ts; } var seenEnumMissingInitialInitializer = false; ts.forEach(enumSymbol.declarations, function (declaration) { - if (declaration.kind !== 194 /* EnumDeclaration */) { + if (declaration.kind !== 194) { return false; } var enumDeclaration = declaration; @@ -14607,7 +14667,7 @@ var ts; var declarations = symbol.declarations; for (var i = 0; i < declarations.length; i++) { var declaration = declarations[i]; - if ((declaration.kind === 191 /* ClassDeclaration */ || (declaration.kind === 190 /* FunctionDeclaration */ && ts.nodeIsPresent(declaration.body))) && !ts.isInAmbientContext(declaration)) { + if ((declaration.kind === 191 || (declaration.kind === 190 && ts.nodeIsPresent(declaration.body))) && !ts.isInAmbientContext(declaration)) { return declaration; } } @@ -14616,14 +14676,14 @@ var ts; function checkModuleDeclaration(node) { if (produceDiagnostics) { if (!checkGrammarModifiers(node)) { - if (!ts.isInAmbientContext(node) && node.name.kind === 8 /* StringLiteral */) { + if (!ts.isInAmbientContext(node) && node.name.kind === 8) { grammarErrorOnNode(node.name, ts.Diagnostics.Only_ambient_modules_can_use_quoted_names); } - else if (node.name.kind === 64 /* Identifier */ && node.body.kind === 196 /* ModuleBlock */) { + else if (node.name.kind === 64 && node.body.kind === 196) { var statements = node.body.statements; for (var i = 0, n = statements.length; i < n; i++) { var statement = statements[i]; - if (statement.kind === 198 /* ExportAssignment */) { + if (statement.kind === 198) { grammarErrorOnNode(statement, ts.Diagnostics.An_export_assignment_cannot_be_used_in_an_internal_module); } else if (ts.isExternalModuleImportDeclaration(statement)) { @@ -14636,7 +14696,7 @@ var ts; checkCollisionWithRequireExportsInGeneratedCode(node, node.name); checkExportsOnMergedDeclarations(node); var symbol = getSymbolOfNode(node); - if (symbol.flags & 512 /* ValueModule */ && symbol.declarations.length > 1 && !ts.isInAmbientContext(node) && ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums)) { + if (symbol.flags & 512 && symbol.declarations.length > 1 && !ts.isInAmbientContext(node) && ts.isInstantiatedModule(node, compilerOptions.preserveConstEnums)) { var classOrFunc = getFirstNonAmbientClassOrFunctionDeclaration(symbol); if (classOrFunc) { if (ts.getSourceFileOfNode(node) !== ts.getSourceFileOfNode(classOrFunc)) { @@ -14647,7 +14707,7 @@ var ts; } } } - if (node.name.kind === 8 /* StringLiteral */) { + if (node.name.kind === 8) { if (!isGlobalSourceFile(node.parent)) { error(node.name, ts.Diagnostics.Ambient_external_modules_cannot_be_nested_in_other_modules); } @@ -14659,7 +14719,7 @@ var ts; checkSourceElement(node.body); } function getFirstIdentifier(node) { - while (node.kind === 121 /* QualifiedName */) { + while (node.kind === 121) { node = node.left; } return node; @@ -14673,26 +14733,26 @@ var ts; if (ts.isInternalModuleImportDeclaration(node)) { target = resolveImport(symbol); if (target !== unknownSymbol) { - if (target.flags & 107455 /* Value */) { + if (target.flags & 107455) { var moduleName = getFirstIdentifier(node.moduleReference); - if (resolveEntityName(node, moduleName, 107455 /* Value */ | 1536 /* Namespace */).flags & 1536 /* Namespace */) { + if (resolveEntityName(node, moduleName, 107455 | 1536).flags & 1536) { checkExpressionOrQualifiedName(node.moduleReference); } else { error(moduleName, ts.Diagnostics.Module_0_is_hidden_by_a_local_declaration_with_the_same_name, ts.declarationNameToString(moduleName)); } } - if (target.flags & 793056 /* Type */) { + if (target.flags & 793056) { checkTypeNameIsReserved(node.name, ts.Diagnostics.Import_name_cannot_be_0); } } } else { - if (node.parent.kind === 207 /* SourceFile */) { + if (node.parent.kind === 207) { target = resolveImport(symbol); } - else if (node.parent.kind === 196 /* ModuleBlock */ && node.parent.parent.name.kind === 8 /* StringLiteral */) { - if (ts.getExternalModuleImportDeclarationExpression(node).kind === 8 /* StringLiteral */) { + else if (node.parent.kind === 196 && node.parent.parent.name.kind === 8) { + if (ts.getExternalModuleImportDeclarationExpression(node).kind === 8) { if (isExternalModuleNameRelative(ts.getExternalModuleImportDeclarationExpression(node).text)) { error(node, ts.Diagnostics.Import_declaration_in_an_ambient_external_module_declaration_cannot_reference_external_module_through_relative_external_module_name); target = unknownSymbol; @@ -14710,18 +14770,18 @@ var ts; } } if (target !== unknownSymbol) { - var excludedMeanings = (symbol.flags & 107455 /* Value */ ? 107455 /* Value */ : 0) | (symbol.flags & 793056 /* Type */ ? 793056 /* Type */ : 0) | (symbol.flags & 1536 /* Namespace */ ? 1536 /* Namespace */ : 0); + var excludedMeanings = (symbol.flags & 107455 ? 107455 : 0) | (symbol.flags & 793056 ? 793056 : 0) | (symbol.flags & 1536 ? 1536 : 0); if (target.flags & excludedMeanings) { error(node, ts.Diagnostics.Import_declaration_conflicts_with_local_declaration_of_0, symbolToString(symbol)); } } } function checkExportAssignment(node) { - if (!checkGrammarModifiers(node) && (node.flags & 243 /* Modifier */)) { + if (!checkGrammarModifiers(node) && (node.flags & 243)) { grammarErrorOnFirstToken(node, ts.Diagnostics.An_export_assignment_cannot_have_modifiers); } var container = node.parent; - if (container.kind !== 207 /* SourceFile */) { + if (container.kind !== 207) { container = container.parent; } checkTypeOfExportAssignmentSymbol(getSymbolOfNode(container)); @@ -14730,183 +14790,188 @@ var ts; if (!node) return; switch (node.kind) { - case 123 /* TypeParameter */: + case 123: return checkTypeParameter(node); - case 124 /* Parameter */: + case 124: return checkParameter(node); - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: + case 126: + case 125: return checkPropertyDeclaration(node); - case 136 /* FunctionType */: - case 137 /* ConstructorType */: - case 132 /* CallSignature */: - case 133 /* ConstructSignature */: + case 136: + case 137: + case 132: + case 133: return checkSignatureDeclaration(node); - case 134 /* IndexSignature */: + case 134: return checkSignatureDeclaration(node); - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: + case 128: + case 127: return checkMethodDeclaration(node); - case 129 /* Constructor */: + case 129: return checkConstructorDeclaration(node); - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: + case 130: + case 131: return checkAccessorDeclaration(node); - case 135 /* TypeReference */: + case 135: return checkTypeReference(node); - case 138 /* TypeQuery */: + case 138: return checkTypeQuery(node); - case 139 /* TypeLiteral */: + case 139: return checkTypeLiteral(node); - case 140 /* ArrayType */: + case 140: return checkArrayType(node); - case 141 /* TupleType */: + case 141: return checkTupleType(node); - case 142 /* UnionType */: + case 142: return checkUnionType(node); - case 143 /* ParenthesizedType */: + case 143: return checkSourceElement(node.type); - case 190 /* FunctionDeclaration */: + case 190: return checkFunctionDeclaration(node); - case 170 /* Block */: - case 196 /* ModuleBlock */: + case 170: + case 196: return checkBlock(node); - case 171 /* VariableStatement */: + case 171: return checkVariableStatement(node); - case 173 /* ExpressionStatement */: + case 173: return checkExpressionStatement(node); - case 174 /* IfStatement */: + case 174: return checkIfStatement(node); - case 175 /* DoStatement */: + case 175: return checkDoStatement(node); - case 176 /* WhileStatement */: + case 176: return checkWhileStatement(node); - case 177 /* ForStatement */: + case 177: return checkForStatement(node); - case 178 /* ForInStatement */: + case 178: return checkForInStatement(node); - case 179 /* ContinueStatement */: - case 180 /* BreakStatement */: + case 179: + case 180: return checkBreakOrContinueStatement(node); - case 181 /* ReturnStatement */: + case 181: return checkReturnStatement(node); - case 182 /* WithStatement */: + case 182: return checkWithStatement(node); - case 183 /* SwitchStatement */: + case 183: return checkSwitchStatement(node); - case 184 /* LabeledStatement */: + case 184: return checkLabeledStatement(node); - case 185 /* ThrowStatement */: + case 185: return checkThrowStatement(node); - case 186 /* TryStatement */: + case 186: return checkTryStatement(node); - case 188 /* VariableDeclaration */: + case 188: return checkVariableDeclaration(node); - case 146 /* BindingElement */: + case 146: return checkBindingElement(node); - case 191 /* ClassDeclaration */: + case 191: return checkClassDeclaration(node); - case 192 /* InterfaceDeclaration */: + case 192: return checkInterfaceDeclaration(node); - case 193 /* TypeAliasDeclaration */: + case 193: return checkTypeAliasDeclaration(node); - case 194 /* EnumDeclaration */: + case 194: return checkEnumDeclaration(node); - case 195 /* ModuleDeclaration */: + case 195: return checkModuleDeclaration(node); - case 197 /* ImportDeclaration */: + case 197: return checkImportDeclaration(node); - case 198 /* ExportAssignment */: + case 198: return checkExportAssignment(node); - case 172 /* EmptyStatement */: + case 172: checkGrammarForStatementInAmbientContext(node); return; - case 187 /* DebuggerStatement */: + case 187: checkGrammarForStatementInAmbientContext(node); return; } } function checkFunctionExpressionBodies(node) { switch (node.kind) { - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: + case 156: + case 157: ts.forEach(node.parameters, checkFunctionExpressionBodies); checkFunctionExpressionOrObjectLiteralMethodBody(node); break; - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: + case 128: + case 127: ts.forEach(node.parameters, checkFunctionExpressionBodies); if (ts.isObjectLiteralMethod(node)) { checkFunctionExpressionOrObjectLiteralMethodBody(node); } break; - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 190 /* FunctionDeclaration */: + case 129: + case 130: + case 131: + case 190: ts.forEach(node.parameters, checkFunctionExpressionBodies); break; - case 182 /* WithStatement */: + case 182: checkFunctionExpressionBodies(node.expression); break; - case 124 /* Parameter */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 144 /* ObjectBindingPattern */: - case 145 /* ArrayBindingPattern */: - case 146 /* BindingElement */: - case 147 /* ArrayLiteralExpression */: - case 148 /* ObjectLiteralExpression */: - case 204 /* PropertyAssignment */: - case 149 /* PropertyAccessExpression */: - case 150 /* ElementAccessExpression */: - case 151 /* CallExpression */: - case 152 /* NewExpression */: - case 153 /* TaggedTemplateExpression */: - case 165 /* TemplateExpression */: - case 169 /* TemplateSpan */: - case 154 /* TypeAssertionExpression */: - case 155 /* ParenthesizedExpression */: - case 159 /* TypeOfExpression */: - case 160 /* VoidExpression */: - case 158 /* DeleteExpression */: - case 161 /* PrefixUnaryExpression */: - case 162 /* PostfixUnaryExpression */: - case 163 /* BinaryExpression */: - case 164 /* ConditionalExpression */: - case 167 /* SpreadElementExpression */: - case 170 /* Block */: - case 196 /* ModuleBlock */: - case 171 /* VariableStatement */: - case 173 /* ExpressionStatement */: - case 174 /* IfStatement */: - case 175 /* DoStatement */: - case 176 /* WhileStatement */: - case 177 /* ForStatement */: - case 178 /* ForInStatement */: - case 179 /* ContinueStatement */: - case 180 /* BreakStatement */: - case 181 /* ReturnStatement */: - case 183 /* SwitchStatement */: - case 200 /* CaseClause */: - case 201 /* DefaultClause */: - case 184 /* LabeledStatement */: - case 185 /* ThrowStatement */: - case 186 /* TryStatement */: - case 203 /* CatchClause */: - case 188 /* VariableDeclaration */: - case 189 /* VariableDeclarationList */: - case 191 /* ClassDeclaration */: - case 194 /* EnumDeclaration */: - case 206 /* EnumMember */: - case 207 /* SourceFile */: + case 124: + case 126: + case 125: + case 144: + case 145: + case 146: + case 147: + case 148: + case 204: + case 149: + case 150: + case 151: + case 152: + case 153: + case 165: + case 169: + case 154: + case 155: + case 159: + case 160: + case 158: + case 161: + case 162: + case 163: + case 164: + case 167: + case 170: + case 196: + case 171: + case 173: + case 174: + case 175: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 183: + case 200: + case 201: + case 184: + case 185: + case 186: + case 203: + case 188: + case 189: + case 191: + case 194: + case 206: + case 207: ts.forEachChild(node, checkFunctionExpressionBodies); break; } } function checkSourceFile(node) { + var start = new Date().getTime(); + checkSourceFileWorker(node); + ts.checkTime += new Date().getTime() - start; + } + function checkSourceFileWorker(node) { var links = getNodeLinks(node); - if (!(links.flags & 1 /* TypeChecked */)) { + if (!(links.flags & 1)) { checkGrammarSourceFile(node); emitExtends = false; potentialThisCollisions.length = 0; @@ -14914,9 +14979,9 @@ var ts; checkFunctionExpressionBodies(node); if (ts.isExternalModule(node)) { var symbol = getExportAssignmentSymbol(node.symbol); - if (symbol && symbol.flags & 8388608 /* Import */) { + if (symbol && symbol.flags & 8388608) { getSymbolLinks(symbol).referenced = true; - markLinkedImportsAsReferenced(ts.getDeclarationOfKind(symbol, 197 /* ImportDeclaration */)); + markLinkedImportsAsReferenced(ts.getDeclarationOfKind(symbol, 197)); } } if (potentialThisCollisions.length) { @@ -14924,32 +14989,23 @@ var ts; potentialThisCollisions.length = 0; } if (emitExtends) { - links.flags |= 8 /* EmitExtends */; + links.flags |= 8; } - links.flags |= 1 /* TypeChecked */; + links.flags |= 1; } } - function getSortedDiagnostics() { - ts.Debug.assert(produceDiagnostics, "diagnostics are available only in the full typecheck mode"); - if (diagnosticsModified) { - diagnostics.sort(ts.compareDiagnostics); - diagnostics = ts.deduplicateSortedDiagnostics(diagnostics); - diagnosticsModified = false; - } - return diagnostics; - } function getDiagnostics(sourceFile) { throwIfNonDiagnosticsProducing(); if (sourceFile) { checkSourceFile(sourceFile); - return ts.filter(getSortedDiagnostics(), function (d) { return d.file === sourceFile; }); + return diagnostics.getDiagnostics(sourceFile.fileName); } ts.forEach(host.getSourceFiles(), checkSourceFile); - return getSortedDiagnostics(); + return diagnostics.getDiagnostics(); } function getGlobalDiagnostics() { throwIfNonDiagnosticsProducing(); - return ts.filter(getSortedDiagnostics(), function (d) { return !d.file; }); + return diagnostics.getGlobalDiagnostics(); } function throwIfNonDiagnosticsProducing() { if (!produceDiagnostics) { @@ -14959,7 +15015,7 @@ var ts; function isInsideWithStatementBody(node) { if (node) { while (node.parent) { - if (node.parent.kind === 182 /* WithStatement */ && node.parent.statement === node) { + if (node.parent.kind === 182 && node.parent.statement === node) { return true; } node = node.parent; @@ -14995,27 +15051,27 @@ var ts; copySymbols(location.locals, meaning); } switch (location.kind) { - case 207 /* SourceFile */: + case 207: if (!ts.isExternalModule(location)) break; - case 195 /* ModuleDeclaration */: - copySymbols(getSymbolOfNode(location).exports, meaning & 8914931 /* ModuleMember */); + case 195: + copySymbols(getSymbolOfNode(location).exports, meaning & 8914931); break; - case 194 /* EnumDeclaration */: - copySymbols(getSymbolOfNode(location).exports, meaning & 8 /* EnumMember */); + case 194: + copySymbols(getSymbolOfNode(location).exports, meaning & 8); break; - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - if (!(memberFlags & 128 /* Static */)) { - copySymbols(getSymbolOfNode(location).members, meaning & 793056 /* Type */); + case 191: + case 192: + if (!(memberFlags & 128)) { + copySymbols(getSymbolOfNode(location).members, meaning & 793056); } break; - case 156 /* FunctionExpression */: + case 156: if (location.name) { copySymbol(location.symbol, meaning); } break; - case 203 /* CatchClause */: + case 203: if (location.name.text) { copySymbol(location.symbol, meaning); } @@ -15028,91 +15084,91 @@ var ts; return ts.mapToArray(symbols); } function isTypeDeclarationName(name) { - return name.kind == 64 /* Identifier */ && isTypeDeclaration(name.parent) && name.parent.name === name; + return name.kind == 64 && isTypeDeclaration(name.parent) && name.parent.name === name; } function isTypeDeclaration(node) { switch (node.kind) { - case 123 /* TypeParameter */: - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 193 /* TypeAliasDeclaration */: - case 194 /* EnumDeclaration */: + case 123: + case 191: + case 192: + case 193: + case 194: return true; } } function isTypeReferenceIdentifier(entityName) { var node = entityName; - while (node.parent && node.parent.kind === 121 /* QualifiedName */) + while (node.parent && node.parent.kind === 121) node = node.parent; - return node.parent && node.parent.kind === 135 /* TypeReference */; + return node.parent && node.parent.kind === 135; } function isTypeNode(node) { - if (135 /* FirstTypeNode */ <= node.kind && node.kind <= 143 /* LastTypeNode */) { + if (135 <= node.kind && node.kind <= 143) { return true; } switch (node.kind) { - case 110 /* AnyKeyword */: - case 117 /* NumberKeyword */: - case 119 /* StringKeyword */: - case 111 /* BooleanKeyword */: + case 110: + case 117: + case 119: + case 111: return true; - case 98 /* VoidKeyword */: - return node.parent.kind !== 160 /* VoidExpression */; - case 8 /* StringLiteral */: - return node.parent.kind === 124 /* Parameter */; - case 64 /* Identifier */: - if (node.parent.kind === 121 /* QualifiedName */ && node.parent.right === node) { + case 98: + return node.parent.kind !== 160; + case 8: + return node.parent.kind === 124; + case 64: + if (node.parent.kind === 121 && node.parent.right === node) { node = node.parent; } - case 121 /* QualifiedName */: - ts.Debug.assert(node.kind === 64 /* Identifier */ || node.kind === 121 /* QualifiedName */, "'node' was expected to be a qualified name or identifier in 'isTypeNode'."); + case 121: + ts.Debug.assert(node.kind === 64 || node.kind === 121, "'node' was expected to be a qualified name or identifier in 'isTypeNode'."); var parent = node.parent; - if (parent.kind === 138 /* TypeQuery */) { + if (parent.kind === 138) { return false; } - if (135 /* FirstTypeNode */ <= parent.kind && parent.kind <= 143 /* LastTypeNode */) { + if (135 <= parent.kind && parent.kind <= 143) { return true; } switch (parent.kind) { - case 123 /* TypeParameter */: + case 123: return node === parent.constraint; - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 124 /* Parameter */: - case 188 /* VariableDeclaration */: + case 126: + case 125: + case 124: + case 188: return node === parent.type; - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: - case 129 /* Constructor */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: + case 190: + case 156: + case 157: + case 129: + case 128: + case 127: + case 130: + case 131: return node === parent.type; - case 132 /* CallSignature */: - case 133 /* ConstructSignature */: - case 134 /* IndexSignature */: + case 132: + case 133: + case 134: return node === parent.type; - case 154 /* TypeAssertionExpression */: + case 154: return node === parent.type; - case 151 /* CallExpression */: - case 152 /* NewExpression */: + case 151: + case 152: return parent.typeArguments && ts.indexOf(parent.typeArguments, node) >= 0; - case 153 /* TaggedTemplateExpression */: + case 153: return false; } } return false; } function getLeftSideOfImportOrExportAssignment(nodeOnRightSide) { - while (nodeOnRightSide.parent.kind === 121 /* QualifiedName */) { + while (nodeOnRightSide.parent.kind === 121) { nodeOnRightSide = nodeOnRightSide.parent; } - if (nodeOnRightSide.parent.kind === 197 /* ImportDeclaration */) { + if (nodeOnRightSide.parent.kind === 197) { return nodeOnRightSide.parent.moduleReference === nodeOnRightSide && nodeOnRightSide.parent; } - if (nodeOnRightSide.parent.kind === 198 /* ExportAssignment */) { + if (nodeOnRightSide.parent.kind === 198) { return nodeOnRightSide.parent.exportName === nodeOnRightSide && nodeOnRightSide.parent; } return undefined; @@ -15121,16 +15177,16 @@ var ts; return getLeftSideOfImportOrExportAssignment(node) !== undefined; } function isRightSideOfQualifiedNameOrPropertyAccess(node) { - return (node.parent.kind === 121 /* QualifiedName */ && node.parent.right === node) || (node.parent.kind === 149 /* PropertyAccessExpression */ && node.parent.name === node); + return (node.parent.kind === 121 && node.parent.right === node) || (node.parent.kind === 149 && node.parent.name === node); } function getSymbolOfEntityNameOrPropertyAccessExpression(entityName) { if (ts.isDeclarationOrFunctionExpressionOrCatchVariableName(entityName)) { return getSymbolOfNode(entityName.parent); } - if (entityName.parent.kind === 198 /* ExportAssignment */) { - return resolveEntityName(entityName.parent.parent, entityName, 107455 /* Value */ | 793056 /* Type */ | 1536 /* Namespace */ | 8388608 /* Import */); + if (entityName.parent.kind === 198) { + return resolveEntityName(entityName.parent.parent, entityName, 107455 | 793056 | 1536 | 8388608); } - if (entityName.kind !== 149 /* PropertyAccessExpression */) { + if (entityName.kind !== 149) { if (isInRightSideOfImportOrExportAssignment(entityName)) { return getSymbolOfPartOfRightHandSideOfImport(entityName); } @@ -15142,18 +15198,18 @@ var ts; if (ts.getFullWidth(entityName) === 0) { return undefined; } - if (entityName.kind === 64 /* Identifier */) { - var meaning = 107455 /* Value */ | 8388608 /* Import */; + if (entityName.kind === 64) { + var meaning = 107455 | 8388608; return resolveEntityName(entityName, entityName, meaning); } - else if (entityName.kind === 149 /* PropertyAccessExpression */) { + else if (entityName.kind === 149) { var symbol = getNodeLinks(entityName).resolvedSymbol; if (!symbol) { checkPropertyAccessExpression(entityName); } return getNodeLinks(entityName).resolvedSymbol; } - else if (entityName.kind === 121 /* QualifiedName */) { + else if (entityName.kind === 121) { var symbol = getNodeLinks(entityName).resolvedSymbol; if (!symbol) { checkQualifiedName(entityName); @@ -15162,8 +15218,8 @@ var ts; } } else if (isTypeReferenceIdentifier(entityName)) { - var meaning = entityName.parent.kind === 135 /* TypeReference */ ? 793056 /* Type */ : 1536 /* Namespace */; - meaning |= 8388608 /* Import */; + var meaning = entityName.parent.kind === 135 ? 793056 : 1536; + meaning |= 8388608; return resolveEntityName(entityName, entityName, meaning); } return undefined; @@ -15175,32 +15231,32 @@ var ts; if (ts.isDeclarationOrFunctionExpressionOrCatchVariableName(node)) { return getSymbolOfNode(node.parent); } - if (node.kind === 64 /* Identifier */ && isInRightSideOfImportOrExportAssignment(node)) { - return node.parent.kind === 198 /* ExportAssignment */ ? getSymbolOfEntityNameOrPropertyAccessExpression(node) : getSymbolOfPartOfRightHandSideOfImport(node); + if (node.kind === 64 && isInRightSideOfImportOrExportAssignment(node)) { + return node.parent.kind === 198 ? getSymbolOfEntityNameOrPropertyAccessExpression(node) : getSymbolOfPartOfRightHandSideOfImport(node); } switch (node.kind) { - case 64 /* Identifier */: - case 149 /* PropertyAccessExpression */: - case 121 /* QualifiedName */: + case 64: + case 149: + case 121: return getSymbolOfEntityNameOrPropertyAccessExpression(node); - case 92 /* ThisKeyword */: - case 90 /* SuperKeyword */: + case 92: + case 90: var type = checkExpression(node); return type.symbol; - case 112 /* ConstructorKeyword */: + case 112: var constructorDeclaration = node.parent; - if (constructorDeclaration && constructorDeclaration.kind === 129 /* Constructor */) { + if (constructorDeclaration && constructorDeclaration.kind === 129) { return constructorDeclaration.parent.symbol; } return undefined; - case 8 /* StringLiteral */: + case 8: if (ts.isExternalModuleImportDeclaration(node.parent.parent) && ts.getExternalModuleImportDeclarationExpression(node.parent.parent) === node) { var importSymbol = getSymbolOfNode(node.parent.parent); var moduleType = getTypeOfSymbol(importSymbol); return moduleType ? moduleType.symbol : undefined; } - case 7 /* NumericLiteral */: - if (node.parent.kind == 150 /* ElementAccessExpression */ && node.parent.argumentExpression === node) { + case 7: + if (node.parent.kind == 150 && node.parent.argumentExpression === node) { var objectType = checkExpression(node.parent.expression); if (objectType === unknownType) return undefined; @@ -15214,8 +15270,8 @@ var ts; return undefined; } function getShorthandAssignmentValueSymbol(location) { - if (location && location.kind === 205 /* ShorthandPropertyAssignment */) { - return resolveEntityName(location, location.name, 107455 /* Value */); + if (location && location.kind === 205) { + return resolveEntityName(location, location.name, 107455); } return undefined; } @@ -15261,7 +15317,7 @@ var ts; function getAugmentedPropertiesOfType(type) { var type = getApparentType(type); var propsByName = createSymbolTable(getPropertiesOfType(type)); - if (getSignaturesOfType(type, 0 /* Call */).length || getSignaturesOfType(type, 1 /* Construct */).length) { + if (getSignaturesOfType(type, 0).length || getSignaturesOfType(type, 1).length) { ts.forEach(getPropertiesOfType(globalFunctionType), function (p) { if (!ts.hasProperty(propsByName, p.name)) { propsByName[p.name] = p; @@ -15271,7 +15327,7 @@ var ts; return getNamedMembers(propsByName); } function getRootSymbols(symbol) { - if (symbol.flags & 268435456 /* UnionProperty */) { + if (symbol.flags & 268435456) { var symbols = []; var name = symbol.name; ts.forEach(getSymbolLinks(symbol).unionType.types, function (t) { @@ -15279,7 +15335,7 @@ var ts; }); return symbols; } - else if (symbol.flags & 67108864 /* Transient */) { + else if (symbol.flags & 67108864) { var target = getSymbolLinks(symbol).target; if (target) { return [target]; @@ -15288,7 +15344,7 @@ var ts; return [symbol]; } function isExternalModuleSymbol(symbol) { - return symbol.flags & 512 /* ValueModule */ && symbol.declarations.length === 1 && symbol.declarations[0].kind === 207 /* SourceFile */; + return symbol.flags & 512 && symbol.declarations.length === 1 && symbol.declarations[0].kind === 207; } function isNodeDescendentOf(node, ancestor) { while (node) { @@ -15302,11 +15358,11 @@ var ts; for (var node = container; isNodeDescendentOf(node, container); node = node.nextContainer) { if (node.locals && ts.hasProperty(node.locals, name)) { var symbolWithRelevantName = node.locals[name]; - if (symbolWithRelevantName.flags & (107455 /* Value */ | 1048576 /* ExportValue */)) { + if (symbolWithRelevantName.flags & (107455 | 1048576)) { return false; } - if (symbolWithRelevantName.flags & 8388608 /* Import */) { - var importDeclarationWithRelevantName = ts.getDeclarationOfKind(symbolWithRelevantName, 197 /* ImportDeclaration */); + if (symbolWithRelevantName.flags & 8388608) { + var importDeclarationWithRelevantName = ts.getDeclarationOfKind(symbolWithRelevantName, 197); if (isReferencedImportDeclaration(importDeclarationWithRelevantName)) { return false; } @@ -15330,7 +15386,7 @@ var ts; function getLocalNameForSymbol(symbol, location) { var node = location; while (node) { - if ((node.kind === 195 /* ModuleDeclaration */ || node.kind === 194 /* EnumDeclaration */) && getSymbolOfNode(node) === symbol) { + if ((node.kind === 195 || node.kind === 194) && getSymbolOfNode(node) === symbol) { return getLocalNameOfContainer(node); } node = node.parent; @@ -15341,7 +15397,7 @@ var ts; var symbol = getNodeLinks(node).resolvedSymbol; if (symbol) { var exportSymbol = getExportSymbolOfValueSymbolIfExported(symbol); - if (symbol !== exportSymbol && !(exportSymbol.flags & 944 /* ExportHasLocal */)) { + if (symbol !== exportSymbol && !(exportSymbol.flags & 944)) { symbol = exportSymbol; } if (symbol.parent) { @@ -15354,17 +15410,14 @@ var ts; return symbol && symbolIsValue(symbol) && !isConstEnumSymbol(symbol) ? symbolToString(symbol) : undefined; } function isTopLevelValueImportWithEntityName(node) { - if (node.parent.kind !== 207 /* SourceFile */ || !ts.isInternalModuleImportDeclaration(node)) { + if (node.parent.kind !== 207 || !ts.isInternalModuleImportDeclaration(node)) { return false; } return isImportResolvedToValue(getSymbolOfNode(node)); } - function hasSemanticErrors(sourceFile) { - return getDiagnostics(sourceFile).length > 0 || getGlobalDiagnostics().length > 0; - } function isImportResolvedToValue(symbol) { var target = resolveImport(symbol); - return target !== unknownSymbol && target.flags & 107455 /* Value */ && !isConstEnumOrConstEnumOnlyModule(target); + return target !== unknownSymbol && target.flags & 107455 && !isConstEnumOrConstEnumOnlyModule(target); } function isConstEnumOrConstEnumOnlyModule(s) { return isConstEnumSymbol(s) || s.constEnumOnlyModule; @@ -15374,7 +15427,7 @@ var ts; if (getSymbolLinks(symbol).referenced) { return true; } - if (node.flags & 1 /* Export */) { + if (node.flags & 1) { return isImportResolvedToValue(symbol); } return false; @@ -15395,11 +15448,14 @@ var ts; return getNodeLinks(node).enumMemberValue; } function getConstantValue(node) { + if (node.kind === 206) { + return getEnumMemberValue(node); + } var symbol = getNodeLinks(node).resolvedSymbol; - if (symbol && (symbol.flags & 8 /* EnumMember */)) { + if (symbol && (symbol.flags & 8)) { var declaration = symbol.valueDeclaration; var constantValue; - if (declaration.kind === 206 /* EnumMember */) { + if (declaration.kind === 206) { return getEnumMemberValue(declaration); } } @@ -15407,7 +15463,7 @@ var ts; } function writeTypeOfDeclaration(declaration, enclosingDeclaration, flags, writer) { var symbol = getSymbolOfNode(declaration); - var type = symbol && !(symbol.flags & (2048 /* TypeLiteral */ | 131072 /* Signature */)) ? getTypeOfSymbol(symbol) : unknownType; + var type = symbol && !(symbol.flags & (2048 | 131072)) ? getTypeOfSymbol(symbol) : unknownType; getSymbolDisplayBuilder().buildTypeDisplay(type, writer, enclosingDeclaration, flags); } function writeReturnTypeOfSignatureDeclaration(signatureDeclaration, enclosingDeclaration, flags, writer) { @@ -15415,7 +15471,7 @@ var ts; getSymbolDisplayBuilder().buildTypeDisplay(getReturnTypeOfSignature(signature), writer, enclosingDeclaration, flags); } function isUnknownIdentifier(location, name) { - return !resolveName(location, name, 107455 /* Value */, undefined, undefined); + return !resolveName(location, name, 107455, undefined, undefined); } function createResolver() { return { @@ -15424,9 +15480,7 @@ var ts; getExportAssignmentName: getExportAssignmentName, isReferencedImportDeclaration: isReferencedImportDeclaration, getNodeCheckFlags: getNodeCheckFlags, - getEnumMemberValue: getEnumMemberValue, isTopLevelValueImportWithEntityName: isTopLevelValueImportWithEntityName, - hasSemanticErrors: hasSemanticErrors, isDeclarationVisible: isDeclarationVisible, isImplementationOfOverload: isImplementationOfOverload, writeTypeOfDeclaration: writeTypeOfDeclaration, @@ -15440,7 +15494,6 @@ var ts; function initializeTypeChecker() { ts.forEach(host.getSourceFiles(), function (file) { ts.bindSourceFile(file); - ts.forEach(file.semanticDiagnostics, addDiagnostic); }); ts.forEach(host.getSourceFiles(), function (file) { if (!ts.isExternalModule(file)) { @@ -15459,29 +15512,29 @@ var ts; globalNumberType = getGlobalType("Number"); globalBooleanType = getGlobalType("Boolean"); globalRegExpType = getGlobalType("RegExp"); - globalTemplateStringsArrayType = languageVersion >= 2 /* ES6 */ ? getGlobalType("TemplateStringsArray") : unknownType; + globalTemplateStringsArrayType = languageVersion >= 2 ? getGlobalType("TemplateStringsArray") : unknownType; anyArrayType = createArrayType(anyType); } function checkGrammarModifiers(node) { switch (node.kind) { - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 129 /* Constructor */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 134 /* IndexSignature */: - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 195 /* ModuleDeclaration */: - case 194 /* EnumDeclaration */: - case 198 /* ExportAssignment */: - case 171 /* VariableStatement */: - case 190 /* FunctionDeclaration */: - case 193 /* TypeAliasDeclaration */: - case 197 /* ImportDeclaration */: - case 124 /* Parameter */: + case 130: + case 131: + case 129: + case 126: + case 125: + case 128: + case 127: + case 134: + case 191: + case 192: + case 195: + case 194: + case 198: + case 171: + case 190: + case 193: + case 197: + case 124: break; default: return false; @@ -15494,14 +15547,14 @@ var ts; for (var i = 0, n = node.modifiers.length; i < n; i++) { var modifier = node.modifiers[i]; switch (modifier.kind) { - case 107 /* PublicKeyword */: - case 106 /* ProtectedKeyword */: - case 105 /* PrivateKeyword */: + case 107: + case 106: + case 105: var text; - if (modifier.kind === 107 /* PublicKeyword */) { + if (modifier.kind === 107) { text = "public"; } - else if (modifier.kind === 106 /* ProtectedKeyword */) { + else if (modifier.kind === 106) { text = "protected"; lastProtected = modifier; } @@ -15509,81 +15562,81 @@ var ts; text = "private"; lastPrivate = modifier; } - if (flags & 112 /* AccessibilityModifier */) { + if (flags & 112) { return grammarErrorOnNode(modifier, ts.Diagnostics.Accessibility_modifier_already_seen); } - else if (flags & 128 /* Static */) { + else if (flags & 128) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, text, "static"); } - else if (node.parent.kind === 196 /* ModuleBlock */ || node.parent.kind === 207 /* SourceFile */) { + else if (node.parent.kind === 196 || node.parent.kind === 207) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, text); } flags |= ts.modifierToFlag(modifier.kind); break; - case 108 /* StaticKeyword */: - if (flags & 128 /* Static */) { + case 108: + if (flags & 128) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "static"); } - else if (node.parent.kind === 196 /* ModuleBlock */ || node.parent.kind === 207 /* SourceFile */) { + else if (node.parent.kind === 196 || node.parent.kind === 207) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_module_element, "static"); } - else if (node.kind === 124 /* Parameter */) { + else if (node.kind === 124) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "static"); } - flags |= 128 /* Static */; + flags |= 128; lastStatic = modifier; break; - case 77 /* ExportKeyword */: - if (flags & 1 /* Export */) { + case 77: + if (flags & 1) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "export"); } - else if (flags & 2 /* Ambient */) { + else if (flags & 2) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_must_precede_1_modifier, "export", "declare"); } - else if (node.parent.kind === 191 /* ClassDeclaration */) { + else if (node.parent.kind === 191) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "export"); } - else if (node.kind === 124 /* Parameter */) { + else if (node.kind === 124) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "export"); } - flags |= 1 /* Export */; + flags |= 1; break; - case 113 /* DeclareKeyword */: - if (flags & 2 /* Ambient */) { + case 113: + if (flags & 2) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_already_seen, "declare"); } - else if (node.parent.kind === 191 /* ClassDeclaration */) { + else if (node.parent.kind === 191) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_class_element, "declare"); } - else if (node.kind === 124 /* Parameter */) { + else if (node.kind === 124) { return grammarErrorOnNode(modifier, ts.Diagnostics._0_modifier_cannot_appear_on_a_parameter, "declare"); } - else if (ts.isInAmbientContext(node.parent) && node.parent.kind === 196 /* ModuleBlock */) { + else if (ts.isInAmbientContext(node.parent) && node.parent.kind === 196) { return grammarErrorOnNode(modifier, ts.Diagnostics.A_declare_modifier_cannot_be_used_in_an_already_ambient_context); } - flags |= 2 /* Ambient */; + flags |= 2; lastDeclare = modifier; break; } } - if (node.kind === 129 /* Constructor */) { - if (flags & 128 /* Static */) { + if (node.kind === 129) { + if (flags & 128) { return grammarErrorOnNode(lastStatic, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "static"); } - else if (flags & 64 /* Protected */) { + else if (flags & 64) { return grammarErrorOnNode(lastProtected, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "protected"); } - else if (flags & 32 /* Private */) { + else if (flags & 32) { return grammarErrorOnNode(lastPrivate, ts.Diagnostics._0_modifier_cannot_appear_on_a_constructor_declaration, "private"); } } - else if (node.kind === 197 /* ImportDeclaration */ && flags & 2 /* Ambient */) { + else if (node.kind === 197 && flags & 2) { return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_import_declaration, "declare"); } - else if (node.kind === 192 /* InterfaceDeclaration */ && flags & 2 /* Ambient */) { + else if (node.kind === 192 && flags & 2) { return grammarErrorOnNode(lastDeclare, ts.Diagnostics.A_declare_modifier_cannot_be_used_with_an_interface_declaration, "declare"); } - else if (node.kind === 124 /* Parameter */ && (flags & 112 /* AccessibilityModifier */) && ts.isBindingPattern(node.name)) { + else if (node.kind === 124 && (flags & 112) && ts.isBindingPattern(node.name)) { return grammarErrorOnNode(node, ts.Diagnostics.A_parameter_property_may_not_be_a_binding_pattern); } } @@ -15654,7 +15707,7 @@ var ts; else if (parameter.dotDotDotToken) { return grammarErrorOnNode(parameter.dotDotDotToken, ts.Diagnostics.An_index_signature_cannot_have_a_rest_parameter); } - else if (parameter.flags & 243 /* Modifier */) { + else if (parameter.flags & 243) { return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_cannot_have_an_accessibility_modifier); } else if (parameter.questionToken) { @@ -15666,7 +15719,7 @@ var ts; else if (!parameter.type) { return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_must_have_a_type_annotation); } - else if (parameter.type.kind !== 119 /* StringKeyword */ && parameter.type.kind !== 117 /* NumberKeyword */) { + else if (parameter.type.kind !== 119 && parameter.type.kind !== 117) { return grammarErrorOnNode(parameter.name, ts.Diagnostics.An_index_signature_parameter_type_must_be_string_or_number); } else if (!node.type) { @@ -15674,7 +15727,7 @@ var ts; } } function checkGrammarForIndexSignatureModifier(node) { - if (node.flags & 243 /* Modifier */) { + if (node.flags & 243) { grammarErrorOnFirstToken(node, ts.Diagnostics.Modifiers_not_permitted_on_index_signature_members); } } @@ -15697,7 +15750,7 @@ var ts; var sourceFile = ts.getSourceFileOfNode(node); for (var i = 0, n = arguments.length; i < n; i++) { var arg = arguments[i]; - if (arg.kind === 168 /* OmittedExpression */) { + if (arg.kind === 168) { return grammarErrorAtPos(sourceFile, arg.pos, 0, ts.Diagnostics.Argument_expression_expected); } } @@ -15724,7 +15777,7 @@ var ts; for (var i = 0, n = node.heritageClauses.length; i < n; i++) { ts.Debug.assert(i <= 2); var heritageClause = node.heritageClauses[i]; - if (heritageClause.token === 78 /* ExtendsKeyword */) { + if (heritageClause.token === 78) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); } @@ -15737,7 +15790,7 @@ var ts; seenExtendsClause = true; } else { - ts.Debug.assert(heritageClause.token === 101 /* ImplementsKeyword */); + ts.Debug.assert(heritageClause.token === 101); if (seenImplementsClause) { return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.implements_clause_already_seen); } @@ -15753,14 +15806,14 @@ var ts; for (var i = 0, n = node.heritageClauses.length; i < n; i++) { ts.Debug.assert(i <= 1); var heritageClause = node.heritageClauses[i]; - if (heritageClause.token === 78 /* ExtendsKeyword */) { + if (heritageClause.token === 78) { if (seenExtendsClause) { return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.extends_clause_already_seen); } seenExtendsClause = true; } else { - ts.Debug.assert(heritageClause.token === 101 /* ImplementsKeyword */); + ts.Debug.assert(heritageClause.token === 101); return grammarErrorOnFirstToken(heritageClause, ts.Diagnostics.Interface_declaration_cannot_have_implements_clause); } checkGrammarHeritageClause(heritageClause); @@ -15769,14 +15822,14 @@ var ts; return false; } function checkGrammarComputedPropertyName(node) { - if (node.kind !== 122 /* ComputedPropertyName */) { + if (node.kind !== 122) { return false; } var computedPropertyName = node; - if (languageVersion < 2 /* ES6 */) { + if (languageVersion < 2) { return grammarErrorOnNode(node, ts.Diagnostics.Computed_property_names_are_only_available_when_targeting_ECMAScript_6_and_higher); } - else if (computedPropertyName.expression.kind === 163 /* BinaryExpression */ && computedPropertyName.expression.operator === 23 /* CommaToken */) { + else if (computedPropertyName.expression.kind === 163 && computedPropertyName.expression.operator === 23) { return grammarErrorOnNode(computedPropertyName.expression, ts.Diagnostics.A_comma_expression_is_not_allowed_in_a_computed_property_name); } } @@ -15799,29 +15852,29 @@ var ts; var GetAccessor = 2; var SetAccesor = 4; var GetOrSetAccessor = GetAccessor | SetAccesor; - var inStrictMode = (node.parserContextFlags & 1 /* StrictMode */) !== 0; + var inStrictMode = (node.parserContextFlags & 1) !== 0; for (var i = 0, n = node.properties.length; i < n; i++) { var prop = node.properties[i]; var name = prop.name; - if (prop.kind === 168 /* OmittedExpression */ || name.kind === 122 /* ComputedPropertyName */) { + if (prop.kind === 168 || name.kind === 122) { checkGrammarComputedPropertyName(name); continue; } var currentKind; - if (prop.kind === 204 /* PropertyAssignment */ || prop.kind === 205 /* ShorthandPropertyAssignment */) { + if (prop.kind === 204 || prop.kind === 205) { checkGrammarForInvalidQuestionMark(prop, prop.questionToken, ts.Diagnostics.An_object_member_cannot_be_declared_optional); - if (name.kind === 7 /* NumericLiteral */) { + if (name.kind === 7) { checkGrammarNumbericLiteral(name); } currentKind = Property; } - else if (prop.kind === 128 /* MethodDeclaration */) { + else if (prop.kind === 128) { currentKind = Property; } - else if (prop.kind === 130 /* GetAccessor */) { + else if (prop.kind === 130) { currentKind = GetAccessor; } - else if (prop.kind === 131 /* SetAccessor */) { + else if (prop.kind === 131) { currentKind = SetAccesor; } else { @@ -15853,7 +15906,7 @@ var ts; } function checkGrammarAccessor(accessor) { var kind = accessor.kind; - if (languageVersion < 1 /* ES5 */) { + if (languageVersion < 1) { return grammarErrorOnNode(accessor.name, ts.Diagnostics.Accessors_are_only_available_when_targeting_ECMAScript_5_and_higher); } else if (ts.isInAmbientContext(accessor)) { @@ -15865,10 +15918,10 @@ var ts; else if (accessor.typeParameters) { return grammarErrorOnNode(accessor.name, ts.Diagnostics.An_accessor_cannot_have_type_parameters); } - else if (kind === 130 /* GetAccessor */ && accessor.parameters.length) { + else if (kind === 130 && accessor.parameters.length) { return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_get_accessor_cannot_have_parameters); } - else if (kind === 131 /* SetAccessor */) { + else if (kind === 131) { if (accessor.type) { return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_set_accessor_cannot_have_a_return_type_annotation); } @@ -15880,7 +15933,7 @@ var ts; if (parameter.dotDotDotToken) { return grammarErrorOnNode(parameter.dotDotDotToken, ts.Diagnostics.A_set_accessor_cannot_have_rest_parameter); } - else if (parameter.flags & 243 /* Modifier */) { + else if (parameter.flags & 243) { return grammarErrorOnNode(accessor.name, ts.Diagnostics.A_parameter_property_is_only_allowed_in_a_constructor_implementation); } else if (parameter.questionToken) { @@ -15893,7 +15946,7 @@ var ts; } } function checkGrammarForDisallowedComputedProperty(node, message) { - if (node.kind === 122 /* ComputedPropertyName */) { + if (node.kind === 122) { return grammarErrorOnNode(node, message); } } @@ -15901,7 +15954,7 @@ var ts; if (checkGrammarDisallowedModifiersInBlockOrObjectLiteralExpression(node) || checkGrammarFunctionLikeDeclaration(node) || checkGrammarForGenerator(node)) { return true; } - if (node.parent.kind === 148 /* ObjectLiteralExpression */) { + if (node.parent.kind === 148) { if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) { return true; } @@ -15909,7 +15962,7 @@ var ts; return grammarErrorAtPos(getSourceFile(node), node.end - 1, ";".length, ts.Diagnostics._0_expected, "{"); } } - if (node.parent.kind === 191 /* ClassDeclaration */) { + if (node.parent.kind === 191) { if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional)) { return true; } @@ -15920,21 +15973,21 @@ var ts; return checkGrammarForDisallowedComputedProperty(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_method_overloads); } } - else if (node.parent.kind === 192 /* InterfaceDeclaration */) { + else if (node.parent.kind === 192) { return checkGrammarForDisallowedComputedProperty(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_interfaces); } - else if (node.parent.kind === 139 /* TypeLiteral */) { + else if (node.parent.kind === 139) { return checkGrammarForDisallowedComputedProperty(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_type_literals); } } function isIterationStatement(node, lookInLabeledStatements) { switch (node.kind) { - case 177 /* ForStatement */: - case 178 /* ForInStatement */: - case 175 /* DoStatement */: - case 176 /* WhileStatement */: + case 177: + case 178: + case 175: + case 176: return true; - case 184 /* LabeledStatement */: + case 184: return lookInLabeledStatements && isIterationStatement(node.statement, lookInLabeledStatements); } return false; @@ -15946,17 +15999,17 @@ var ts; return grammarErrorOnNode(node, ts.Diagnostics.Jump_target_cannot_cross_function_boundary); } switch (current.kind) { - case 184 /* LabeledStatement */: + case 184: if (node.label && current.label.text === node.label.text) { - var isMisplacedContinueLabel = node.kind === 179 /* ContinueStatement */ && !isIterationStatement(current.statement, true); + var isMisplacedContinueLabel = node.kind === 179 && !isIterationStatement(current.statement, true); if (isMisplacedContinueLabel) { return grammarErrorOnNode(node, ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement); } return false; } break; - case 183 /* SwitchStatement */: - if (node.kind === 180 /* BreakStatement */ && !node.label) { + case 183: + if (node.kind === 180 && !node.label) { return false; } break; @@ -15969,11 +16022,11 @@ var ts; current = current.parent; } if (node.label) { - var message = node.kind === 180 /* BreakStatement */ ? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement : ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; + var message = node.kind === 180 ? ts.Diagnostics.A_break_statement_can_only_jump_to_a_label_of_an_enclosing_statement : ts.Diagnostics.A_continue_statement_can_only_jump_to_a_label_of_an_enclosing_iteration_statement; return grammarErrorOnNode(node, message); } else { - var message = node.kind === 180 /* BreakStatement */ ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; + var message = node.kind === 180 ? ts.Diagnostics.A_break_statement_can_only_be_used_within_an_enclosing_iteration_or_switch_statement : ts.Diagnostics.A_continue_statement_can_only_be_used_within_an_enclosing_iteration_statement; return grammarErrorOnNode(node, message); } } @@ -16018,7 +16071,7 @@ var ts; if (!declarationList.declarations.length) { return grammarErrorAtPos(ts.getSourceFileOfNode(declarationList), declarations.pos, declarations.end - declarations.pos, ts.Diagnostics.Variable_declaration_list_cannot_be_empty); } - if (languageVersion < 2 /* ES6 */) { + if (languageVersion < 2) { if (ts.isLet(declarationList)) { return grammarErrorOnFirstToken(declarationList, ts.Diagnostics.let_declarations_are_only_available_when_targeting_ECMAScript_6_and_higher); } @@ -16029,14 +16082,14 @@ var ts; } function allowLetAndConstDeclarations(parent) { switch (parent.kind) { - case 174 /* IfStatement */: - case 175 /* DoStatement */: - case 176 /* WhileStatement */: - case 182 /* WithStatement */: - case 177 /* ForStatement */: - case 178 /* ForInStatement */: + case 174: + case 175: + case 176: + case 182: + case 177: + case 178: return false; - case 184 /* LabeledStatement */: + case 184: return allowLetAndConstDeclarations(parent.parent); } return true; @@ -16052,26 +16105,26 @@ var ts; } } function isIntegerLiteral(expression) { - if (expression.kind === 161 /* PrefixUnaryExpression */) { + if (expression.kind === 161) { var unaryExpression = expression; - if (unaryExpression.operator === 33 /* PlusToken */ || unaryExpression.operator === 34 /* MinusToken */) { + if (unaryExpression.operator === 33 || unaryExpression.operator === 34) { expression = unaryExpression.operand; } } - if (expression.kind === 7 /* NumericLiteral */) { + if (expression.kind === 7) { return /^[0-9]+([eE]\+?[0-9]+)?$/.test(expression.text); } return false; } function checkGrammarEnumDeclaration(enumDecl) { - var enumIsConst = (enumDecl.flags & 4096 /* Const */) !== 0; + var enumIsConst = (enumDecl.flags & 4096) !== 0; var hasError = false; if (!enumIsConst) { var inConstantEnumMemberSection = true; var inAmbientContext = ts.isInAmbientContext(enumDecl); for (var i = 0, n = enumDecl.members.length; i < n; i++) { var node = enumDecl.members[i]; - if (node.name.kind === 122 /* ComputedPropertyName */) { + if (node.name.kind === 122) { hasError = grammarErrorOnNode(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_enums); } else if (inAmbientContext) { @@ -16103,13 +16156,13 @@ var ts; if (!hasParseDiagnostics(sourceFile)) { var scanner = ts.createScanner(languageVersion, true, sourceFile.text); var start = scanToken(scanner, node.pos); - diagnostics.push(ts.createFileDiagnostic(sourceFile, start, scanner.getTextPos() - start, message, arg0, arg1, arg2)); + diagnostics.add(ts.createFileDiagnostic(sourceFile, start, scanner.getTextPos() - start, message, arg0, arg1, arg2)); return true; } } function grammarErrorAtPos(sourceFile, start, length, message, arg0, arg1, arg2) { if (!hasParseDiagnostics(sourceFile)) { - diagnostics.push(ts.createFileDiagnostic(sourceFile, start, length, message, arg0, arg1, arg2)); + diagnostics.add(ts.createFileDiagnostic(sourceFile, start, length, message, arg0, arg1, arg2)); return true; } } @@ -16118,12 +16171,12 @@ var ts; if (!hasParseDiagnostics(sourceFile)) { var span = ts.getErrorSpanForNode(node); var start = span.end > span.pos ? ts.skipTrivia(sourceFile.text, span.pos) : span.pos; - diagnostics.push(ts.createFileDiagnostic(sourceFile, start, span.end - start, message, arg0, arg1, arg2)); + diagnostics.add(ts.createFileDiagnostic(sourceFile, start, span.end - start, message, arg0, arg1, arg2)); return true; } } function checkGrammarEvalOrArgumentsInStrictMode(contextNode, identifier) { - if (contextNode && (contextNode.parserContextFlags & 1 /* StrictMode */) && ts.isEvalOrArgumentsIdentifier(identifier)) { + if (contextNode && (contextNode.parserContextFlags & 1) && ts.isEvalOrArgumentsIdentifier(identifier)) { var name = ts.declarationNameToString(identifier); return grammarErrorOnNode(identifier, ts.Diagnostics.Invalid_use_of_0_in_strict_mode, name); } @@ -16139,17 +16192,17 @@ var ts; } } function checkGrammarProperty(node) { - if (node.parent.kind === 191 /* ClassDeclaration */) { + if (node.parent.kind === 191) { if (checkGrammarForInvalidQuestionMark(node, node.questionToken, ts.Diagnostics.A_class_member_cannot_be_declared_optional) || checkGrammarForDisallowedComputedProperty(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_class_property_declarations)) { return true; } } - else if (node.parent.kind === 192 /* InterfaceDeclaration */) { + else if (node.parent.kind === 192) { if (checkGrammarForDisallowedComputedProperty(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_interfaces)) { return true; } } - else if (node.parent.kind === 139 /* TypeLiteral */) { + else if (node.parent.kind === 139) { if (checkGrammarForDisallowedComputedProperty(node.name, ts.Diagnostics.Computed_property_names_are_not_allowed_in_type_literals)) { return true; } @@ -16159,7 +16212,7 @@ var ts; } } function checkGrammarTopLevelElementForRequiredDeclareModifier(node) { - if (node.kind === 192 /* InterfaceDeclaration */ || node.kind === 197 /* ImportDeclaration */ || node.kind === 198 /* ExportAssignment */ || (node.flags & 2 /* Ambient */)) { + if (node.kind === 192 || node.kind === 197 || node.kind === 198 || (node.flags & 2)) { return false; } return grammarErrorOnFirstToken(node, ts.Diagnostics.A_declare_modifier_is_required_for_a_top_level_declaration_in_a_d_ts_file); @@ -16167,7 +16220,7 @@ var ts; function checkGrammarTopLevelElementsForRequiredDeclareModifier(file) { for (var i = 0, n = file.statements.length; i < n; i++) { var decl = file.statements[i]; - if (ts.isDeclaration(decl) || decl.kind === 171 /* VariableStatement */) { + if (ts.isDeclaration(decl) || decl.kind === 171) { if (checkGrammarTopLevelElementForRequiredDeclareModifier(decl)) { return true; } @@ -16186,7 +16239,7 @@ var ts; if (!links.hasReportedStatementInAmbientContext && ts.isAnyFunction(node.parent)) { return getNodeLinks(node).hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.An_implementation_cannot_be_declared_in_ambient_contexts); } - if (node.parent.kind === 170 /* Block */ || node.parent.kind === 196 /* ModuleBlock */ || node.parent.kind === 207 /* SourceFile */) { + if (node.parent.kind === 170 || node.parent.kind === 196 || node.parent.kind === 207) { var links = getNodeLinks(node.parent); if (!links.hasReportedStatementInAmbientContext) { return links.hasReportedStatementInAmbientContext = grammarErrorOnFirstToken(node, ts.Diagnostics.Statements_are_not_allowed_in_ambient_contexts); @@ -16197,11 +16250,11 @@ var ts; } } function checkGrammarNumbericLiteral(node) { - if (node.flags & 8192 /* OctalLiteral */) { - if (node.parserContextFlags & 1 /* StrictMode */) { + if (node.flags & 8192) { + if (node.parserContextFlags & 1) { return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_allowed_in_strict_mode); } - else if (languageVersion >= 1 /* ES5 */) { + else if (languageVersion >= 1) { return grammarErrorOnNode(node, ts.Diagnostics.Octal_literals_are_not_available_when_targeting_ECMAScript_5_and_higher); } } @@ -16211,7 +16264,7 @@ var ts; if (!hasParseDiagnostics(sourceFile)) { var scanner = ts.createScanner(languageVersion, true, sourceFile.text); scanToken(scanner, node.pos); - diagnostics.push(ts.createFileDiagnostic(sourceFile, scanner.getTextPos(), 0, message, arg0, arg1, arg2)); + diagnostics.add(ts.createFileDiagnostic(sourceFile, scanner.getTextPos(), 0, message, arg0, arg1, arg2)); return true; } } @@ -16235,7 +16288,7 @@ var ts; } function shouldEmitToOwnFile(sourceFile, compilerOptions) { if (!ts.isDeclarationFile(sourceFile)) { - if ((ts.isExternalModule(sourceFile) || !compilerOptions.out) && !ts.fileExtensionIs(sourceFile.filename, ".js")) { + if ((ts.isExternalModule(sourceFile) || !compilerOptions.out) && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { return true; } return false; @@ -16307,7 +16360,7 @@ var ts; }; } function getLineOfLocalPosition(currentSourceFile, pos) { - return currentSourceFile.getLineAndCharacterFromPosition(pos).line; + return ts.getLineAndCharacterOfPosition(currentSourceFile, pos).line; } function emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, leadingComments) { if (leadingComments && leadingComments.length && node.pos !== leadingComments[0].pos && getLineOfLocalPosition(currentSourceFile, node.pos) !== getLineOfLocalPosition(currentSourceFile, leadingComments[0].pos)) { @@ -16334,15 +16387,15 @@ var ts; }); } function writeCommentRange(currentSourceFile, writer, comment, newLine) { - if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { - var firstCommentLineAndCharacter = currentSourceFile.getLineAndCharacterFromPosition(comment.pos); - var lastLine = currentSourceFile.getLineStarts().length; + if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42) { + var firstCommentLineAndCharacter = ts.getLineAndCharacterOfPosition(currentSourceFile, comment.pos); + var lastLine = ts.getLineStarts(currentSourceFile).length; var firstCommentLineIndent; for (var pos = comment.pos, currentLine = firstCommentLineAndCharacter.line; pos < comment.end; currentLine++) { - var nextLineStart = currentLine === lastLine ? (comment.end + 1) : currentSourceFile.getPositionFromLineAndCharacter(currentLine + 1, 1); + var nextLineStart = currentLine === lastLine ? (comment.end + 1) : ts.getPositionFromLineAndCharacter(currentSourceFile, currentLine + 1, 1); if (pos !== comment.pos) { if (firstCommentLineIndent === undefined) { - firstCommentLineIndent = calculateIndent(currentSourceFile.getPositionFromLineAndCharacter(firstCommentLineAndCharacter.line, 1), comment.pos); + firstCommentLineIndent = calculateIndent(ts.getPositionFromLineAndCharacter(currentSourceFile, firstCommentLineAndCharacter.line, 1), comment.pos); } var currentWriterIndentSpacing = writer.getIndent() * getIndentSize(); var spacesToEmit = currentWriterIndentSpacing - firstCommentLineIndent + calculateIndent(pos, nextLineStart); @@ -16382,7 +16435,7 @@ var ts; function calculateIndent(pos, end) { var currentLineIndent = 0; for (; pos < end && ts.isWhiteSpace(currentSourceFile.text.charCodeAt(pos)); pos++) { - if (currentSourceFile.text.charCodeAt(pos) === 9 /* tab */) { + if (currentSourceFile.text.charCodeAt(pos) === 9) { currentLineIndent += getIndentSize() - (currentLineIndent % getIndentSize()); } else { @@ -16394,7 +16447,7 @@ var ts; } function getFirstConstructorWithBody(node) { return ts.forEach(node.members, function (member) { - if (member.kind === 129 /* Constructor */ && ts.nodeIsPresent(member.body)) { + if (member.kind === 129 && ts.nodeIsPresent(member.body)) { return member; } }); @@ -16403,12 +16456,12 @@ var ts; var firstAccessor; var getAccessor; var setAccessor; - if (accessor.name.kind === 122 /* ComputedPropertyName */) { + if (accessor.name.kind === 122) { firstAccessor = accessor; - if (accessor.kind === 130 /* GetAccessor */) { + if (accessor.kind === 130) { getAccessor = accessor; } - else if (accessor.kind === 131 /* SetAccessor */) { + else if (accessor.kind === 131) { setAccessor = accessor; } else { @@ -16417,14 +16470,14 @@ var ts; } else { ts.forEach(node.members, function (member) { - if ((member.kind === 130 /* GetAccessor */ || member.kind === 131 /* SetAccessor */) && member.name.text === accessor.name.text && (member.flags & 128 /* Static */) === (accessor.flags & 128 /* Static */)) { + if ((member.kind === 130 || member.kind === 131) && member.name.text === accessor.name.text && (member.flags & 128) === (accessor.flags & 128)) { if (!firstAccessor) { firstAccessor = member; } - if (member.kind === 130 /* GetAccessor */ && !getAccessor) { + if (member.kind === 130 && !getAccessor) { getAccessor = member; } - if (member.kind === 131 /* SetAccessor */ && !setAccessor) { + if (member.kind === 131 && !setAccessor) { setAccessor = member; } } @@ -16437,7 +16490,7 @@ var ts; }; } function getSourceFilePathInNewDir(sourceFile, host, newDirPath) { - var sourceFilePath = ts.getNormalizedAbsolutePath(sourceFile.filename, host.getCurrentDirectory()); + var sourceFilePath = ts.getNormalizedAbsolutePath(sourceFile.fileName, host.getCurrentDirectory()); sourceFilePath = sourceFilePath.replace(host.getCommonSourceDirectory(), ""); return ts.combinePaths(newDirPath, sourceFilePath); } @@ -16447,19 +16500,19 @@ var ts; var emitOutputFilePathWithoutExtension = ts.removeFileExtension(getSourceFilePathInNewDir(sourceFile, host, compilerOptions.outDir)); } else { - var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.filename); + var emitOutputFilePathWithoutExtension = ts.removeFileExtension(sourceFile.fileName); } return emitOutputFilePathWithoutExtension + extension; } - function writeFile(host, diagnostics, filename, data, writeByteOrderMark) { - host.writeFile(filename, data, writeByteOrderMark, function (hostErrorMessage) { - diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, filename, hostErrorMessage)); + function writeFile(host, diagnostics, fileName, data, writeByteOrderMark) { + host.writeFile(fileName, data, writeByteOrderMark, function (hostErrorMessage) { + diagnostics.push(ts.createCompilerDiagnostic(ts.Diagnostics.Could_not_write_file_0_Colon_1, fileName, hostErrorMessage)); }); } function emitDeclarations(host, resolver, diagnostics, jsFilePath, root) { var newLine = host.getNewLine(); var compilerOptions = host.getCompilerOptions(); - var languageVersion = compilerOptions.target || 0 /* ES3 */; + var languageVersion = compilerOptions.target || 0; var write; var writeLine; var increaseIndent; @@ -16471,7 +16524,61 @@ var ts; var reportedDeclarationError = false; var emitJsDocComments = compilerOptions.removeComments ? function (declaration) { } : writeJsDocComments; + var emit = compilerOptions.stripInternal ? stripInternal : emitNode; var aliasDeclarationEmitInfo = []; + var referencePathsOutput = ""; + if (root) { + if (!compilerOptions.noResolve) { + var addedGlobalFileReference = false; + ts.forEach(root.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(host, root, fileReference); + if (referencedFile && ((referencedFile.flags & 1024) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { + writeReferencePath(referencedFile); + if (!isExternalModuleOrDeclarationFile(referencedFile)) { + addedGlobalFileReference = true; + } + } + }); + } + emitSourceFile(root); + } + else { + var emittedReferencedFiles = []; + ts.forEach(host.getSourceFiles(), function (sourceFile) { + if (!isExternalModuleOrDeclarationFile(sourceFile)) { + if (!compilerOptions.noResolve) { + ts.forEach(sourceFile.referencedFiles, function (fileReference) { + var referencedFile = ts.tryResolveScriptReference(host, sourceFile, fileReference); + if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { + writeReferencePath(referencedFile); + emittedReferencedFiles.push(referencedFile); + } + }); + } + emitSourceFile(sourceFile); + } + }); + } + return { + reportedDeclarationError: reportedDeclarationError, + aliasDeclarationEmitInfo: aliasDeclarationEmitInfo, + synchronousDeclarationOutput: writer.getText(), + referencePathsOutput: referencePathsOutput + }; + function hasInternalAnnotation(range) { + var text = currentSourceFile.text; + var comment = text.substring(range.pos, range.end); + return comment.indexOf("@internal") >= 0; + } + function stripInternal(node) { + if (node) { + var leadingCommentRanges = ts.getLeadingCommentRanges(currentSourceFile.text, node.pos); + if (ts.forEach(leadingCommentRanges, hasInternalAnnotation)) { + return; + } + emitNode(node); + } + } function createAndSetNewTextWriterWithSymbolWriter() { var writer = createTextWriter(newLine); writer.trackSymbol = trackSymbol; @@ -16509,7 +16616,7 @@ var ts; setWriter(oldWriter); } function handleSymbolAccessibilityError(symbolAccesibilityResult) { - if (symbolAccesibilityResult.accessibility === 0 /* Accessible */) { + if (symbolAccesibilityResult.accessibility === 0) { if (symbolAccesibilityResult && symbolAccesibilityResult.aliasesToMakeVisible) { writeAsychronousImportDeclarations(symbolAccesibilityResult.aliasesToMakeVisible); } @@ -16537,7 +16644,7 @@ var ts; emitType(type); } else { - resolver.writeTypeOfDeclaration(declaration, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); + resolver.writeTypeOfDeclaration(declaration, enclosingDeclaration, 2, writer); } } function writeReturnTypeAtSignature(signature, getSymbolAccessibilityDiagnostic) { @@ -16547,12 +16654,12 @@ var ts; emitType(signature.type); } else { - resolver.writeReturnTypeOfSignatureDeclaration(signature, enclosingDeclaration, 2 /* UseTypeOfFunction */, writer); + resolver.writeReturnTypeOfSignatureDeclaration(signature, enclosingDeclaration, 2, writer); } } function emitLines(nodes) { for (var i = 0, n = nodes.length; i < n; i++) { - emitNode(nodes[i]); + emit(nodes[i]); } } function emitSeparatedList(nodes, separator, eachNodeEmitFn) { @@ -16581,43 +16688,43 @@ var ts; } function emitType(type) { switch (type.kind) { - case 110 /* AnyKeyword */: - case 119 /* StringKeyword */: - case 117 /* NumberKeyword */: - case 111 /* BooleanKeyword */: - case 98 /* VoidKeyword */: - case 8 /* StringLiteral */: + case 110: + case 119: + case 117: + case 111: + case 98: + case 8: return writeTextOfNode(currentSourceFile, type); - case 135 /* TypeReference */: + case 135: return emitTypeReference(type); - case 138 /* TypeQuery */: + case 138: return emitTypeQuery(type); - case 140 /* ArrayType */: + case 140: return emitArrayType(type); - case 141 /* TupleType */: + case 141: return emitTupleType(type); - case 142 /* UnionType */: + case 142: return emitUnionType(type); - case 143 /* ParenthesizedType */: + case 143: return emitParenType(type); - case 136 /* FunctionType */: - case 137 /* ConstructorType */: + case 136: + case 137: return emitSignatureDeclarationWithJsDocComments(type); - case 139 /* TypeLiteral */: + case 139: return emitTypeLiteral(type); - case 64 /* Identifier */: + case 64: return emitEntityName(type); - case 121 /* QualifiedName */: + case 121: return emitEntityName(type); default: ts.Debug.fail("Unknown type annotation: " + type.kind); } function emitEntityName(entityName) { - var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 197 /* ImportDeclaration */ ? entityName.parent : enclosingDeclaration); + var visibilityResult = resolver.isEntityNameVisible(entityName, entityName.parent.kind === 197 ? entityName.parent : enclosingDeclaration); handleSymbolAccessibilityError(visibilityResult); writeEntityName(entityName); function writeEntityName(entityName) { - if (entityName.kind === 64 /* Identifier */) { + if (entityName.kind === 64) { writeTextOfNode(currentSourceFile, entityName); } else { @@ -16681,22 +16788,22 @@ var ts; } function emitModuleElementDeclarationFlags(node) { if (node.parent === currentSourceFile) { - if (node.flags & 1 /* Export */) { + if (node.flags & 1) { write("export "); } - if (node.kind !== 192 /* InterfaceDeclaration */) { + if (node.kind !== 192) { write("declare "); } } } function emitClassMemberDeclarationFlags(node) { - if (node.flags & 32 /* Private */) { + if (node.flags & 32) { write("private "); } - else if (node.flags & 64 /* Protected */) { + else if (node.flags & 64) { write("protected "); } - if (node.flags & 128 /* Static */) { + if (node.flags & 128) { write("static "); } } @@ -16714,7 +16821,7 @@ var ts; } function writeImportDeclaration(node) { emitJsDocComments(node); - if (node.flags & 1 /* Export */) { + if (node.flags & 1) { write("export "); } write("import "); @@ -16744,7 +16851,7 @@ var ts; emitModuleElementDeclarationFlags(node); write("module "); writeTextOfNode(currentSourceFile, node.name); - while (node.body.kind !== 196 /* ModuleBlock */) { + while (node.body.kind !== 196) { node = node.body; write("."); writeTextOfNode(currentSourceFile, node.name); @@ -16801,7 +16908,7 @@ var ts; function emitEnumMemberDeclaration(node) { emitJsDocComments(node); writeTextOfNode(currentSourceFile, node.name); - var enumMemberValue = resolver.getEnumMemberValue(node); + var enumMemberValue = resolver.getConstantValue(node); if (enumMemberValue !== undefined) { write(" = "); write(enumMemberValue.toString()); @@ -16810,7 +16917,7 @@ var ts; writeLine(); } function isPrivateMethodTypeParameter(node) { - return node.parent.kind === 128 /* MethodDeclaration */ && (node.parent.flags & 32 /* Private */); + return node.parent.kind === 128 && (node.parent.flags & 32); } function emitTypeParameters(typeParameters) { function emitTypeParameter(node) { @@ -16820,8 +16927,8 @@ var ts; writeTextOfNode(currentSourceFile, node.name); if (node.constraint && !isPrivateMethodTypeParameter(node)) { write(" extends "); - if (node.parent.kind === 136 /* FunctionType */ || node.parent.kind === 137 /* ConstructorType */ || (node.parent.parent && node.parent.parent.kind === 139 /* TypeLiteral */)) { - ts.Debug.assert(node.parent.kind === 128 /* MethodDeclaration */ || node.parent.kind === 127 /* MethodSignature */ || node.parent.kind === 136 /* FunctionType */ || node.parent.kind === 137 /* ConstructorType */ || node.parent.kind === 132 /* CallSignature */ || node.parent.kind === 133 /* ConstructSignature */); + if (node.parent.kind === 136 || node.parent.kind === 137 || (node.parent.parent && node.parent.parent.kind === 139)) { + ts.Debug.assert(node.parent.kind === 128 || node.parent.kind === 127 || node.parent.kind === 136 || node.parent.kind === 137 || node.parent.kind === 132 || node.parent.kind === 133); emitType(node.constraint); } else { @@ -16831,31 +16938,31 @@ var ts; function getTypeParameterConstraintVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; switch (node.parent.kind) { - case 191 /* ClassDeclaration */: + case 191: diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_class_has_or_is_using_private_name_1; break; - case 192 /* InterfaceDeclaration */: + case 192: diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_interface_has_or_is_using_private_name_1; break; - case 133 /* ConstructSignature */: + case 133: diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; break; - case 132 /* CallSignature */: + case 132: diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; break; - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - if (node.parent.flags & 128 /* Static */) { + case 128: + case 127: + if (node.parent.flags & 128) { diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; } - else if (node.parent.parent.kind === 191 /* ClassDeclaration */) { + else if (node.parent.parent.kind === 191) { diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; } else { diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; } break; - case 190 /* FunctionDeclaration */: + case 190: diagnosticMessage = ts.Diagnostics.Type_parameter_0_of_exported_function_has_or_is_using_private_name_1; break; default: @@ -16883,7 +16990,7 @@ var ts; emitTypeWithNewGetSymbolAccessibilityDiagnostic(node, getHeritageClauseVisibilityError); function getHeritageClauseVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; - if (node.parent.parent.kind === 191 /* ClassDeclaration */) { + if (node.parent.parent.kind === 191) { diagnosticMessage = isImplementsList ? ts.Diagnostics.Implements_clause_of_exported_class_0_has_or_is_using_private_name_1 : ts.Diagnostics.Extends_clause_of_exported_class_0_has_or_is_using_private_name_1; } else { @@ -16901,7 +17008,7 @@ var ts; function emitParameterProperties(constructorDeclaration) { if (constructorDeclaration) { ts.forEach(constructorDeclaration.parameters, function (param) { - if (param.flags & 112 /* AccessibilityModifier */) { + if (param.flags & 112) { emitPropertyDeclaration(param); } }); @@ -16962,29 +17069,29 @@ var ts; writeLine(); } function emitVariableDeclaration(node) { - if (node.kind !== 188 /* VariableDeclaration */ || resolver.isDeclarationVisible(node)) { + if (node.kind !== 188 || resolver.isDeclarationVisible(node)) { writeTextOfNode(currentSourceFile, node.name); - if ((node.kind === 126 /* PropertyDeclaration */ || node.kind === 125 /* PropertySignature */) && ts.hasQuestionToken(node)) { + if ((node.kind === 126 || node.kind === 125) && ts.hasQuestionToken(node)) { write("?"); } - if ((node.kind === 126 /* PropertyDeclaration */ || node.kind === 125 /* PropertySignature */) && node.parent.kind === 139 /* TypeLiteral */) { + if ((node.kind === 126 || node.kind === 125) && node.parent.kind === 139) { emitTypeOfVariableDeclarationFromTypeLiteral(node); } - else if (!(node.flags & 32 /* Private */)) { + else if (!(node.flags & 32)) { writeTypeOfDeclaration(node, node.type, getVariableDeclarationTypeVisibilityError); } } function getVariableDeclarationTypeVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; - if (node.kind === 188 /* VariableDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; + if (node.kind === 188) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Exported_variable_0_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Exported_variable_0_has_or_is_using_private_name_1; } - else if (node.kind === 126 /* PropertyDeclaration */ || node.kind === 125 /* PropertySignature */) { - if (node.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; + else if (node.kind === 126 || node.kind === 125) { + if (node.flags & 128) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Public_static_property_0_of_exported_class_has_or_is_using_private_name_1; } - else if (node.parent.kind === 191 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; + else if (node.parent.kind === 191) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Public_property_0_of_exported_class_has_or_is_using_private_name_1; } else { diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Property_0_of_exported_interface_has_or_is_using_private_name_1; @@ -17032,11 +17139,11 @@ var ts; emitJsDocComments(accessors.setAccessor); emitClassMemberDeclarationFlags(node); writeTextOfNode(currentSourceFile, node.name); - if (!(node.flags & 32 /* Private */)) { + if (!(node.flags & 32)) { var accessorWithTypeAnnotation = node; var type = getTypeAnnotationFromAccessor(node); if (!type) { - var anotherAccessor = node.kind === 130 /* GetAccessor */ ? accessors.setAccessor : accessors.getAccessor; + var anotherAccessor = node.kind === 130 ? accessors.setAccessor : accessors.getAccessor; type = getTypeAnnotationFromAccessor(anotherAccessor); if (type) { accessorWithTypeAnnotation = anotherAccessor; @@ -17049,13 +17156,13 @@ var ts; } function getTypeAnnotationFromAccessor(accessor) { if (accessor) { - return accessor.kind === 130 /* GetAccessor */ ? accessor.type : accessor.parameters[0].type; + return accessor.kind === 130 ? accessor.type : accessor.parameters.length > 0 ? accessor.parameters[0].type : undefined; } } function getAccessorDeclarationTypeVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; - if (accessorWithTypeAnnotation.kind === 131 /* SetAccessor */) { - if (accessorWithTypeAnnotation.parent.flags & 128 /* Static */) { + if (accessorWithTypeAnnotation.kind === 131) { + if (accessorWithTypeAnnotation.parent.flags & 128) { diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_static_property_setter_from_exported_class_has_or_is_using_private_name_1; } else { @@ -17068,11 +17175,11 @@ var ts; }; } else { - if (accessorWithTypeAnnotation.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0; + if (accessorWithTypeAnnotation.flags & 128) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_static_property_getter_from_exported_class_has_or_is_using_private_name_0; } else { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0; + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_property_getter_from_exported_class_has_or_is_using_private_name_0; } return { diagnosticMessage: diagnosticMessage, @@ -17086,19 +17193,19 @@ var ts; if (ts.hasDynamicName(node)) { return; } - if ((node.kind !== 190 /* FunctionDeclaration */ || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { + if ((node.kind !== 190 || resolver.isDeclarationVisible(node)) && !resolver.isImplementationOfOverload(node)) { emitJsDocComments(node); - if (node.kind === 190 /* FunctionDeclaration */) { + if (node.kind === 190) { emitModuleElementDeclarationFlags(node); } - else if (node.kind === 128 /* MethodDeclaration */) { + else if (node.kind === 128) { emitClassMemberDeclarationFlags(node); } - if (node.kind === 190 /* FunctionDeclaration */) { + if (node.kind === 190) { write("function "); writeTextOfNode(currentSourceFile, node.name); } - else if (node.kind === 129 /* Constructor */) { + else if (node.kind === 129) { write("constructor"); } else { @@ -17115,11 +17222,11 @@ var ts; emitSignatureDeclaration(node); } function emitSignatureDeclaration(node) { - if (node.kind === 133 /* ConstructSignature */ || node.kind === 137 /* ConstructorType */) { + if (node.kind === 133 || node.kind === 137) { write("new "); } emitTypeParameters(node.typeParameters); - if (node.kind === 134 /* IndexSignature */) { + if (node.kind === 134) { write("["); } else { @@ -17128,20 +17235,20 @@ var ts; var prevEnclosingDeclaration = enclosingDeclaration; enclosingDeclaration = node; emitCommaList(node.parameters, emitParameterDeclaration); - if (node.kind === 134 /* IndexSignature */) { + if (node.kind === 134) { write("]"); } else { write(")"); } - var isFunctionTypeOrConstructorType = node.kind === 136 /* FunctionType */ || node.kind === 137 /* ConstructorType */; - if (isFunctionTypeOrConstructorType || node.parent.kind === 139 /* TypeLiteral */) { + var isFunctionTypeOrConstructorType = node.kind === 136 || node.kind === 137; + if (isFunctionTypeOrConstructorType || node.parent.kind === 139) { if (node.type) { write(isFunctionTypeOrConstructorType ? " => " : ": "); emitType(node.type); } } - else if (node.kind !== 129 /* Constructor */ && !(node.flags & 32 /* Private */)) { + else if (node.kind !== 129 && !(node.flags & 32)) { writeReturnTypeAtSignature(node, getReturnTypeVisibilityError); } enclosingDeclaration = prevEnclosingDeclaration; @@ -17152,29 +17259,29 @@ var ts; function getReturnTypeVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; switch (node.kind) { - case 133 /* ConstructSignature */: + case 133: diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_0; break; - case 132 /* CallSignature */: + case 132: diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_call_signature_from_exported_interface_has_or_is_using_private_name_0; break; - case 134 /* IndexSignature */: + case 134: diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_index_signature_from_exported_interface_has_or_is_using_private_name_0; break; - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - if (node.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; + case 128: + case 127: + if (node.flags & 128) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_static_method_from_exported_class_has_or_is_using_private_name_0; } - else if (node.parent.kind === 191 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; + else if (node.parent.kind === 191) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_public_method_from_exported_class_has_or_is_using_private_name_0; } else { diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_method_from_exported_interface_has_or_is_using_private_name_0; } break; - case 190 /* FunctionDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; + case 190: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_external_module_1_but_cannot_be_named : ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_name_0_from_private_module_1 : ts.Diagnostics.Return_type_of_exported_function_has_or_is_using_private_name_0; break; default: ts.Debug.fail("This is unknown kind for signature: " + node.kind); @@ -17201,38 +17308,38 @@ var ts; write("?"); } decreaseIndent(); - if (node.parent.kind === 136 /* FunctionType */ || node.parent.kind === 137 /* ConstructorType */ || node.parent.parent.kind === 139 /* TypeLiteral */) { + if (node.parent.kind === 136 || node.parent.kind === 137 || node.parent.parent.kind === 139) { emitTypeOfVariableDeclarationFromTypeLiteral(node); } - else if (!(node.parent.flags & 32 /* Private */)) { + else if (!(node.parent.flags & 32)) { writeTypeOfDeclaration(node, node.type, getParameterDeclarationTypeVisibilityError); } function getParameterDeclarationTypeVisibilityError(symbolAccesibilityResult) { var diagnosticMessage; switch (node.parent.kind) { - case 129 /* Constructor */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; + case 129: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_constructor_from_exported_class_has_or_is_using_private_name_1; break; - case 133 /* ConstructSignature */: + case 133: diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_constructor_signature_from_exported_interface_has_or_is_using_private_name_1; break; - case 132 /* CallSignature */: + case 132: diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_call_signature_from_exported_interface_has_or_is_using_private_name_1; break; - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - if (node.parent.flags & 128 /* Static */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; + case 128: + case 127: + if (node.parent.flags & 128) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_static_method_from_exported_class_has_or_is_using_private_name_1; } - else if (node.parent.parent.kind === 191 /* ClassDeclaration */) { - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; + else if (node.parent.parent.kind === 191) { + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_public_method_from_exported_class_has_or_is_using_private_name_1; } else { diagnosticMessage = symbolAccesibilityResult.errorModuleName ? ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_method_from_exported_interface_has_or_is_using_private_name_1; } break; - case 190 /* FunctionDeclaration */: - diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 /* CannotBeNamed */ ? ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; + case 190: + diagnosticMessage = symbolAccesibilityResult.errorModuleName ? symbolAccesibilityResult.accessibility === 2 ? ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_external_module_2_but_cannot_be_named : ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_name_1_from_private_module_2 : ts.Diagnostics.Parameter_0_of_exported_function_has_or_is_using_private_name_1; break; default: ts.Debug.fail("This is unknown parent for parameter: " + node.parent.kind); @@ -17246,87 +17353,48 @@ var ts; } function emitNode(node) { switch (node.kind) { - case 129 /* Constructor */: - case 190 /* FunctionDeclaration */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: + case 129: + case 190: + case 128: + case 127: return emitFunctionDeclaration(node); - case 133 /* ConstructSignature */: - case 132 /* CallSignature */: - case 134 /* IndexSignature */: + case 133: + case 132: + case 134: return emitSignatureDeclarationWithJsDocComments(node); - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: + case 130: + case 131: return emitAccessorDeclaration(node); - case 171 /* VariableStatement */: + case 171: return emitVariableStatement(node); - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: + case 126: + case 125: return emitPropertyDeclaration(node); - case 192 /* InterfaceDeclaration */: + case 192: return emitInterfaceDeclaration(node); - case 191 /* ClassDeclaration */: + case 191: return emitClassDeclaration(node); - case 193 /* TypeAliasDeclaration */: + case 193: return emitTypeAliasDeclaration(node); - case 206 /* EnumMember */: + case 206: return emitEnumMemberDeclaration(node); - case 194 /* EnumDeclaration */: + case 194: return emitEnumDeclaration(node); - case 195 /* ModuleDeclaration */: + case 195: return emitModuleDeclaration(node); - case 197 /* ImportDeclaration */: + case 197: return emitImportDeclaration(node); - case 198 /* ExportAssignment */: + case 198: return emitExportAssignment(node); - case 207 /* SourceFile */: + case 207: return emitSourceFile(node); } } - var referencePathsOutput = ""; function writeReferencePath(referencedFile) { - var declFileName = referencedFile.flags & 1024 /* DeclarationFile */ ? referencedFile.filename : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; + var declFileName = referencedFile.flags & 1024 ? referencedFile.fileName : shouldEmitToOwnFile(referencedFile, compilerOptions) ? getOwnEmitOutputFilePath(referencedFile, host, ".d.ts") : ts.removeFileExtension(compilerOptions.out) + ".d.ts"; declFileName = ts.getRelativePathToDirectoryOrUrl(ts.getDirectoryPath(ts.normalizeSlashes(jsFilePath)), declFileName, host.getCurrentDirectory(), host.getCanonicalFileName, false); referencePathsOutput += "/// " + newLine; } - if (root) { - if (!compilerOptions.noResolve) { - var addedGlobalFileReference = false; - ts.forEach(root.referencedFiles, function (fileReference) { - var referencedFile = ts.tryResolveScriptReference(host, root, fileReference); - if (referencedFile && ((referencedFile.flags & 1024 /* DeclarationFile */) || shouldEmitToOwnFile(referencedFile, compilerOptions) || !addedGlobalFileReference)) { - writeReferencePath(referencedFile); - if (!isExternalModuleOrDeclarationFile(referencedFile)) { - addedGlobalFileReference = true; - } - } - }); - } - emitNode(root); - } - else { - var emittedReferencedFiles = []; - ts.forEach(host.getSourceFiles(), function (sourceFile) { - if (!isExternalModuleOrDeclarationFile(sourceFile)) { - if (!compilerOptions.noResolve) { - ts.forEach(sourceFile.referencedFiles, function (fileReference) { - var referencedFile = ts.tryResolveScriptReference(host, sourceFile, fileReference); - if (referencedFile && (isExternalModuleOrDeclarationFile(referencedFile) && !ts.contains(emittedReferencedFiles, referencedFile))) { - writeReferencePath(referencedFile); - emittedReferencedFiles.push(referencedFile); - } - }); - } - emitNode(sourceFile); - } - }); - } - return { - reportedDeclarationError: reportedDeclarationError, - aliasDeclarationEmitInfo: aliasDeclarationEmitInfo, - synchronousDeclarationOutput: writer.getText(), - referencePathsOutput: referencePathsOutput - }; } function getDeclarationDiagnostics(host, resolver, targetSourceFile) { var diagnostics = []; @@ -17337,10 +17405,36 @@ var ts; ts.getDeclarationDiagnostics = getDeclarationDiagnostics; function emitFiles(resolver, host, targetSourceFile) { var compilerOptions = host.getCompilerOptions(); - var languageVersion = compilerOptions.target || 0 /* ES3 */; + var languageVersion = compilerOptions.target || 0; var sourceMapDataList = compilerOptions.sourceMap ? [] : undefined; var diagnostics = []; var newLine = host.getNewLine(); + if (targetSourceFile === undefined) { + ts.forEach(host.getSourceFiles(), function (sourceFile) { + if (shouldEmitToOwnFile(sourceFile, compilerOptions)) { + var jsFilePath = getOwnEmitOutputFilePath(sourceFile, host, ".js"); + emitFile(jsFilePath, sourceFile); + } + }); + if (compilerOptions.out) { + emitFile(compilerOptions.out); + } + } + else { + if (shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { + var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); + emitFile(jsFilePath, targetSourceFile); + } + else if (!ts.isDeclarationFile(targetSourceFile) && compilerOptions.out) { + emitFile(compilerOptions.out); + } + } + diagnostics = ts.sortAndDeduplicateDiagnostics(diagnostics); + return { + emitSkipped: false, + diagnostics: diagnostics, + sourceMaps: sourceMapDataList + }; function emitJavaScript(jsFilePath, root) { var writer = createTextWriter(newLine); var write = writer.write; @@ -17377,6 +17471,22 @@ var ts; var scopeEmitEnd = function () { }; var sourceMapData; + if (compilerOptions.sourceMap) { + initializeEmitterWithSourceMaps(); + } + if (root) { + emit(root); + } + else { + ts.forEach(host.getSourceFiles(), function (sourceFile) { + if (!isExternalModuleOrDeclarationFile(sourceFile)) { + emit(sourceFile); + } + }); + } + writeLine(); + writeEmittedFiles(writer.getText(), compilerOptions.emitBOM); + return; function initializeEmitterWithSourceMaps() { var sourceMapDir; var sourceMapSourceIndex = -1; @@ -17446,7 +17556,7 @@ var ts; } } function recordSourceMapSpan(pos) { - var sourceLinePos = currentSourceFile.getLineAndCharacterFromPosition(pos); + var sourceLinePos = ts.getLineAndCharacterOfPosition(currentSourceFile, pos); var emittedLine = writer.getLine(); var emittedColumn = writer.getColumn(); if (!lastRecordedSourceMapSpan || lastRecordedSourceMapSpan.emittedLine != emittedLine || lastRecordedSourceMapSpan.emittedColumn != emittedColumn || (lastRecordedSourceMapSpan.sourceIndex === sourceMapSourceIndex && (lastRecordedSourceMapSpan.sourceLine > sourceLinePos.line || (lastRecordedSourceMapSpan.sourceLine === sourceLinePos.line && lastRecordedSourceMapSpan.sourceColumn > sourceLinePos.character)))) { @@ -17481,9 +17591,9 @@ var ts; } function recordNewSourceFileStart(node) { var sourcesDirectoryPath = compilerOptions.sourceRoot ? host.getCommonSourceDirectory() : sourceMapDir; - sourceMapData.sourceMapSources.push(ts.getRelativePathToDirectoryOrUrl(sourcesDirectoryPath, node.filename, host.getCurrentDirectory(), host.getCanonicalFileName, true)); + sourceMapData.sourceMapSources.push(ts.getRelativePathToDirectoryOrUrl(sourcesDirectoryPath, node.fileName, host.getCurrentDirectory(), host.getCanonicalFileName, true)); sourceMapSourceIndex = sourceMapData.sourceMapSources.length - 1; - sourceMapData.inputSourceFileNames.push(node.filename); + sourceMapData.inputSourceFileNames.push(node.fileName); } function recordScopeNameOfNode(node, scopeName) { function recordScopeNameIndex(scopeNameIndex) { @@ -17495,7 +17605,7 @@ var ts; var parentIndex = getSourceMapNameIndex(); if (parentIndex !== -1) { var name = node.name; - if (!name || name.kind !== 122 /* ComputedPropertyName */) { + if (!name || name.kind !== 122) { scopeName = "." + scopeName; } scopeName = sourceMapData.sourceMapNames[parentIndex] + scopeName; @@ -17512,10 +17622,10 @@ var ts; if (scopeName) { recordScopeNameStart(scopeName); } - else if (node.kind === 190 /* FunctionDeclaration */ || node.kind === 156 /* FunctionExpression */ || node.kind === 128 /* MethodDeclaration */ || node.kind === 127 /* MethodSignature */ || node.kind === 130 /* GetAccessor */ || node.kind === 131 /* SetAccessor */ || node.kind === 195 /* ModuleDeclaration */ || node.kind === 191 /* ClassDeclaration */ || node.kind === 194 /* EnumDeclaration */) { + else if (node.kind === 190 || node.kind === 156 || node.kind === 128 || node.kind === 127 || node.kind === 130 || node.kind === 131 || node.kind === 195 || node.kind === 191 || node.kind === 194) { if (node.name) { var name = node.name; - scopeName = name.kind === 122 /* ComputedPropertyName */ ? ts.getTextOfNode(name) : node.name.text; + scopeName = name.kind === 122 ? ts.getTextOfNode(name) : node.name.text; } recordScopeNameStart(scopeName); } @@ -17561,7 +17671,7 @@ var ts; sourceMapDataList.push(sourceMapData); writeJavaScriptFile(emitOutput + "//# sourceMappingURL=" + sourceMapData.jsSourceMappingURL, writeByteOrderMark); } - var sourceMapJsFile = ts.getBaseFilename(ts.normalizeSlashes(jsFilePath)); + var sourceMapJsFile = ts.getBaseFileName(ts.normalizeSlashes(jsFilePath)); sourceMapData = { sourceMapFilePath: jsFilePath + ".map", jsSourceMappingURL: sourceMapJsFile + ".map", @@ -17574,7 +17684,7 @@ var ts; sourceMapDecodedMappings: [] }; sourceMapData.sourceMapSourceRoot = ts.normalizeSlashes(sourceMapData.sourceMapSourceRoot); - if (sourceMapData.sourceMapSourceRoot.length && sourceMapData.sourceMapSourceRoot.charCodeAt(sourceMapData.sourceMapSourceRoot.length - 1) !== 47 /* slash */) { + if (sourceMapData.sourceMapSourceRoot.length && sourceMapData.sourceMapSourceRoot.charCodeAt(sourceMapData.sourceMapSourceRoot.length - 1) !== 47) { sourceMapData.sourceMapSourceRoot += ts.directorySeparator; } if (compilerOptions.mapRoot) { @@ -17595,7 +17705,7 @@ var ts; } function emitNodeWithMap(node) { if (node) { - if (node.kind != 207 /* SourceFile */) { + if (node.kind != 207) { recordEmitNodeStartSpan(node); emitNode(node); recordEmitNodeEndSpan(node); @@ -17624,10 +17734,10 @@ var ts; if (name && resolver.isUnknownIdentifier(location, name)) { break; } - name = "_" + (tempCount < 25 ? String.fromCharCode(tempCount + (tempCount < 8 ? 0 : 1) + 97 /* a */) : tempCount - 25); + name = "_" + (tempCount < 25 ? String.fromCharCode(tempCount + (tempCount < 8 ? 0 : 1) + 97) : tempCount - 25); tempCount++; } - var result = ts.createNode(64 /* Identifier */); + var result = ts.createNode(64); result.text = name; return result; } @@ -17729,17 +17839,17 @@ var ts; if (text.length <= 0) { return false; } - if (text.charCodeAt(1) === 66 /* B */ || text.charCodeAt(1) === 98 /* b */ || text.charCodeAt(1) === 79 /* O */ || text.charCodeAt(1) === 111 /* o */) { + if (text.charCodeAt(1) === 66 || text.charCodeAt(1) === 98 || text.charCodeAt(1) === 79 || text.charCodeAt(1) === 111) { return true; } return false; } function emitLiteral(node) { - var text = languageVersion < 2 /* ES6 */ && ts.isTemplateLiteralKind(node.kind) ? getTemplateLiteralAsStringLiteral(node) : node.parent ? ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node) : node.text; - if (compilerOptions.sourceMap && (node.kind === 8 /* StringLiteral */ || ts.isTemplateLiteralKind(node.kind))) { + var text = languageVersion < 2 && ts.isTemplateLiteralKind(node.kind) ? getTemplateLiteralAsStringLiteral(node) : node.parent ? ts.getSourceTextOfNodeFromSourceFile(currentSourceFile, node) : node.text; + if (compilerOptions.sourceMap && (node.kind === 8 || ts.isTemplateLiteralKind(node.kind))) { writer.writeLiteral(text); } - else if (languageVersion < 2 /* ES6 */ && node.kind === 7 /* NumericLiteral */ && isBinaryOrOctalIntegerLiteral(text)) { + else if (languageVersion < 2 && node.kind === 7 && isBinaryOrOctalIntegerLiteral(text)) { write(node.text); } else { @@ -17750,11 +17860,10 @@ var ts; return '"' + ts.escapeString(node.text) + '"'; } function emitTemplateExpression(node) { - if (languageVersion >= 2 /* ES6 */) { + if (languageVersion >= 2) { ts.forEachChild(node, emit); return; } - ts.Debug.assert(node.parent.kind !== 153 /* TaggedTemplateExpression */); var emitOuterParens = ts.isExpression(node.parent) && templateNeedsParens(node, node.parent); if (emitOuterParens) { write("("); @@ -17766,7 +17875,7 @@ var ts; } for (var i = 0; i < node.templateSpans.length; i++) { var templateSpan = node.templateSpans[i]; - var needsParens = templateSpan.expression.kind !== 155 /* ParenthesizedExpression */ && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1 /* GreaterThan */; + var needsParens = templateSpan.expression.kind !== 155 && comparePrecedenceToBinaryPlus(templateSpan.expression) !== 1; if (i > 0 || headEmitted) { write(" + "); } @@ -17785,36 +17894,34 @@ var ts; } function templateNeedsParens(template, parent) { switch (parent.kind) { - case 151 /* CallExpression */: - case 152 /* NewExpression */: + case 151: + case 152: return parent.expression === template; - case 155 /* ParenthesizedExpression */: + case 153: + case 155: return false; - case 153 /* TaggedTemplateExpression */: - ts.Debug.fail("Path should be unreachable; tagged templates not supported pre-ES6."); default: - return comparePrecedenceToBinaryPlus(parent) !== -1 /* LessThan */; + return comparePrecedenceToBinaryPlus(parent) !== -1; } } function comparePrecedenceToBinaryPlus(expression) { - ts.Debug.assert(languageVersion < 2 /* ES6 */); switch (expression.kind) { - case 163 /* BinaryExpression */: + case 163: switch (expression.operator) { - case 35 /* AsteriskToken */: - case 36 /* SlashToken */: - case 37 /* PercentToken */: - return 1 /* GreaterThan */; - case 33 /* PlusToken */: - case 34 /* MinusToken */: - return 0 /* EqualTo */; + case 35: + case 36: + case 37: + return 1; + case 33: + case 34: + return 0; default: - return -1 /* LessThan */; + return -1; } - case 164 /* ConditionalExpression */: - return -1 /* LessThan */; + case 164: + return -1; default: - return 1 /* GreaterThan */; + return 1; } } } @@ -17823,15 +17930,15 @@ var ts; emit(span.literal); } function emitExpressionForPropertyName(node) { - if (node.kind === 8 /* StringLiteral */) { + if (node.kind === 8) { emitLiteral(node); } - else if (node.kind === 122 /* ComputedPropertyName */) { + else if (node.kind === 122) { emit(node.expression); } else { write("\""); - if (node.kind === 7 /* NumericLiteral */) { + if (node.kind === 7) { write(node.text); } else { @@ -17843,33 +17950,33 @@ var ts; function isNotExpressionIdentifier(node) { var parent = node.parent; switch (parent.kind) { - case 124 /* Parameter */: - case 188 /* VariableDeclaration */: - case 146 /* BindingElement */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 204 /* PropertyAssignment */: - case 205 /* ShorthandPropertyAssignment */: - case 206 /* EnumMember */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 190 /* FunctionDeclaration */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 156 /* FunctionExpression */: - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 194 /* EnumDeclaration */: - case 195 /* ModuleDeclaration */: - case 197 /* ImportDeclaration */: + case 124: + case 188: + case 146: + case 126: + case 125: + case 204: + case 205: + case 206: + case 128: + case 127: + case 190: + case 130: + case 131: + case 156: + case 191: + case 192: + case 194: + case 195: + case 197: return parent.name === node; - case 180 /* BreakStatement */: - case 179 /* ContinueStatement */: - case 198 /* ExportAssignment */: + case 180: + case 179: + case 198: return false; - case 184 /* LabeledStatement */: + case 184: return node.parent.label === node; - case 203 /* CatchClause */: + case 203: return node.parent.name === node; } } @@ -17893,7 +18000,7 @@ var ts; } } function emitThis(node) { - if (resolver.getNodeCheckFlags(node) & 2 /* LexicalThis */) { + if (resolver.getNodeCheckFlags(node) & 2) { write("_this"); } else { @@ -17902,10 +18009,10 @@ var ts; } function emitSuper(node) { var flags = resolver.getNodeCheckFlags(node); - if (flags & 16 /* SuperInstance */) { + if (flags & 16) { write("_super.prototype"); } - else if (flags & 32 /* SuperStatic */) { + else if (flags & 32) { write("_super"); } else { @@ -17946,12 +18053,12 @@ var ts; } function needsParenthesisForPropertyAccess(node) { switch (node.kind) { - case 64 /* Identifier */: - case 147 /* ArrayLiteralExpression */: - case 149 /* PropertyAccessExpression */: - case 150 /* ElementAccessExpression */: - case 151 /* CallExpression */: - case 155 /* ParenthesizedExpression */: + case 64: + case 147: + case 149: + case 150: + case 151: + case 155: return false; } return true; @@ -17963,9 +18070,9 @@ var ts; write("[]"); return; } - if (languageVersion >= 2 /* ES6 */) { + if (languageVersion >= 2) { write("["); - emitList(elements, 0, elements.length, (node.flags & 256 /* MultiLine */) !== 0, elements.hasTrailingComma); + emitList(elements, 0, elements.length, (node.flags & 256) !== 0, elements.hasTrailingComma); write("]"); return; } @@ -17979,18 +18086,18 @@ var ts; write(", "); } var e = elements[pos]; - if (e.kind === 167 /* SpreadElementExpression */) { + if (e.kind === 167) { e = e.expression; emitParenthesized(e, group === 0 && needsParenthesisForPropertyAccess(e)); pos++; } else { var i = pos; - while (i < length && elements[i].kind !== 167 /* SpreadElementExpression */) { + while (i < length && elements[i].kind !== 167) { i++; } write("["); - emitList(elements, pos, i - pos, (node.flags & 256 /* MultiLine */) !== 0, elements.hasTrailingComma); + emitList(elements, pos, i - pos, (node.flags & 256) !== 0, elements.hasTrailingComma); write("]"); pos = i; } @@ -18004,11 +18111,11 @@ var ts; write("{"); var properties = node.properties; if (properties.length) { - var multiLine = (node.flags & 256 /* MultiLine */) !== 0; + var multiLine = (node.flags & 256) !== 0; if (!multiLine) { write(" "); } - emitList(properties, 0, properties.length, multiLine, properties.hasTrailingComma && languageVersion >= 1 /* ES5 */); + emitList(properties, 0, properties.length, multiLine, properties.hasTrailingComma && languageVersion >= 1); if (!multiLine) { write(" "); } @@ -18022,7 +18129,7 @@ var ts; } function emitMethod(node) { emit(node.name); - if (languageVersion < 2 /* ES6 */) { + if (languageVersion < 2) { write(": function "); } emitSignatureAndBody(node); @@ -18034,7 +18141,7 @@ var ts; } function emitShorthandPropertyAssignment(node) { emit(node.name); - if (languageVersion < 2 /* ES6 */ || resolver.getExpressionNamePrefix(node.name)) { + if (languageVersion < 2 || resolver.getExpressionNamePrefix(node.name)) { write(": "); emitExpressionIdentifier(node.name); } @@ -18042,8 +18149,11 @@ var ts; function tryEmitConstantValue(node) { var constantValue = resolver.getConstantValue(node); if (constantValue !== undefined) { - var propertyName = node.kind === 149 /* PropertyAccessExpression */ ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression); - write(constantValue.toString() + " /* " + propertyName + " */"); + write(constantValue.toString()); + if (!compilerOptions.removeComments) { + var propertyName = node.kind === 149 ? ts.declarationNameToString(node.name) : ts.getTextOfNode(node.argumentExpression); + write(" /* " + propertyName + " */"); + } return true; } return false; @@ -18072,13 +18182,13 @@ var ts; } function emitCallExpression(node) { var superCall = false; - if (node.expression.kind === 90 /* SuperKeyword */) { + if (node.expression.kind === 90) { write("_super"); superCall = true; } else { emit(node.expression); - superCall = node.expression.kind === 149 /* PropertyAccessExpression */ && node.expression.expression.kind === 90 /* SuperKeyword */; + superCall = node.expression.kind === 149 && node.expression.expression.kind === 90; } if (superCall) { write(".call("); @@ -18105,18 +18215,17 @@ var ts; } } function emitTaggedTemplateExpression(node) { - ts.Debug.assert(languageVersion >= 2 /* ES6 */, "Trying to emit a tagged template in pre-ES6 mode."); emit(node.tag); write(" "); emit(node.template); } function emitParenExpression(node) { - if (node.expression.kind === 154 /* TypeAssertionExpression */) { + if (node.expression.kind === 154) { var operand = node.expression.expression; - while (operand.kind == 154 /* TypeAssertionExpression */) { + while (operand.kind == 154) { operand = operand.expression; } - if (operand.kind !== 161 /* PrefixUnaryExpression */ && operand.kind !== 160 /* VoidExpression */ && operand.kind !== 159 /* TypeOfExpression */ && operand.kind !== 158 /* DeleteExpression */ && operand.kind !== 162 /* PostfixUnaryExpression */ && operand.kind !== 152 /* NewExpression */ && !(operand.kind === 151 /* CallExpression */ && node.parent.kind === 152 /* NewExpression */) && !(operand.kind === 156 /* FunctionExpression */ && node.parent.kind === 151 /* CallExpression */)) { + if (operand.kind !== 161 && operand.kind !== 160 && operand.kind !== 159 && operand.kind !== 158 && operand.kind !== 162 && operand.kind !== 152 && !(operand.kind === 151 && node.parent.kind === 152) && !(operand.kind === 156 && node.parent.kind === 151)) { emit(operand); return; } @@ -18126,28 +18235,28 @@ var ts; write(")"); } function emitDeleteExpression(node) { - write(ts.tokenToString(73 /* DeleteKeyword */)); + write(ts.tokenToString(73)); write(" "); emit(node.expression); } function emitVoidExpression(node) { - write(ts.tokenToString(98 /* VoidKeyword */)); + write(ts.tokenToString(98)); write(" "); emit(node.expression); } function emitTypeOfExpression(node) { - write(ts.tokenToString(96 /* TypeOfKeyword */)); + write(ts.tokenToString(96)); write(" "); emit(node.expression); } function emitPrefixUnaryExpression(node) { write(ts.tokenToString(node.operator)); - if (node.operand.kind === 161 /* PrefixUnaryExpression */) { + if (node.operand.kind === 161) { var operand = node.operand; - if (node.operator === 33 /* PlusToken */ && (operand.operator === 33 /* PlusToken */ || operand.operator === 38 /* PlusPlusToken */)) { + if (node.operator === 33 && (operand.operator === 33 || operand.operator === 38)) { write(" "); } - else if (node.operator === 34 /* MinusToken */ && (operand.operator === 34 /* MinusToken */ || operand.operator === 39 /* MinusMinusToken */)) { + else if (node.operator === 34 && (operand.operator === 34 || operand.operator === 39)) { write(" "); } } @@ -18158,12 +18267,12 @@ var ts; write(ts.tokenToString(node.operator)); } function emitBinaryExpression(node) { - if (languageVersion < 2 /* ES6 */ && node.operator === 52 /* EqualsToken */ && (node.left.kind === 148 /* ObjectLiteralExpression */ || node.left.kind === 147 /* ArrayLiteralExpression */)) { + if (languageVersion < 2 && node.operator === 52 && (node.left.kind === 148 || node.left.kind === 147)) { emitDestructuring(node); } else { emit(node.left); - if (node.operator !== 23 /* CommaToken */) + if (node.operator !== 23) write(" "); write(ts.tokenToString(node.operator)); write(" "); @@ -18178,24 +18287,24 @@ var ts; emit(node.whenFalse); } function emitBlock(node) { - emitToken(14 /* OpenBraceToken */, node.pos); + emitToken(14, node.pos); increaseIndent(); scopeEmitStart(node.parent); - if (node.kind === 196 /* ModuleBlock */) { - ts.Debug.assert(node.parent.kind === 195 /* ModuleDeclaration */); + if (node.kind === 196) { + ts.Debug.assert(node.parent.kind === 195); emitCaptureThisForNodeIfNecessary(node.parent); } emitLines(node.statements); - if (node.kind === 196 /* ModuleBlock */) { + if (node.kind === 196) { emitTempDeclarations(true); } decreaseIndent(); writeLine(); - emitToken(15 /* CloseBraceToken */, node.statements.end); + emitToken(15, node.statements.end); scopeEmitEnd(); } function emitEmbeddedStatement(node) { - if (node.kind === 170 /* Block */) { + if (node.kind === 170) { write(" "); emit(node); } @@ -18207,20 +18316,20 @@ var ts; } } function emitExpressionStatement(node) { - emitParenthesized(node.expression, node.expression.kind === 157 /* ArrowFunction */); + emitParenthesized(node.expression, node.expression.kind === 157); write(";"); } function emitIfStatement(node) { - var endPos = emitToken(83 /* IfKeyword */, node.pos); + var endPos = emitToken(83, node.pos); write(" "); - endPos = emitToken(16 /* OpenParenToken */, endPos); + endPos = emitToken(16, endPos); emit(node.expression); - emitToken(17 /* CloseParenToken */, node.expression.end); + emitToken(17, node.expression.end); emitEmbeddedStatement(node.thenStatement); if (node.elseStatement) { writeLine(); - emitToken(75 /* ElseKeyword */, node.thenStatement.end); - if (node.elseStatement.kind === 174 /* IfStatement */) { + emitToken(75, node.thenStatement.end); + if (node.elseStatement.kind === 174) { write(" "); emit(node.elseStatement); } @@ -18232,7 +18341,7 @@ var ts; function emitDoStatement(node) { write("do"); emitEmbeddedStatement(node.statement); - if (node.statement.kind === 170 /* Block */) { + if (node.statement.kind === 170) { write(" "); } else { @@ -18249,20 +18358,20 @@ var ts; emitEmbeddedStatement(node.statement); } function emitForStatement(node) { - var endPos = emitToken(81 /* ForKeyword */, node.pos); + var endPos = emitToken(81, node.pos); write(" "); - endPos = emitToken(16 /* OpenParenToken */, endPos); - if (node.initializer && node.initializer.kind === 189 /* VariableDeclarationList */) { + endPos = emitToken(16, endPos); + if (node.initializer && node.initializer.kind === 189) { var variableDeclarationList = node.initializer; var declarations = variableDeclarationList.declarations; if (declarations[0] && ts.isLet(declarations[0])) { - emitToken(103 /* LetKeyword */, endPos); + emitToken(103, endPos); } else if (declarations[0] && ts.isConst(declarations[0])) { - emitToken(69 /* ConstKeyword */, endPos); + emitToken(69, endPos); } else { - emitToken(97 /* VarKeyword */, endPos); + emitToken(97, endPos); } write(" "); emitCommaList(variableDeclarationList.declarations); @@ -18278,18 +18387,18 @@ var ts; emitEmbeddedStatement(node.statement); } function emitForInStatement(node) { - var endPos = emitToken(81 /* ForKeyword */, node.pos); + var endPos = emitToken(81, node.pos); write(" "); - endPos = emitToken(16 /* OpenParenToken */, endPos); - if (node.initializer.kind === 189 /* VariableDeclarationList */) { + endPos = emitToken(16, endPos); + if (node.initializer.kind === 189) { var variableDeclarationList = node.initializer; if (variableDeclarationList.declarations.length >= 1) { var decl = variableDeclarationList.declarations[0]; if (ts.isLet(decl)) { - emitToken(103 /* LetKeyword */, endPos); + emitToken(103, endPos); } else { - emitToken(97 /* VarKeyword */, endPos); + emitToken(97, endPos); } write(" "); emit(decl); @@ -18300,16 +18409,16 @@ var ts; } write(" in "); emit(node.expression); - emitToken(17 /* CloseParenToken */, node.expression.end); + emitToken(17, node.expression.end); emitEmbeddedStatement(node.statement); } function emitBreakOrContinueStatement(node) { - emitToken(node.kind === 180 /* BreakStatement */ ? 65 /* BreakKeyword */ : 70 /* ContinueKeyword */, node.pos); + emitToken(node.kind === 180 ? 65 : 70, node.pos); emitOptional(" ", node.label); write(";"); } function emitReturnStatement(node) { - emitToken(89 /* ReturnKeyword */, node.pos); + emitToken(89, node.pos); emitOptional(" ", node.expression); write(";"); } @@ -18320,24 +18429,24 @@ var ts; emitEmbeddedStatement(node.statement); } function emitSwitchStatement(node) { - var endPos = emitToken(91 /* SwitchKeyword */, node.pos); + var endPos = emitToken(91, node.pos); write(" "); - emitToken(16 /* OpenParenToken */, endPos); + emitToken(16, endPos); emit(node.expression); - endPos = emitToken(17 /* CloseParenToken */, node.expression.end); + endPos = emitToken(17, node.expression.end); write(" "); - emitToken(14 /* OpenBraceToken */, endPos); + emitToken(14, endPos); increaseIndent(); emitLines(node.clauses); decreaseIndent(); writeLine(); - emitToken(15 /* CloseBraceToken */, node.clauses.end); + emitToken(15, node.clauses.end); } function isOnSameLine(node1, node2) { return getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node1.pos)) === getLineOfLocalPosition(currentSourceFile, ts.skipTrivia(currentSourceFile.text, node2.pos)); } function emitCaseOrDefaultClause(node) { - if (node.kind === 200 /* CaseClause */) { + if (node.kind === 200) { write("case "); emit(node.expression); write(":"); @@ -18372,16 +18481,16 @@ var ts; } function emitCatchClause(node) { writeLine(); - var endPos = emitToken(67 /* CatchKeyword */, node.pos); + var endPos = emitToken(67, node.pos); write(" "); - emitToken(16 /* OpenParenToken */, endPos); + emitToken(16, endPos); emit(node.name); - emitToken(17 /* CloseParenToken */, node.name.end); + emitToken(17, node.name.end); write(" "); emitBlock(node.block); } function emitDebuggerStatement(node) { - emitToken(71 /* DebuggerKeyword */, node.pos); + emitToken(71, node.pos); write(";"); } function emitLabelledStatement(node) { @@ -18392,12 +18501,12 @@ var ts; function getContainingModule(node) { do { node = node.parent; - } while (node && node.kind !== 195 /* ModuleDeclaration */); + } while (node && node.kind !== 195); return node; } function emitModuleMemberName(node) { emitStart(node.name); - if (ts.getCombinedNodeFlags(node) & 1 /* Export */) { + if (ts.getCombinedNodeFlags(node) & 1) { var container = getContainingModule(node); write(container ? resolver.getLocalNameOfContainer(container) : "exports"); write("."); @@ -18407,8 +18516,8 @@ var ts; } function emitDestructuring(root, value) { var emitCount = 0; - var isDeclaration = (root.kind === 188 /* VariableDeclaration */ && !(ts.getCombinedNodeFlags(root) & 1 /* Export */)) || root.kind === 124 /* Parameter */; - if (root.kind === 163 /* BinaryExpression */) { + var isDeclaration = (root.kind === 188 && !(ts.getCombinedNodeFlags(root) & 1)) || root.kind === 124; + if (root.kind === 163) { emitAssignmentExpression(root); } else { @@ -18418,7 +18527,7 @@ var ts; if (emitCount++) { write(", "); } - if (name.parent && (name.parent.kind === 188 /* VariableDeclaration */ || name.parent.kind === 146 /* BindingElement */)) { + if (name.parent && (name.parent.kind === 188 || name.parent.kind === 146)) { emitModuleMemberName(name.parent); } else { @@ -18428,7 +18537,7 @@ var ts; emit(value); } function ensureIdentifier(expr) { - if (expr.kind !== 64 /* Identifier */) { + if (expr.kind !== 64) { var identifier = createTempVariable(root); if (!isDeclaration) { recordTempDeclaration(identifier); @@ -18439,48 +18548,48 @@ var ts; return expr; } function createVoidZero() { - var zero = ts.createNode(7 /* NumericLiteral */); + var zero = ts.createNode(7); zero.text = "0"; - var result = ts.createNode(160 /* VoidExpression */); + var result = ts.createNode(160); result.expression = zero; return result; } function createDefaultValueCheck(value, defaultValue) { value = ensureIdentifier(value); - var equals = ts.createNode(163 /* BinaryExpression */); + var equals = ts.createNode(163); equals.left = value; - equals.operator = 30 /* EqualsEqualsEqualsToken */; + equals.operator = 30; equals.right = createVoidZero(); - var cond = ts.createNode(164 /* ConditionalExpression */); + var cond = ts.createNode(164); cond.condition = equals; cond.whenTrue = defaultValue; cond.whenFalse = value; return cond; } function createNumericLiteral(value) { - var node = ts.createNode(7 /* NumericLiteral */); + var node = ts.createNode(7); node.text = "" + value; return node; } function parenthesizeForAccess(expr) { - if (expr.kind === 64 /* Identifier */ || expr.kind === 149 /* PropertyAccessExpression */ || expr.kind === 150 /* ElementAccessExpression */) { + if (expr.kind === 64 || expr.kind === 149 || expr.kind === 150) { return expr; } - var node = ts.createNode(155 /* ParenthesizedExpression */); + var node = ts.createNode(155); node.expression = expr; return node; } function createPropertyAccess(object, propName) { - if (propName.kind !== 64 /* Identifier */) { + if (propName.kind !== 64) { return createElementAccess(object, propName); } - var node = ts.createNode(149 /* PropertyAccessExpression */); + var node = ts.createNode(149); node.expression = parenthesizeForAccess(object); node.name = propName; return node; } function createElementAccess(object, index) { - var node = ts.createNode(150 /* ElementAccessExpression */); + var node = ts.createNode(150); node.expression = parenthesizeForAccess(object); node.argumentExpression = index; return node; @@ -18492,7 +18601,7 @@ var ts; } for (var i = 0; i < properties.length; i++) { var p = properties[i]; - if (p.kind === 204 /* PropertyAssignment */ || p.kind === 205 /* ShorthandPropertyAssignment */) { + if (p.kind === 204 || p.kind === 205) { var propName = (p.name); emitDestructuringAssignment(p.initializer || propName, createPropertyAccess(value, propName)); } @@ -18505,8 +18614,8 @@ var ts; } for (var i = 0; i < elements.length; i++) { var e = elements[i]; - if (e.kind !== 168 /* OmittedExpression */) { - if (e.kind !== 167 /* SpreadElementExpression */) { + if (e.kind !== 168) { + if (e.kind !== 167) { emitDestructuringAssignment(e, createElementAccess(value, createNumericLiteral(i))); } else { @@ -18520,14 +18629,14 @@ var ts; } } function emitDestructuringAssignment(target, value) { - if (target.kind === 163 /* BinaryExpression */ && target.operator === 52 /* EqualsToken */) { + if (target.kind === 163 && target.operator === 52) { value = createDefaultValueCheck(value, target.right); target = target.left; } - if (target.kind === 148 /* ObjectLiteralExpression */) { + if (target.kind === 148) { emitObjectLiteralAssignment(target, value); } - else if (target.kind === 147 /* ArrayLiteralExpression */) { + else if (target.kind === 147) { emitArrayLiteralAssignment(target, value); } else { @@ -18537,18 +18646,18 @@ var ts; function emitAssignmentExpression(root) { var target = root.left; var value = root.right; - if (root.parent.kind === 173 /* ExpressionStatement */) { + if (root.parent.kind === 173) { emitDestructuringAssignment(target, value); } else { - if (root.parent.kind !== 155 /* ParenthesizedExpression */) { + if (root.parent.kind !== 155) { write("("); } value = ensureIdentifier(value); emitDestructuringAssignment(target, value); write(", "); emit(value); - if (root.parent.kind !== 155 /* ParenthesizedExpression */) { + if (root.parent.kind !== 155) { write(")"); } } @@ -18568,11 +18677,11 @@ var ts; } for (var i = 0; i < elements.length; i++) { var element = elements[i]; - if (pattern.kind === 144 /* ObjectBindingPattern */) { + if (pattern.kind === 144) { var propName = element.propertyName || element.name; emitBindingElement(element, createPropertyAccess(value, propName)); } - else if (element.kind !== 168 /* OmittedExpression */) { + else if (element.kind !== 168) { if (!element.dotDotDotToken) { emitBindingElement(element, createElementAccess(value, createNumericLiteral(i))); } @@ -18593,7 +18702,7 @@ var ts; } function emitVariableDeclaration(node) { if (ts.isBindingPattern(node.name)) { - if (languageVersion < 2 /* ES6 */) { + if (languageVersion < 2) { emitDestructuring(node); } else { @@ -18607,7 +18716,7 @@ var ts; } } function emitVariableStatement(node) { - if (!(node.flags & 1 /* Export */)) { + if (!(node.flags & 1)) { if (ts.isLet(node.declarationList)) { write("let "); } @@ -18622,7 +18731,7 @@ var ts; write(";"); } function emitParameter(node) { - if (languageVersion < 2 /* ES6 */) { + if (languageVersion < 2) { if (ts.isBindingPattern(node.name)) { var name = createTempVariable(node); if (!tempParameters) { @@ -18644,7 +18753,7 @@ var ts; } } function emitDefaultValueAssignments(node) { - if (languageVersion < 2 /* ES6 */) { + if (languageVersion < 2) { var tempIndex = 0; ts.forEach(node.parameters, function (p) { if (ts.isBindingPattern(p.name)) { @@ -18673,7 +18782,7 @@ var ts; } } function emitRestParameter(node) { - if (languageVersion < 2 /* ES6 */ && ts.hasRestParameters(node)) { + if (languageVersion < 2 && ts.hasRestParameters(node)) { var restIndex = node.parameters.length - 1; var restParam = node.parameters[restIndex]; var tempName = createTempVariable(node, true).text; @@ -18711,28 +18820,33 @@ var ts; } } function emitAccessor(node) { - write(node.kind === 130 /* GetAccessor */ ? "get " : "set "); + write(node.kind === 130 ? "get " : "set "); emit(node.name); emitSignatureAndBody(node); } + function shouldEmitAsArrowFunction(node) { + return node.kind === 157 && languageVersion >= 2; + } function emitFunctionDeclaration(node) { if (ts.nodeIsMissing(node.body)) { return emitPinnedOrTripleSlashComments(node); } - if (node.kind !== 128 /* MethodDeclaration */ && node.kind !== 127 /* MethodSignature */) { + if (node.kind !== 128 && node.kind !== 127) { emitLeadingComments(node); } - write("function "); - if (node.kind === 190 /* FunctionDeclaration */ || (node.kind === 156 /* FunctionExpression */ && node.name)) { + if (!shouldEmitAsArrowFunction(node)) { + write("function "); + } + if (node.kind === 190 || (node.kind === 156 && node.name)) { emit(node.name); } emitSignatureAndBody(node); - if (node.kind !== 128 /* MethodDeclaration */ && node.kind !== 127 /* MethodSignature */) { + if (node.kind !== 128 && node.kind !== 127) { emitTrailingComments(node); } } function emitCaptureThisForNodeIfNecessary(node) { - if (resolver.getNodeCheckFlags(node) & 4 /* CaptureThis */) { + if (resolver.getNodeCheckFlags(node) & 4) { writeLine(); emitStart(node); write("var _this = this;"); @@ -18744,12 +18858,19 @@ var ts; write("("); if (node) { var parameters = node.parameters; - var omitCount = languageVersion < 2 /* ES6 */ && ts.hasRestParameters(node) ? 1 : 0; + var omitCount = languageVersion < 2 && ts.hasRestParameters(node) ? 1 : 0; emitList(parameters, 0, parameters.length - omitCount, false, false); } write(")"); decreaseIndent(); } + function emitSignatureParametersForArrow(node) { + if (node.parameters.length === 1 && node.pos === node.parameters[0].pos) { + emit(node.parameters[0]); + return; + } + emitSignatureParameters(node); + } function emitSignatureAndBody(node) { var saveTempCount = tempCount; var saveTempVariables = tempVariables; @@ -18757,61 +18878,73 @@ var ts; tempCount = 0; tempVariables = undefined; tempParameters = undefined; - emitSignatureParameters(node); - write(" {"); - scopeEmitStart(node); - increaseIndent(); - emitDetachedComments(node.body.kind === 170 /* Block */ ? node.body.statements : node.body); - var startIndex = 0; - if (node.body.kind === 170 /* Block */) { - startIndex = emitDirectivePrologues(node.body.statements, true); - } - var outPos = writer.getTextPos(); - emitCaptureThisForNodeIfNecessary(node); - emitDefaultValueAssignments(node); - emitRestParameter(node); - if (node.body.kind !== 170 /* Block */ && outPos === writer.getTextPos()) { - decreaseIndent(); - write(" "); - emitStart(node.body); - write("return "); - emitNode(node.body, true); - emitEnd(node.body); - write(";"); - emitTempDeclarations(false); - write(" "); - emitStart(node.body); - write("}"); - emitEnd(node.body); + if (shouldEmitAsArrowFunction(node)) { + emitSignatureParametersForArrow(node); + write(" =>"); } else { - if (node.body.kind === 170 /* Block */) { - emitLinesStartingAt(node.body.statements, startIndex); - } - else { - writeLine(); - emitLeadingComments(node.body); - write("return "); - emit(node.body, true); - write(";"); - emitTrailingComments(node.body); - } - emitTempDeclarations(true); + emitSignatureParameters(node); + } + write(" {"); + scopeEmitStart(node); + if (!node.body) { writeLine(); - if (node.body.kind === 170 /* Block */) { - emitLeadingCommentsOfPosition(node.body.statements.end); - decreaseIndent(); - emitToken(15 /* CloseBraceToken */, node.body.statements.end); + write("}"); + } + else { + increaseIndent(); + emitDetachedComments(node.body.kind === 170 ? node.body.statements : node.body); + var startIndex = 0; + if (node.body.kind === 170) { + startIndex = emitDirectivePrologues(node.body.statements, true); } - else { + var outPos = writer.getTextPos(); + emitCaptureThisForNodeIfNecessary(node); + emitDefaultValueAssignments(node); + emitRestParameter(node); + if (node.body.kind !== 170 && outPos === writer.getTextPos()) { decreaseIndent(); + write(" "); + emitStart(node.body); + write("return "); + emitNode(node.body, true); + emitEnd(node.body); + write(";"); + emitTempDeclarations(false); + write(" "); emitStart(node.body); write("}"); emitEnd(node.body); } + else { + if (node.body.kind === 170) { + emitLinesStartingAt(node.body.statements, startIndex); + } + else { + writeLine(); + emitLeadingComments(node.body); + write("return "); + emit(node.body, true); + write(";"); + emitTrailingComments(node.body); + } + emitTempDeclarations(true); + writeLine(); + if (node.body.kind === 170) { + emitLeadingCommentsOfPosition(node.body.statements.end); + decreaseIndent(); + emitToken(15, node.body.statements.end); + } + else { + decreaseIndent(); + emitStart(node.body); + write("}"); + emitEnd(node.body); + } + } } scopeEmitEnd(); - if (node.flags & 1 /* Export */) { + if (node.flags & 1) { writeLine(); emitStart(node); emitModuleMemberName(node); @@ -18827,11 +18960,11 @@ var ts; function findInitialSuperCall(ctor) { if (ctor.body) { var statement = ctor.body.statements[0]; - if (statement && statement.kind === 173 /* ExpressionStatement */) { + if (statement && statement.kind === 173) { var expr = statement.expression; - if (expr && expr.kind === 151 /* CallExpression */) { + if (expr && expr.kind === 151) { var func = expr.expression; - if (func && func.kind === 90 /* SuperKeyword */) { + if (func && func.kind === 90) { return statement; } } @@ -18840,7 +18973,7 @@ var ts; } function emitParameterPropertyAssignments(node) { ts.forEach(node.parameters, function (param) { - if (param.flags & 112 /* AccessibilityModifier */) { + if (param.flags & 112) { writeLine(); emitStart(param); emitStart(param.name); @@ -18855,12 +18988,12 @@ var ts; }); } function emitMemberAccessForPropertyName(memberName) { - if (memberName.kind === 8 /* StringLiteral */ || memberName.kind === 7 /* NumericLiteral */) { + if (memberName.kind === 8 || memberName.kind === 7) { write("["); emitNode(memberName); write("]"); } - else if (memberName.kind === 122 /* ComputedPropertyName */) { + else if (memberName.kind === 122) { emitComputedPropertyName(memberName); } else { @@ -18870,7 +19003,7 @@ var ts; } function emitMemberAssignments(node, staticFlag) { ts.forEach(node.members, function (member) { - if (member.kind === 126 /* PropertyDeclaration */ && (member.flags & 128 /* Static */) === staticFlag && member.initializer) { + if (member.kind === 126 && (member.flags & 128) === staticFlag && member.initializer) { writeLine(); emitLeadingComments(member); emitStart(member); @@ -18893,7 +19026,7 @@ var ts; } function emitMemberFunctions(node) { ts.forEach(node.members, function (member) { - if (member.kind === 128 /* MethodDeclaration */ || node.kind === 127 /* MethodSignature */) { + if (member.kind === 128 || node.kind === 127) { if (!member.body) { return emitPinnedOrTripleSlashComments(member); } @@ -18902,7 +19035,7 @@ var ts; emitStart(member); emitStart(member.name); emitNode(node.name); - if (!(member.flags & 128 /* Static */)) { + if (!(member.flags & 128)) { write(".prototype"); } emitMemberAccessForPropertyName(member.name); @@ -18915,7 +19048,7 @@ var ts; write(";"); emitTrailingComments(member); } - else if (member.kind === 130 /* GetAccessor */ || member.kind === 131 /* SetAccessor */) { + else if (member.kind === 130 || member.kind === 131) { var accessors = getAllAccessorDeclarations(node, member); if (member === accessors.firstAccessor) { writeLine(); @@ -18923,7 +19056,7 @@ var ts; write("Object.defineProperty("); emitStart(member.name); emitNode(node.name); - if (!(member.flags & 128 /* Static */)) { + if (!(member.flags & 128)) { write(".prototype"); } write(", "); @@ -18987,17 +19120,17 @@ var ts; writeLine(); emitConstructorOfClass(); emitMemberFunctions(node); - emitMemberAssignments(node, 128 /* Static */); + emitMemberAssignments(node, 128); writeLine(); function emitClassReturnStatement() { write("return "); emitNode(node.name); } - emitToken(15 /* CloseBraceToken */, node.members.end, emitClassReturnStatement); + emitToken(15, node.members.end, emitClassReturnStatement); write(";"); decreaseIndent(); writeLine(); - emitToken(15 /* CloseBraceToken */, node.members.end); + emitToken(15, node.members.end); scopeEmitEnd(); emitStart(node); write(")("); @@ -19006,7 +19139,7 @@ var ts; } write(");"); emitEnd(node); - if (node.flags & 1 /* Export */) { + if (node.flags & 1) { writeLine(); emitStart(node); emitModuleMemberName(node); @@ -19023,7 +19156,7 @@ var ts; tempVariables = undefined; tempParameters = undefined; ts.forEach(node.members, function (member) { - if (member.kind === 129 /* Constructor */ && !member.body) { + if (member.kind === 129 && !member.body) { emitPinnedOrTripleSlashComments(member); } }); @@ -19075,7 +19208,7 @@ var ts; emitLeadingCommentsOfPosition(ctor.body.statements.end); } decreaseIndent(); - emitToken(15 /* CloseBraceToken */, ctor ? ctor.body.statements.end : node.members.end); + emitToken(15, ctor ? ctor.body.statements.end : node.members.end); scopeEmitEnd(); emitEnd(ctor || node); if (ctor) { @@ -19097,7 +19230,7 @@ var ts; if (!shouldEmitEnumDeclaration(node)) { return; } - if (!(node.flags & 1 /* Export */)) { + if (!(node.flags & 1)) { emitStart(node); write("var "); emit(node.name); @@ -19116,7 +19249,7 @@ var ts; emitLines(node.members); decreaseIndent(); writeLine(); - emitToken(15 /* CloseBraceToken */, node.members.end); + emitToken(15, node.members.end); scopeEmitEnd(); write(")("); emitModuleMemberName(node); @@ -19124,7 +19257,7 @@ var ts; emitModuleMemberName(node); write(" = {}));"); emitEnd(node); - if (node.flags & 1 /* Export */) { + if (node.flags & 1) { writeLine(); emitStart(node); write("var "); @@ -19144,19 +19277,29 @@ var ts; write("["); emitExpressionForPropertyName(node.name); write("] = "); - if (node.initializer && !ts.isConst(enumParent)) { - emit(node.initializer); - } - else { - write(resolver.getEnumMemberValue(node).toString()); - } + writeEnumMemberDeclarationValue(node); write("] = "); emitExpressionForPropertyName(node.name); emitEnd(node); write(";"); } + function writeEnumMemberDeclarationValue(member) { + if (!member.initializer || ts.isConst(member.parent)) { + var value = resolver.getConstantValue(member); + if (value !== undefined) { + write(value.toString()); + return; + } + } + if (member.initializer) { + emit(member.initializer); + } + else { + write("undefined"); + } + } function getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration) { - if (moduleDeclaration.body.kind === 195 /* ModuleDeclaration */) { + if (moduleDeclaration.body.kind === 195) { var recursiveInnerModule = getInnerMostModuleDeclarationFromDottedModule(moduleDeclaration.body); return recursiveInnerModule || moduleDeclaration.body; } @@ -19181,7 +19324,7 @@ var ts; write(resolver.getLocalNameOfContainer(node)); emitEnd(node.name); write(") "); - if (node.body.kind === 196 /* ModuleBlock */) { + if (node.body.kind === 196) { var saveTempCount = tempCount; var saveTempVariables = tempVariables; tempCount = 0; @@ -19200,11 +19343,11 @@ var ts; decreaseIndent(); writeLine(); var moduleBlock = getInnerMostModuleDeclarationFromDottedModule(node).body; - emitToken(15 /* CloseBraceToken */, moduleBlock.statements.end); + emitToken(15, moduleBlock.statements.end); scopeEmitEnd(); } write(")("); - if (node.flags & 1 /* Export */) { + if (node.flags & 1) { emit(node.name); write(" = "); } @@ -19220,8 +19363,8 @@ var ts; emitImportDeclaration = !ts.isExternalModule(currentSourceFile) && resolver.isTopLevelValueImportWithEntityName(node); } if (emitImportDeclaration) { - if (ts.isExternalModuleImportDeclaration(node) && node.parent.kind === 207 /* SourceFile */ && compilerOptions.module === 2 /* AMD */) { - if (node.flags & 1 /* Export */) { + if (ts.isExternalModuleImportDeclaration(node) && node.parent.kind === 207 && compilerOptions.module === 2) { + if (node.flags & 1) { writeLine(); emitLeadingComments(node); emitStart(node); @@ -19237,7 +19380,7 @@ var ts; writeLine(); emitLeadingComments(node); emitStart(node); - if (!(node.flags & 1 /* Export */)) + if (!(node.flags & 1)) write("var "); emitModuleMemberName(node); write(" = "); @@ -19250,7 +19393,7 @@ var ts; emitStart(literal); emitLiteral(literal); emitEnd(literal); - emitToken(17 /* CloseParenToken */, literal.end); + emitToken(17, literal.end); } write(";"); emitEnd(node); @@ -19269,7 +19412,7 @@ var ts; } function getFirstExportAssignment(sourceFile) { return ts.forEach(sourceFile.statements, function (node) { - if (node.kind === 198 /* ExportAssignment */) { + if (node.kind === 198) { return node; } }); @@ -19353,7 +19496,7 @@ var ts; writeLine(); emitDetachedComments(node); var startIndex = emitDirectivePrologues(node.statements, false); - if (!extendsEmitted && resolver.getNodeCheckFlags(node) & 8 /* EmitExtends */) { + if (!extendsEmitted && resolver.getNodeCheckFlags(node) & 8) { writeLine(); write("var __extends = this.__extends || function (d, b) {"); increaseIndent(); @@ -19371,7 +19514,7 @@ var ts; extendsEmitted = true; } if (ts.isExternalModule(node)) { - if (compilerOptions.module === 2 /* AMD */) { + if (compilerOptions.module === 2) { emitAMDModule(node, startIndex); } else { @@ -19389,7 +19532,7 @@ var ts; if (!node) { return; } - if (node.flags & 2 /* Ambient */) { + if (node.flags & 2) { return emitPinnedOrTripleSlashComments(node); } var emitComments = !disableComments && shouldEmitLeadingAndTrailingComments(node); @@ -19403,163 +19546,163 @@ var ts; } function shouldEmitLeadingAndTrailingComments(node) { switch (node.kind) { - case 192 /* InterfaceDeclaration */: - case 190 /* FunctionDeclaration */: - case 197 /* ImportDeclaration */: - case 193 /* TypeAliasDeclaration */: - case 198 /* ExportAssignment */: + case 192: + case 190: + case 197: + case 193: + case 198: return false; - case 195 /* ModuleDeclaration */: + case 195: return shouldEmitModuleDeclaration(node); - case 194 /* EnumDeclaration */: + case 194: return shouldEmitEnumDeclaration(node); } return true; } function emitJavaScriptWorker(node) { switch (node.kind) { - case 64 /* Identifier */: + case 64: return emitIdentifier(node); - case 124 /* Parameter */: + case 124: return emitParameter(node); - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: + case 128: + case 127: return emitMethod(node); - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: + case 130: + case 131: return emitAccessor(node); - case 92 /* ThisKeyword */: + case 92: return emitThis(node); - case 90 /* SuperKeyword */: + case 90: return emitSuper(node); - case 88 /* NullKeyword */: + case 88: return write("null"); - case 94 /* TrueKeyword */: + case 94: return write("true"); - case 79 /* FalseKeyword */: + case 79: return write("false"); - case 7 /* NumericLiteral */: - case 8 /* StringLiteral */: - case 9 /* RegularExpressionLiteral */: - case 10 /* NoSubstitutionTemplateLiteral */: - case 11 /* TemplateHead */: - case 12 /* TemplateMiddle */: - case 13 /* TemplateTail */: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: return emitLiteral(node); - case 165 /* TemplateExpression */: + case 165: return emitTemplateExpression(node); - case 169 /* TemplateSpan */: + case 169: return emitTemplateSpan(node); - case 121 /* QualifiedName */: + case 121: return emitQualifiedName(node); - case 144 /* ObjectBindingPattern */: + case 144: return emitObjectBindingPattern(node); - case 145 /* ArrayBindingPattern */: + case 145: return emitArrayBindingPattern(node); - case 146 /* BindingElement */: + case 146: return emitBindingElement(node); - case 147 /* ArrayLiteralExpression */: + case 147: return emitArrayLiteral(node); - case 148 /* ObjectLiteralExpression */: + case 148: return emitObjectLiteral(node); - case 204 /* PropertyAssignment */: + case 204: return emitPropertyAssignment(node); - case 205 /* ShorthandPropertyAssignment */: + case 205: return emitShorthandPropertyAssignment(node); - case 122 /* ComputedPropertyName */: + case 122: return emitComputedPropertyName(node); - case 149 /* PropertyAccessExpression */: + case 149: return emitPropertyAccess(node); - case 150 /* ElementAccessExpression */: + case 150: return emitIndexedAccess(node); - case 151 /* CallExpression */: + case 151: return emitCallExpression(node); - case 152 /* NewExpression */: + case 152: return emitNewExpression(node); - case 153 /* TaggedTemplateExpression */: + case 153: return emitTaggedTemplateExpression(node); - case 154 /* TypeAssertionExpression */: + case 154: return emit(node.expression); - case 155 /* ParenthesizedExpression */: + case 155: return emitParenExpression(node); - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: + case 190: + case 156: + case 157: return emitFunctionDeclaration(node); - case 158 /* DeleteExpression */: + case 158: return emitDeleteExpression(node); - case 159 /* TypeOfExpression */: + case 159: return emitTypeOfExpression(node); - case 160 /* VoidExpression */: + case 160: return emitVoidExpression(node); - case 161 /* PrefixUnaryExpression */: + case 161: return emitPrefixUnaryExpression(node); - case 162 /* PostfixUnaryExpression */: + case 162: return emitPostfixUnaryExpression(node); - case 163 /* BinaryExpression */: + case 163: return emitBinaryExpression(node); - case 164 /* ConditionalExpression */: + case 164: return emitConditionalExpression(node); - case 167 /* SpreadElementExpression */: + case 167: return emitSpreadElementExpression(node); - case 168 /* OmittedExpression */: + case 168: return; - case 170 /* Block */: - case 196 /* ModuleBlock */: + case 170: + case 196: return emitBlock(node); - case 171 /* VariableStatement */: + case 171: return emitVariableStatement(node); - case 172 /* EmptyStatement */: + case 172: return write(";"); - case 173 /* ExpressionStatement */: + case 173: return emitExpressionStatement(node); - case 174 /* IfStatement */: + case 174: return emitIfStatement(node); - case 175 /* DoStatement */: + case 175: return emitDoStatement(node); - case 176 /* WhileStatement */: + case 176: return emitWhileStatement(node); - case 177 /* ForStatement */: + case 177: return emitForStatement(node); - case 178 /* ForInStatement */: + case 178: return emitForInStatement(node); - case 179 /* ContinueStatement */: - case 180 /* BreakStatement */: + case 179: + case 180: return emitBreakOrContinueStatement(node); - case 181 /* ReturnStatement */: + case 181: return emitReturnStatement(node); - case 182 /* WithStatement */: + case 182: return emitWithStatement(node); - case 183 /* SwitchStatement */: + case 183: return emitSwitchStatement(node); - case 200 /* CaseClause */: - case 201 /* DefaultClause */: + case 200: + case 201: return emitCaseOrDefaultClause(node); - case 184 /* LabeledStatement */: + case 184: return emitLabelledStatement(node); - case 185 /* ThrowStatement */: + case 185: return emitThrowStatement(node); - case 186 /* TryStatement */: + case 186: return emitTryStatement(node); - case 203 /* CatchClause */: + case 203: return emitCatchClause(node); - case 187 /* DebuggerStatement */: + case 187: return emitDebuggerStatement(node); - case 188 /* VariableDeclaration */: + case 188: return emitVariableDeclaration(node); - case 191 /* ClassDeclaration */: + case 191: return emitClassDeclaration(node); - case 192 /* InterfaceDeclaration */: + case 192: return emitInterfaceDeclaration(node); - case 194 /* EnumDeclaration */: + case 194: return emitEnumDeclaration(node); - case 206 /* EnumMember */: + case 206: return emitEnumMember(node); - case 195 /* ModuleDeclaration */: + case 195: return emitModuleDeclaration(node); - case 197 /* ImportDeclaration */: + case 197: return emitImportDeclaration(node); - case 207 /* SourceFile */: + case 207: return emitSourceFile(node); } } @@ -19578,7 +19721,7 @@ var ts; } function getLeadingCommentsToEmit(node) { if (node.parent) { - if (node.parent.kind === 207 /* SourceFile */ || node.pos !== node.parent.pos) { + if (node.parent.kind === 207 || node.pos !== node.parent.pos) { var leadingComments; if (hasDetachedComments(node.pos)) { leadingComments = getLeadingCommentsWithoutDetachedComments(); @@ -19597,7 +19740,7 @@ var ts; } function emitTrailingDeclarationComments(node) { if (node.parent) { - if (node.parent.kind === 207 /* SourceFile */ || node.end !== node.parent.end) { + if (node.parent.kind === 207 || node.end !== node.parent.end) { var trailingComments = ts.getTrailingCommentRanges(currentSourceFile.text, node.end); emitComments(currentSourceFile, writer, trailingComments, false, newLine, writeComment); } @@ -19650,31 +19793,16 @@ var ts; function emitPinnedOrTripleSlashCommentsOfNode(node) { var pinnedComments = ts.filter(getLeadingCommentsToEmit(node), isPinnedOrTripleSlashComment); function isPinnedOrTripleSlashComment(comment) { - if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42 /* asterisk */) { - return currentSourceFile.text.charCodeAt(comment.pos + 2) === 33 /* exclamation */; + if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 42) { + return currentSourceFile.text.charCodeAt(comment.pos + 2) === 33; } - else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 /* slash */ && comment.pos + 2 < comment.end && currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 /* slash */ && currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { + else if (currentSourceFile.text.charCodeAt(comment.pos + 1) === 47 && comment.pos + 2 < comment.end && currentSourceFile.text.charCodeAt(comment.pos + 2) === 47 && currentSourceFile.text.substring(comment.pos, comment.end).match(ts.fullTripleSlashReferencePathRegEx)) { return true; } } emitNewLineBeforeLeadingComments(currentSourceFile, writer, node, pinnedComments); emitComments(currentSourceFile, writer, pinnedComments, true, newLine, writeComment); } - if (compilerOptions.sourceMap) { - initializeEmitterWithSourceMaps(); - } - if (root) { - emit(root); - } - else { - ts.forEach(host.getSourceFiles(), function (sourceFile) { - if (!isExternalModuleOrDeclarationFile(sourceFile)) { - emit(sourceFile); - } - }); - } - writeLine(); - writeEmittedFiles(writer.getText(), compilerOptions.emitBOM); } function writeDeclarationFile(jsFilePath, sourceFile) { var emitDeclarationResult = emitDeclarations(host, resolver, diagnostics, jsFilePath, sourceFile); @@ -19692,75 +19820,18 @@ var ts; writeFile(host, diagnostics, ts.removeFileExtension(jsFilePath) + ".d.ts", declarationOutput, compilerOptions.emitBOM); } } - var hasSemanticErrors = false; - var isEmitBlocked = false; - if (targetSourceFile === undefined) { - hasSemanticErrors = resolver.hasSemanticErrors(); - isEmitBlocked = host.isEmitBlocked(); - ts.forEach(host.getSourceFiles(), function (sourceFile) { - if (shouldEmitToOwnFile(sourceFile, compilerOptions)) { - var jsFilePath = getOwnEmitOutputFilePath(sourceFile, host, ".js"); - emitFile(jsFilePath, sourceFile); - } - }); - if (compilerOptions.out) { - emitFile(compilerOptions.out); - } - } - else { - if (shouldEmitToOwnFile(targetSourceFile, compilerOptions)) { - hasSemanticErrors = resolver.hasSemanticErrors(targetSourceFile); - isEmitBlocked = host.isEmitBlocked(targetSourceFile); - var jsFilePath = getOwnEmitOutputFilePath(targetSourceFile, host, ".js"); - emitFile(jsFilePath, targetSourceFile); - } - else if (!ts.isDeclarationFile(targetSourceFile) && compilerOptions.out) { - ts.forEach(host.getSourceFiles(), function (sourceFile) { - if (!shouldEmitToOwnFile(sourceFile, compilerOptions)) { - hasSemanticErrors = hasSemanticErrors || resolver.hasSemanticErrors(sourceFile); - isEmitBlocked = isEmitBlocked || host.isEmitBlocked(sourceFile); - } - }); - emitFile(compilerOptions.out); - } - } function emitFile(jsFilePath, sourceFile) { - if (!isEmitBlocked) { - emitJavaScript(jsFilePath, sourceFile); - if (!hasSemanticErrors && compilerOptions.declaration) { - writeDeclarationFile(jsFilePath, sourceFile); - } + emitJavaScript(jsFilePath, sourceFile); + if (compilerOptions.declaration) { + writeDeclarationFile(jsFilePath, sourceFile); } } - diagnostics.sort(ts.compareDiagnostics); - diagnostics = ts.deduplicateSortedDiagnostics(diagnostics); - var hasEmitterError = ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === 1 /* Error */; }); - var emitResultStatus; - if (isEmitBlocked) { - emitResultStatus = 1 /* AllOutputGenerationSkipped */; - } - else if (hasEmitterError) { - emitResultStatus = 4 /* EmitErrorsEncountered */; - } - else if (hasSemanticErrors && compilerOptions.declaration) { - emitResultStatus = 3 /* DeclarationGenerationSkipped */; - } - else if (hasSemanticErrors && !compilerOptions.declaration) { - emitResultStatus = 2 /* JSGeneratedWithSemanticErrors */; - } - else { - emitResultStatus = 0 /* Succeeded */; - } - return { - emitResultStatus: emitResultStatus, - diagnostics: diagnostics, - sourceMaps: sourceMapDataList - }; } ts.emitFiles = emitFiles; })(ts || (ts = {})); var ts; (function (ts) { + ts.emitTime = 0; function createCompilerHost(options) { var currentDirectory; var existingDirectories = {}; @@ -19768,9 +19839,9 @@ var ts; return ts.sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase(); } var unsupportedFileEncodingErrorCode = -2147024809; - function getSourceFile(filename, languageVersion, onError) { + function getSourceFile(fileName, languageVersion, onError) { try { - var text = ts.sys.readFile(filename, options.charset); + var text = ts.sys.readFile(fileName, options.charset); } catch (e) { if (onError) { @@ -19778,7 +19849,7 @@ var ts; } text = ""; } - return text !== undefined ? ts.createSourceFile(filename, text, languageVersion) : undefined; + return text !== undefined ? ts.createSourceFile(fileName, text, languageVersion) : undefined; } function writeFile(fileName, data, writeByteOrderMark, onError) { function directoryExists(directoryPath) { @@ -19810,7 +19881,7 @@ var ts; } return { getSourceFile: getSourceFile, - getDefaultLibFilename: function (options) { return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), options.target === 2 /* ES6 */ ? "lib.es6.d.ts" : "lib.d.ts"); }, + getDefaultLibFileName: function (options) { return ts.combinePaths(ts.getDirectoryPath(ts.normalizePath(ts.sys.getExecutingFilePath())), ts.getDefaultLibFileName(options)); }, writeFile: writeFile, getCurrentDirectory: function () { return currentDirectory || (currentDirectory = ts.sys.getCurrentDirectory()); }, useCaseSensitiveFileNames: function () { return ts.sys.useCaseSensitiveFileNames; }, @@ -19819,142 +19890,202 @@ var ts; }; } ts.createCompilerHost = createCompilerHost; + function getPreEmitDiagnostics(program) { + var diagnostics = program.getSyntacticDiagnostics().concat(program.getGlobalDiagnostics()).concat(program.getSemanticDiagnostics()); + return ts.sortAndDeduplicateDiagnostics(diagnostics); + } + ts.getPreEmitDiagnostics = getPreEmitDiagnostics; + function flattenDiagnosticMessageText(messageText, newLine) { + if (typeof messageText === "string") { + return messageText; + } + else { + var diagnosticChain = messageText; + var result = ""; + var indent = 0; + while (diagnosticChain) { + if (indent) { + result += newLine; + for (var i = 0; i < indent; i++) { + result += " "; + } + } + result += diagnosticChain.messageText; + indent++; + diagnosticChain = diagnosticChain.next; + } + return result; + } + } + ts.flattenDiagnosticMessageText = flattenDiagnosticMessageText; function createProgram(rootNames, options, host) { var program; var files = []; var filesByName = {}; - var errors = []; + var diagnostics = ts.createDiagnosticCollection(); var seenNoDefaultLib = options.noLib; var commonSourceDirectory; + host = host || createCompilerHost(options); ts.forEach(rootNames, function (name) { return processRootFile(name, false); }); if (!seenNoDefaultLib) { - processRootFile(host.getDefaultLibFilename(options), true); + processRootFile(host.getDefaultLibFileName(options), true); } verifyCompilerOptions(); - errors.sort(ts.compareDiagnostics); var diagnosticsProducingTypeChecker; var noDiagnosticsTypeChecker; - var emitHost; program = { getSourceFile: getSourceFile, getSourceFiles: function () { return files; }, getCompilerOptions: function () { return options; }, - getCompilerHost: function () { return host; }, - getDiagnostics: getDiagnostics, + getSyntacticDiagnostics: getSyntacticDiagnostics, getGlobalDiagnostics: getGlobalDiagnostics, + getSemanticDiagnostics: getSemanticDiagnostics, getDeclarationDiagnostics: getDeclarationDiagnostics, getTypeChecker: getTypeChecker, + getDiagnosticsProducingTypeChecker: getDiagnosticsProducingTypeChecker, getCommonSourceDirectory: function () { return commonSourceDirectory; }, - emitFiles: invokeEmitter, - isEmitBlocked: isEmitBlocked, - getCurrentDirectory: host.getCurrentDirectory + emit: emit, + getCurrentDirectory: host.getCurrentDirectory, + getNodeCount: function () { return getDiagnosticsProducingTypeChecker().getNodeCount(); }, + getIdentifierCount: function () { return getDiagnosticsProducingTypeChecker().getIdentifierCount(); }, + getSymbolCount: function () { return getDiagnosticsProducingTypeChecker().getSymbolCount(); }, + getTypeCount: function () { return getDiagnosticsProducingTypeChecker().getTypeCount(); } }; return program; - function getEmitHost() { - return emitHost || (emitHost = ts.createEmitHostFromProgram(program)); - } - function hasEarlyErrors(sourceFile) { - return ts.forEach(getDiagnosticsProducingTypeChecker().getDiagnostics(sourceFile), function (d) { return d.isEarly; }); - } - function isEmitBlocked(sourceFile) { - return getDiagnostics(sourceFile).length !== 0 || hasEarlyErrors(sourceFile) || (options.noEmitOnError && getDiagnosticsProducingTypeChecker().getDiagnostics(sourceFile).length !== 0); + function getEmitHost(writeFileCallback) { + return { + getCanonicalFileName: host.getCanonicalFileName, + getCommonSourceDirectory: program.getCommonSourceDirectory, + getCompilerOptions: program.getCompilerOptions, + getCurrentDirectory: host.getCurrentDirectory, + getNewLine: host.getNewLine, + getSourceFile: program.getSourceFile, + getSourceFiles: program.getSourceFiles, + writeFile: writeFileCallback || host.writeFile + }; } function getDiagnosticsProducingTypeChecker() { return diagnosticsProducingTypeChecker || (diagnosticsProducingTypeChecker = ts.createTypeChecker(program, true)); } - function getTypeChecker(produceDiagnostics) { - if (produceDiagnostics) { - return getDiagnosticsProducingTypeChecker(); - } - else { - return noDiagnosticsTypeChecker || (noDiagnosticsTypeChecker = ts.createTypeChecker(program, produceDiagnostics)); - } + function getTypeChecker() { + return noDiagnosticsTypeChecker || (noDiagnosticsTypeChecker = ts.createTypeChecker(program, false)); } function getDeclarationDiagnostics(targetSourceFile) { - var typeChecker = getDiagnosticsProducingTypeChecker(); - typeChecker.getDiagnostics(targetSourceFile); - var resolver = typeChecker.getEmitResolver(); + var resolver = getDiagnosticsProducingTypeChecker().getEmitResolver(targetSourceFile); return ts.getDeclarationDiagnostics(getEmitHost(), resolver, targetSourceFile); } - function invokeEmitter(targetSourceFile) { - var resolver = getDiagnosticsProducingTypeChecker().getEmitResolver(); - return ts.emitFiles(resolver, getEmitHost(), targetSourceFile); + function emit(sourceFile, writeFileCallback) { + if (options.noEmitOnError && getPreEmitDiagnostics(this).length > 0) { + return { diagnostics: [], sourceMaps: undefined, emitSkipped: true }; + } + var start = new Date().getTime(); + var emitResult = ts.emitFiles(getDiagnosticsProducingTypeChecker().getEmitResolver(sourceFile), getEmitHost(writeFileCallback), sourceFile); + ts.emitTime += new Date().getTime() - start; + return emitResult; } - function getSourceFile(filename) { - filename = host.getCanonicalFileName(filename); - return ts.hasProperty(filesByName, filename) ? filesByName[filename] : undefined; + function getSourceFile(fileName) { + fileName = host.getCanonicalFileName(fileName); + return ts.hasProperty(filesByName, fileName) ? filesByName[fileName] : undefined; } - function getDiagnostics(sourceFile) { - return sourceFile ? ts.filter(errors, function (e) { return e.file === sourceFile; }) : errors; + function getDiagnosticsHelper(sourceFile, getDiagnostics) { + if (sourceFile) { + return getDiagnostics(sourceFile); + } + var allDiagnostics = []; + ts.forEach(program.getSourceFiles(), function (sourceFile) { + ts.addRange(allDiagnostics, getDiagnostics(sourceFile)); + }); + return ts.sortAndDeduplicateDiagnostics(allDiagnostics); + } + function getSyntacticDiagnostics(sourceFile) { + return getDiagnosticsHelper(sourceFile, getSyntacticDiagnosticsForFile); + } + function getSemanticDiagnostics(sourceFile) { + return getDiagnosticsHelper(sourceFile, getSemanticDiagnosticsForFile); + } + function getSyntacticDiagnosticsForFile(sourceFile) { + return sourceFile.parseDiagnostics; + } + function getSemanticDiagnosticsForFile(sourceFile) { + var typeChecker = getDiagnosticsProducingTypeChecker(); + ts.Debug.assert(!!sourceFile.bindDiagnostics); + var bindDiagnostics = sourceFile.bindDiagnostics; + var checkDiagnostics = typeChecker.getDiagnostics(sourceFile); + var programDiagnostics = diagnostics.getDiagnostics(sourceFile.fileName); + return bindDiagnostics.concat(checkDiagnostics).concat(programDiagnostics); } function getGlobalDiagnostics() { - return ts.filter(errors, function (e) { return !e.file; }); + var typeChecker = getDiagnosticsProducingTypeChecker(); + var allDiagnostics = []; + ts.addRange(allDiagnostics, typeChecker.getGlobalDiagnostics()); + ts.addRange(allDiagnostics, diagnostics.getGlobalDiagnostics()); + return ts.sortAndDeduplicateDiagnostics(allDiagnostics); } - function hasExtension(filename) { - return ts.getBaseFilename(filename).indexOf(".") >= 0; + function hasExtension(fileName) { + return ts.getBaseFileName(fileName).indexOf(".") >= 0; } - function processRootFile(filename, isDefaultLib) { - processSourceFile(ts.normalizePath(filename), isDefaultLib); + function processRootFile(fileName, isDefaultLib) { + processSourceFile(ts.normalizePath(fileName), isDefaultLib); } - function processSourceFile(filename, isDefaultLib, refFile, refPos, refEnd) { + function processSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd) { if (refEnd !== undefined && refPos !== undefined) { var start = refPos; var length = refEnd - refPos; } var diagnostic; - if (hasExtension(filename)) { - if (!options.allowNonTsExtensions && !ts.fileExtensionIs(filename, ".ts")) { + if (hasExtension(fileName)) { + if (!options.allowNonTsExtensions && !ts.fileExtensionIs(host.getCanonicalFileName(fileName), ".ts")) { diagnostic = ts.Diagnostics.File_0_must_have_extension_ts_or_d_ts; } - else if (!findSourceFile(filename, isDefaultLib, refFile, refPos, refEnd)) { + else if (!findSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd)) { diagnostic = ts.Diagnostics.File_0_not_found; } - else if (refFile && host.getCanonicalFileName(filename) === host.getCanonicalFileName(refFile.filename)) { + else if (refFile && host.getCanonicalFileName(fileName) === host.getCanonicalFileName(refFile.fileName)) { diagnostic = ts.Diagnostics.A_file_cannot_have_a_reference_to_itself; } } else { - if (options.allowNonTsExtensions && !findSourceFile(filename, isDefaultLib, refFile, refPos, refEnd)) { + if (options.allowNonTsExtensions && !findSourceFile(fileName, isDefaultLib, refFile, refPos, refEnd)) { diagnostic = ts.Diagnostics.File_0_not_found; } - else if (!findSourceFile(filename + ".ts", isDefaultLib, refFile, refPos, refEnd) && !findSourceFile(filename + ".d.ts", isDefaultLib, refFile, refPos, refEnd)) { + else if (!findSourceFile(fileName + ".ts", isDefaultLib, refFile, refPos, refEnd) && !findSourceFile(fileName + ".d.ts", isDefaultLib, refFile, refPos, refEnd)) { diagnostic = ts.Diagnostics.File_0_not_found; - filename += ".ts"; + fileName += ".ts"; } } if (diagnostic) { if (refFile) { - errors.push(ts.createFileDiagnostic(refFile, start, length, diagnostic, filename)); + diagnostics.add(ts.createFileDiagnostic(refFile, start, length, diagnostic, fileName)); } else { - errors.push(ts.createCompilerDiagnostic(diagnostic, filename)); + diagnostics.add(ts.createCompilerDiagnostic(diagnostic, fileName)); } } } - function findSourceFile(filename, isDefaultLib, refFile, refStart, refLength) { - var canonicalName = host.getCanonicalFileName(filename); + function findSourceFile(fileName, isDefaultLib, refFile, refStart, refLength) { + var canonicalName = host.getCanonicalFileName(fileName); if (ts.hasProperty(filesByName, canonicalName)) { - return getSourceFileFromCache(filename, canonicalName, false); + return getSourceFileFromCache(fileName, canonicalName, false); } else { - var normalizedAbsolutePath = ts.getNormalizedAbsolutePath(filename, host.getCurrentDirectory()); + var normalizedAbsolutePath = ts.getNormalizedAbsolutePath(fileName, host.getCurrentDirectory()); var canonicalAbsolutePath = host.getCanonicalFileName(normalizedAbsolutePath); if (ts.hasProperty(filesByName, canonicalAbsolutePath)) { return getSourceFileFromCache(normalizedAbsolutePath, canonicalAbsolutePath, true); } - var file = filesByName[canonicalName] = host.getSourceFile(filename, options.target, function (hostErrorMessage) { + var file = filesByName[canonicalName] = host.getSourceFile(fileName, options.target, function (hostErrorMessage) { if (refFile) { - errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Cannot_read_file_0_Colon_1, filename, hostErrorMessage)); + diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage)); } else { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, filename, hostErrorMessage)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_read_file_0_Colon_1, fileName, hostErrorMessage)); } }); if (file) { seenNoDefaultLib = seenNoDefaultLib || file.hasNoDefaultLib; filesByName[canonicalAbsolutePath] = file; if (!options.noResolve) { - var basePath = ts.getDirectoryPath(filename); + var basePath = ts.getDirectoryPath(fileName); processReferencedFiles(file, basePath); processImportedModules(file, basePath); } @@ -19964,18 +20095,15 @@ var ts; else { files.push(file); } - ts.forEach(file.getSyntacticDiagnostics(), function (e) { - errors.push(e); - }); } } return file; - function getSourceFileFromCache(filename, canonicalName, useAbsolutePath) { + function getSourceFileFromCache(fileName, canonicalName, useAbsolutePath) { var file = filesByName[canonicalName]; if (file && host.useCaseSensitiveFileNames()) { - var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.filename, host.getCurrentDirectory()) : file.filename; + var sourceFileName = useAbsolutePath ? ts.getNormalizedAbsolutePath(file.fileName, host.getCurrentDirectory()) : file.fileName; if (canonicalName !== sourceFileName) { - errors.push(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.Filename_0_differs_from_already_included_filename_1_only_in_casing, filename, sourceFileName)); + diagnostics.add(ts.createFileDiagnostic(refFile, refStart, refLength, ts.Diagnostics.File_name_0_differs_from_already_included_file_name_1_only_in_casing, fileName, sourceFileName)); } } return file; @@ -19983,13 +20111,13 @@ var ts; } function processReferencedFiles(file, basePath) { ts.forEach(file.referencedFiles, function (ref) { - var referencedFilename = ts.isRootedDiskPath(ref.filename) ? ref.filename : ts.combinePaths(basePath, ref.filename); - processSourceFile(ts.normalizePath(referencedFilename), false, file, ref.pos, ref.end); + var referencedFileName = ts.isRootedDiskPath(ref.fileName) ? ref.fileName : ts.combinePaths(basePath, ref.fileName); + processSourceFile(ts.normalizePath(referencedFileName), false, file, ref.pos, ref.end); }); } function processImportedModules(file, basePath) { ts.forEach(file.statements, function (node) { - if (ts.isExternalModuleImportDeclaration(node) && ts.getExternalModuleImportDeclarationExpression(node).kind === 8 /* StringLiteral */) { + if (ts.isExternalModuleImportDeclaration(node) && ts.getExternalModuleImportDeclarationExpression(node).kind === 8) { var nameLiteral = ts.getExternalModuleImportDeclarationExpression(node); var moduleName = nameLiteral.text; if (moduleName) { @@ -20007,9 +20135,9 @@ var ts; } } } - else if (node.kind === 195 /* ModuleDeclaration */ && node.name.kind === 8 /* StringLiteral */ && (node.flags & 2 /* Ambient */ || ts.isDeclarationFile(file))) { + else if (node.kind === 195 && node.name.kind === 8 && (node.flags & 2 || ts.isDeclarationFile(file))) { ts.forEachChild(node.body, function (node) { - if (ts.isExternalModuleImportDeclaration(node) && ts.getExternalModuleImportDeclarationExpression(node).kind === 8 /* StringLiteral */) { + if (ts.isExternalModuleImportDeclaration(node) && ts.getExternalModuleImportDeclarationExpression(node).kind === 8) { var nameLiteral = ts.getExternalModuleImportDeclarationExpression(node); var moduleName = nameLiteral.text; if (moduleName) { @@ -20023,17 +20151,17 @@ var ts; }); } }); - function findModuleSourceFile(filename, nameLiteral) { - return findSourceFile(filename, false, file, nameLiteral.pos, nameLiteral.end - nameLiteral.pos); + function findModuleSourceFile(fileName, nameLiteral) { + return findSourceFile(fileName, false, file, nameLiteral.pos, nameLiteral.end - nameLiteral.pos); } } function verifyCompilerOptions() { if (!options.sourceMap && (options.mapRoot || options.sourceRoot)) { if (options.mapRoot) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_mapRoot_cannot_be_specified_without_specifying_sourcemap_option)); } if (options.sourceRoot) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_sourceRoot_cannot_be_specified_without_specifying_sourcemap_option)); } return; } @@ -20042,19 +20170,19 @@ var ts; var externalModuleErrorSpan = ts.getErrorSpanForNode(firstExternalModule.externalModuleIndicator); var errorStart = ts.skipTrivia(firstExternalModule.text, externalModuleErrorSpan.pos); var errorLength = externalModuleErrorSpan.end - errorStart; - errors.push(ts.createFileDiagnostic(firstExternalModule, errorStart, errorLength, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); + diagnostics.add(ts.createFileDiagnostic(firstExternalModule, errorStart, errorLength, ts.Diagnostics.Cannot_compile_external_modules_unless_the_module_flag_is_provided)); } if (options.outDir || options.sourceRoot || (options.mapRoot && (!options.out || firstExternalModule !== undefined))) { var commonPathComponents; ts.forEach(files, function (sourceFile) { - if (!(sourceFile.flags & 1024 /* DeclarationFile */) && !ts.fileExtensionIs(sourceFile.filename, ".js")) { - var sourcePathComponents = ts.getNormalizedPathComponents(sourceFile.filename, host.getCurrentDirectory()); + if (!(sourceFile.flags & 1024) && !ts.fileExtensionIs(sourceFile.fileName, ".js")) { + var sourcePathComponents = ts.getNormalizedPathComponents(sourceFile.fileName, host.getCurrentDirectory()); sourcePathComponents.pop(); if (commonPathComponents) { for (var i = 0; i < Math.min(commonPathComponents.length, sourcePathComponents.length); i++) { if (commonPathComponents[i] !== sourcePathComponents[i]) { if (i === 0) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Cannot_find_the_common_subdirectory_path_for_the_input_files)); return; } commonPathComponents.length = i; @@ -20077,10 +20205,10 @@ var ts; } if (options.noEmit) { if (options.out || options.outDir) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_out_or_outDir)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_out_or_outDir)); } if (options.declaration) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_declaration)); + diagnostics.add(ts.createCompilerDiagnostic(ts.Diagnostics.Option_noEmit_cannot_be_specified_with_option_declaration)); } } } @@ -20137,8 +20265,8 @@ var ts; name: "module", shortName: "m", type: { - "commonjs": 1 /* CommonJS */, - "amd": 2 /* AMD */ + "commonjs": 1, + "amd": 2 }, description: ts.Diagnostics.Specify_module_code_generation_Colon_commonjs_or_amd, paramType: ts.Diagnostics.KIND, @@ -20219,10 +20347,16 @@ var ts; type: "boolean", description: ts.Diagnostics.Suppress_noImplicitAny_errors_for_indexing_objects_lacking_index_signatures }, + { + name: "stripInternal", + type: "boolean", + description: ts.Diagnostics.Do_not_emit_declarations_for_code_that_has_an_internal_annotation, + experimental: true + }, { name: "target", shortName: "t", - type: { "es3": 0 /* ES3 */, "es5": 1 /* ES5 */, "es6": 2 /* ES6 */ }, + type: { "es3": 0, "es5": 1, "es6": 2 }, description: ts.Diagnostics.Specify_ECMAScript_target_version_Colon_ES3_default_ES5_or_ES6_experimental, paramType: ts.Diagnostics.VERSION, error: ts.Diagnostics.Argument_for_target_option_must_be_es3_es5_or_es6 @@ -20242,7 +20376,7 @@ var ts; ]; function parseCommandLine(commandLine) { var options = {}; - var filenames = []; + var fileNames = []; var errors = []; var shortOptionNames = {}; var optionNameMap = {}; @@ -20255,18 +20389,18 @@ var ts; parseStrings(commandLine); return { options: options, - filenames: filenames, + fileNames: fileNames, errors: errors }; function parseStrings(args) { var i = 0; while (i < args.length) { var s = args[i++]; - if (s.charCodeAt(0) === 64 /* at */) { + if (s.charCodeAt(0) === 64) { parseResponseFile(s.slice(1)); } - else if (s.charCodeAt(0) === 45 /* minus */) { - s = s.slice(s.charCodeAt(1) === 45 /* minus */ ? 2 : 1).toLowerCase(); + else if (s.charCodeAt(0) === 45) { + s = s.slice(s.charCodeAt(1) === 45 ? 2 : 1).toLowerCase(); if (ts.hasProperty(shortOptionNames, s)) { s = shortOptionNames[s]; } @@ -20301,38 +20435,38 @@ var ts; } } else { - filenames.push(s); + fileNames.push(s); } } } - function parseResponseFile(filename) { - var text = ts.sys.readFile(filename); + function parseResponseFile(fileName) { + var text = ts.sys.readFile(fileName); if (!text) { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_not_found, filename)); + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.File_0_not_found, fileName)); return; } var args = []; var pos = 0; while (true) { - while (pos < text.length && text.charCodeAt(pos) <= 32 /* space */) + while (pos < text.length && text.charCodeAt(pos) <= 32) pos++; if (pos >= text.length) break; var start = pos; - if (text.charCodeAt(start) === 34 /* doubleQuote */) { + if (text.charCodeAt(start) === 34) { pos++; - while (pos < text.length && text.charCodeAt(pos) !== 34 /* doubleQuote */) + while (pos < text.length && text.charCodeAt(pos) !== 34) pos++; if (pos < text.length) { args.push(text.substring(start + 1, pos)); pos++; } else { - errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unterminated_quoted_string_in_response_file_0, filename)); + errors.push(ts.createCompilerDiagnostic(ts.Diagnostics.Unterminated_quoted_string_in_response_file_0, fileName)); } } else { - while (text.charCodeAt(pos) > 32 /* space */) + while (text.charCodeAt(pos) > 32) pos++; args.push(text.substring(start, pos)); } @@ -20341,9 +20475,9 @@ var ts; } } ts.parseCommandLine = parseCommandLine; - function readConfigFile(filename) { + function readConfigFile(fileName) { try { - var text = ts.sys.readFile(filename); + var text = ts.sys.readFile(fileName); return /\S/.test(text) ? JSON.parse(text) : {}; } catch (e) { @@ -20354,7 +20488,7 @@ var ts; var errors = []; return { options: getCompilerOptions(), - filenames: getFiles(), + fileNames: getFiles(), errors: errors }; function getCompilerOptions() { @@ -20439,10 +20573,10 @@ var ts; } function autoCollapse(node) { switch (node.kind) { - case 196 /* ModuleBlock */: - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 194 /* EnumDeclaration */: + case 196: + case 191: + case 192: + case 194: return false; } return true; @@ -20454,23 +20588,23 @@ var ts; return; } switch (n.kind) { - case 170 /* Block */: + case 170: if (!ts.isFunctionBlock(n)) { var parent = n.parent; - var openBrace = ts.findChildOfKind(n, 14 /* OpenBraceToken */, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15 /* CloseBraceToken */, sourceFile); - if (parent.kind === 175 /* DoStatement */ || parent.kind === 178 /* ForInStatement */ || parent.kind === 177 /* ForStatement */ || parent.kind === 174 /* IfStatement */ || parent.kind === 176 /* WhileStatement */ || parent.kind === 182 /* WithStatement */ || parent.kind === 203 /* CatchClause */) { + var openBrace = ts.findChildOfKind(n, 14, sourceFile); + var closeBrace = ts.findChildOfKind(n, 15, sourceFile); + if (parent.kind === 175 || parent.kind === 178 || parent.kind === 177 || parent.kind === 174 || parent.kind === 176 || parent.kind === 182 || parent.kind === 203) { addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); break; } - if (parent.kind === 186 /* TryStatement */) { + if (parent.kind === 186) { var tryStatement = parent; if (tryStatement.tryBlock === n) { addOutliningSpan(parent, openBrace, closeBrace, autoCollapse(n)); break; } else if (tryStatement.finallyBlock === n) { - var finallyKeyword = ts.findChildOfKind(tryStatement, 80 /* FinallyKeyword */, sourceFile); + var finallyKeyword = ts.findChildOfKind(tryStatement, 80, sourceFile); if (finallyKeyword) { addOutliningSpan(finallyKeyword, openBrace, closeBrace, autoCollapse(n)); break; @@ -20486,23 +20620,23 @@ var ts; }); break; } - case 196 /* ModuleBlock */: - var openBrace = ts.findChildOfKind(n, 14 /* OpenBraceToken */, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15 /* CloseBraceToken */, sourceFile); + case 196: + var openBrace = ts.findChildOfKind(n, 14, sourceFile); + var closeBrace = ts.findChildOfKind(n, 15, sourceFile); addOutliningSpan(n.parent, openBrace, closeBrace, autoCollapse(n)); break; - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 194 /* EnumDeclaration */: - case 148 /* ObjectLiteralExpression */: - case 183 /* SwitchStatement */: - var openBrace = ts.findChildOfKind(n, 14 /* OpenBraceToken */, sourceFile); - var closeBrace = ts.findChildOfKind(n, 15 /* CloseBraceToken */, sourceFile); + case 191: + case 192: + case 194: + case 148: + case 183: + var openBrace = ts.findChildOfKind(n, 14, sourceFile); + var closeBrace = ts.findChildOfKind(n, 15, sourceFile); addOutliningSpan(n, openBrace, closeBrace, autoCollapse(n)); break; - case 147 /* ArrayLiteralExpression */: - var openBracket = ts.findChildOfKind(n, 18 /* OpenBracketToken */, sourceFile); - var closeBracket = ts.findChildOfKind(n, 19 /* CloseBracketToken */, sourceFile); + case 147: + var openBracket = ts.findChildOfKind(n, 18, sourceFile); + var closeBracket = ts.findChildOfKind(n, 19, sourceFile); addOutliningSpan(n, openBracket, closeBracket, autoCollapse(n)); break; } @@ -20528,14 +20662,14 @@ var ts; var current = node.parent; while (current) { switch (current.kind) { - case 195 /* ModuleDeclaration */: + case 195: do { current = current.parent; - } while (current.kind === 195 /* ModuleDeclaration */); - case 191 /* ClassDeclaration */: - case 194 /* EnumDeclaration */: - case 192 /* InterfaceDeclaration */: - case 190 /* FunctionDeclaration */: + } while (current.kind === 195); + case 191: + case 194: + case 192: + case 190: indent++; } current = current.parent; @@ -20546,24 +20680,24 @@ var ts; var childNodes = []; function visit(node) { switch (node.kind) { - case 171 /* VariableStatement */: + case 171: ts.forEach(node.declarationList.declarations, visit); break; - case 144 /* ObjectBindingPattern */: - case 145 /* ArrayBindingPattern */: + case 144: + case 145: ts.forEach(node.elements, visit); break; - case 146 /* BindingElement */: - case 188 /* VariableDeclaration */: + case 146: + case 188: if (ts.isBindingPattern(node.name)) { visit(node.name); break; } - case 191 /* ClassDeclaration */: - case 194 /* EnumDeclaration */: - case 192 /* InterfaceDeclaration */: - case 195 /* ModuleDeclaration */: - case 190 /* FunctionDeclaration */: + case 191: + case 194: + case 192: + case 195: + case 190: childNodes.push(node); } } @@ -20597,17 +20731,17 @@ var ts; for (var i = 0, n = nodes.length; i < n; i++) { var node = nodes[i]; switch (node.kind) { - case 191 /* ClassDeclaration */: - case 194 /* EnumDeclaration */: - case 192 /* InterfaceDeclaration */: + case 191: + case 194: + case 192: topLevelNodes.push(node); break; - case 195 /* ModuleDeclaration */: + case 195: var moduleDeclaration = node; topLevelNodes.push(node); addTopLevelNodes(getInnermostModule(moduleDeclaration).body.statements, topLevelNodes); break; - case 190 /* FunctionDeclaration */: + case 190: var functionDeclaration = node; if (isTopLevelFunctionDeclaration(functionDeclaration)) { topLevelNodes.push(node); @@ -20618,9 +20752,9 @@ var ts; } } function isTopLevelFunctionDeclaration(functionDeclaration) { - if (functionDeclaration.kind === 190 /* FunctionDeclaration */) { - if (functionDeclaration.body && functionDeclaration.body.kind === 170 /* Block */) { - if (ts.forEach(functionDeclaration.body.statements, function (s) { return s.kind === 190 /* FunctionDeclaration */ && !isEmpty(s.name.text); })) { + if (functionDeclaration.kind === 190) { + if (functionDeclaration.body && functionDeclaration.body.kind === 170) { + if (ts.forEach(functionDeclaration.body.statements, function (s) { return s.kind === 190 && !isEmpty(s.name.text); })) { return true; } if (!ts.isFunctionBlock(functionDeclaration.parent)) { @@ -20673,42 +20807,42 @@ var ts; } function createChildItem(node) { switch (node.kind) { - case 124 /* Parameter */: + case 124: if (ts.isBindingPattern(node.name)) { break; } - if ((node.flags & 243 /* Modifier */) === 0) { + if ((node.flags & 243) === 0) { return undefined; } return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement); - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: + case 128: + case 127: return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberFunctionElement); - case 130 /* GetAccessor */: + case 130: return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberGetAccessorElement); - case 131 /* SetAccessor */: + case 131: return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberSetAccessorElement); - case 134 /* IndexSignature */: + case 134: return createItem(node, "[]", ts.ScriptElementKind.indexSignatureElement); - case 206 /* EnumMember */: + case 206: return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement); - case 132 /* CallSignature */: + case 132: return createItem(node, "()", ts.ScriptElementKind.callSignatureElement); - case 133 /* ConstructSignature */: + case 133: return createItem(node, "new()", ts.ScriptElementKind.constructSignatureElement); - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: + case 126: + case 125: return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.memberVariableElement); - case 190 /* FunctionDeclaration */: + case 190: return createItem(node, getTextOfNode(node.name), ts.ScriptElementKind.functionElement); - case 188 /* VariableDeclaration */: - case 146 /* BindingElement */: + case 188: + case 146: var variableDeclarationNode; var name; - if (node.kind === 146 /* BindingElement */) { + if (node.kind === 146) { name = node.name; variableDeclarationNode = node; - while (variableDeclarationNode && variableDeclarationNode.kind !== 188 /* VariableDeclaration */) { + while (variableDeclarationNode && variableDeclarationNode.kind !== 188) { variableDeclarationNode = variableDeclarationNode.parent; } ts.Debug.assert(variableDeclarationNode !== undefined); @@ -20727,7 +20861,7 @@ var ts; else { return createItem(node, getTextOfNode(name), ts.ScriptElementKind.variableElement); } - case 129 /* Constructor */: + case 129: return createItem(node, "constructor", ts.ScriptElementKind.constructorImplementationElement); } return undefined; @@ -20757,27 +20891,27 @@ var ts; } function createTopLevelItem(node) { switch (node.kind) { - case 207 /* SourceFile */: + case 207: return createSourceFileItem(node); - case 191 /* ClassDeclaration */: + case 191: return createClassItem(node); - case 194 /* EnumDeclaration */: + case 194: return createEnumItem(node); - case 192 /* InterfaceDeclaration */: + case 192: return createIterfaceItem(node); - case 195 /* ModuleDeclaration */: + case 195: return createModuleItem(node); - case 190 /* FunctionDeclaration */: + case 190: return createFunctionItem(node); } return undefined; function getModuleName(moduleDeclaration) { - if (moduleDeclaration.name.kind === 8 /* StringLiteral */) { + if (moduleDeclaration.name.kind === 8) { return getTextOfNode(moduleDeclaration.name); } var result = []; result.push(moduleDeclaration.name.text); - while (moduleDeclaration.body && moduleDeclaration.body.kind === 195 /* ModuleDeclaration */) { + while (moduleDeclaration.body && moduleDeclaration.body.kind === 195) { moduleDeclaration = moduleDeclaration.body; result.push(moduleDeclaration.name.text); } @@ -20789,7 +20923,7 @@ var ts; return getNavigationBarItem(moduleName, ts.ScriptElementKind.moduleElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } function createFunctionItem(node) { - if (node.name && node.body && node.body.kind === 170 /* Block */) { + if (node.name && node.body && node.body.kind === 170) { var childItems = getItemsWorker(sortNodes(node.body.statements), createChildItem); return getNavigationBarItem(node.name.text, ts.ScriptElementKind.functionElement, ts.getNodeModifiers(node), [getNodeSpan(node)], childItems, getIndent(node)); } @@ -20801,14 +20935,14 @@ var ts; return undefined; } hasGlobalNode = true; - var rootName = ts.isExternalModule(node) ? "\"" + ts.escapeString(ts.getBaseFilename(ts.removeFileExtension(ts.normalizePath(node.filename)))) + "\"" : ""; + var rootName = ts.isExternalModule(node) ? "\"" + ts.escapeString(ts.getBaseFileName(ts.removeFileExtension(ts.normalizePath(node.fileName)))) + "\"" : ""; return getNavigationBarItem(rootName, ts.ScriptElementKind.moduleElement, ts.ScriptElementKindModifier.none, [getNodeSpan(node)], childItems); } function createClassItem(node) { var childItems; if (node.members) { var constructor = ts.forEach(node.members, function (member) { - return member.kind === 129 /* Constructor */ && member; + return member.kind === 129 && member; }); var nodes = removeComputedProperties(node); if (constructor) { @@ -20828,16 +20962,16 @@ var ts; } } function removeComputedProperties(node) { - return ts.filter(node.members, function (member) { return member.name === undefined || member.name.kind !== 122 /* ComputedPropertyName */; }); + return ts.filter(node.members, function (member) { return member.name === undefined || member.name.kind !== 122; }); } function getInnermostModule(node) { - while (node.body.kind === 195 /* ModuleDeclaration */) { + while (node.body.kind === 195) { node = node.body; } return node; } function getNodeSpan(node) { - return node.kind === 207 /* SourceFile */ ? ts.createTextSpanFromBounds(node.getFullStart(), node.getEnd()) : ts.createTextSpanFromBounds(node.getStart(), node.getEnd()); + return node.kind === 207 ? ts.createTextSpanFromBounds(node.getFullStart(), node.getEnd()) : ts.createTextSpanFromBounds(node.getStart(), node.getEnd()); } function getTextOfNode(node) { return ts.getTextOfNodeFromSourceText(sourceFile.text, node); @@ -20876,14 +21010,14 @@ var ts; } return createSignatureHelpItems(candidates, resolvedSignature, argumentInfo); function getImmediatelyContainingArgumentInfo(node) { - if (node.parent.kind === 151 /* CallExpression */ || node.parent.kind === 152 /* NewExpression */) { + if (node.parent.kind === 151 || node.parent.kind === 152) { var callExpression = node.parent; - if (node.kind === 24 /* LessThanToken */ || node.kind === 16 /* OpenParenToken */) { + if (node.kind === 24 || node.kind === 16) { var list = getChildListThatStartsWithOpenerToken(callExpression, node, sourceFile); var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; ts.Debug.assert(list !== undefined); return { - kind: isTypeArgList ? 0 /* TypeArguments */ : 1 /* CallArguments */, + kind: isTypeArgList ? 0 : 1, invocation: callExpression, argumentsSpan: getApplicableSpanForArguments(list), argumentIndex: 0, @@ -20896,7 +21030,7 @@ var ts; var isTypeArgList = callExpression.typeArguments && callExpression.typeArguments.pos === list.pos; var argumentIndex = (listItemInfo.listItemIndex + 1) >> 1; return { - kind: isTypeArgList ? 0 /* TypeArguments */ : 1 /* CallArguments */, + kind: isTypeArgList ? 0 : 1, invocation: callExpression, argumentsSpan: getApplicableSpanForArguments(list), argumentIndex: argumentIndex, @@ -20904,24 +21038,24 @@ var ts; }; } } - else if (node.kind === 10 /* NoSubstitutionTemplateLiteral */ && node.parent.kind === 153 /* TaggedTemplateExpression */) { + else if (node.kind === 10 && node.parent.kind === 153) { if (ts.isInsideTemplateLiteral(node, position)) { return getArgumentListInfoForTemplate(node.parent, 0); } } - else if (node.kind === 11 /* TemplateHead */ && node.parent.parent.kind === 153 /* TaggedTemplateExpression */) { + else if (node.kind === 11 && node.parent.parent.kind === 153) { var templateExpression = node.parent; var tagExpression = templateExpression.parent; - ts.Debug.assert(templateExpression.kind === 165 /* TemplateExpression */); + ts.Debug.assert(templateExpression.kind === 165); var argumentIndex = ts.isInsideTemplateLiteral(node, position) ? 0 : 1; return getArgumentListInfoForTemplate(tagExpression, argumentIndex); } - else if (node.parent.kind === 169 /* TemplateSpan */ && node.parent.parent.parent.kind === 153 /* TaggedTemplateExpression */) { + else if (node.parent.kind === 169 && node.parent.parent.parent.kind === 153) { var templateSpan = node.parent; var templateExpression = templateSpan.parent; var tagExpression = templateExpression.parent; - ts.Debug.assert(templateExpression.kind === 165 /* TemplateExpression */); - if (node.kind === 13 /* TemplateTail */ && position >= node.getEnd() && !node.isUnterminated) { + ts.Debug.assert(templateExpression.kind === 165); + if (node.kind === 13 && position >= node.getEnd() && !node.isUnterminated) { return undefined; } var spanIndex = templateExpression.templateSpans.indexOf(templateSpan); @@ -20931,7 +21065,7 @@ var ts; return undefined; } function getCommaBasedArgCount(argumentsList) { - return argumentsList.getChildCount() === 0 ? 0 : 1 + ts.countWhere(argumentsList.getChildren(), function (arg) { return arg.kind === 23 /* CommaToken */; }); + return argumentsList.getChildCount() === 0 ? 0 : 1 + ts.countWhere(argumentsList.getChildren(), function (arg) { return arg.kind === 23; }); } function getArgumentIndexForTemplatePiece(spanIndex, node) { ts.Debug.assert(position >= node.getStart(), "Assumed 'position' could not occur before node."); @@ -20944,9 +21078,9 @@ var ts; return spanIndex + 1; } function getArgumentListInfoForTemplate(tagExpression, argumentIndex) { - var argumentCount = tagExpression.template.kind === 10 /* NoSubstitutionTemplateLiteral */ ? 1 : tagExpression.template.templateSpans.length + 1; + var argumentCount = tagExpression.template.kind === 10 ? 1 : tagExpression.template.templateSpans.length + 1; return { - kind: 2 /* TaggedTemplateArguments */, + kind: 2, invocation: tagExpression, argumentsSpan: getApplicableSpanForTaggedTemplate(tagExpression), argumentIndex: argumentIndex, @@ -20962,7 +21096,7 @@ var ts; var template = taggedTemplate.template; var applicableSpanStart = template.getStart(); var applicableSpanEnd = template.getEnd(); - if (template.kind === 165 /* TemplateExpression */) { + if (template.kind === 165) { var lastSpan = ts.lastOrUndefined(template.templateSpans); if (lastSpan.literal.getFullWidth() === 0) { applicableSpanEnd = ts.skipTrivia(sourceFile.text, applicableSpanEnd, false); @@ -20971,7 +21105,7 @@ var ts; return ts.createTextSpan(applicableSpanStart, applicableSpanEnd - applicableSpanStart); } function getContainingArgumentInfo(node) { - for (var n = node; n.kind !== 207 /* SourceFile */; n = n.parent) { + for (var n = node; n.kind !== 207; n = n.parent) { if (ts.isFunctionBlock(n)) { return undefined; } @@ -21008,7 +21142,7 @@ var ts; } function createSignatureHelpItems(candidates, bestSignature, argumentListInfo) { var applicableSpan = argumentListInfo.argumentsSpan; - var isTypeParameterList = argumentListInfo.kind === 0 /* TypeArguments */; + var isTypeParameterList = argumentListInfo.kind === 0; var invocation = argumentListInfo.invocation; var callTarget = ts.getInvokedExpression(invocation); var callTargetSymbol = typeInfoResolver.getSymbolAtLocation(callTarget); @@ -21021,20 +21155,20 @@ var ts; prefixDisplayParts.push.apply(prefixDisplayParts, callTargetDisplayParts); } if (isTypeParameterList) { - prefixDisplayParts.push(ts.punctuationPart(24 /* LessThanToken */)); + prefixDisplayParts.push(ts.punctuationPart(24)); var typeParameters = candidateSignature.typeParameters; signatureHelpParameters = typeParameters && typeParameters.length > 0 ? ts.map(typeParameters, createSignatureHelpParameterForTypeParameter) : emptyArray; - suffixDisplayParts.push(ts.punctuationPart(25 /* GreaterThanToken */)); + suffixDisplayParts.push(ts.punctuationPart(25)); var parameterParts = ts.mapToDisplayParts(function (writer) { return typeInfoResolver.getSymbolDisplayBuilder().buildDisplayForParametersAndDelimiters(candidateSignature.parameters, writer, invocation); }); suffixDisplayParts.push.apply(suffixDisplayParts, parameterParts); } else { var typeParameterParts = ts.mapToDisplayParts(function (writer) { return typeInfoResolver.getSymbolDisplayBuilder().buildDisplayForTypeParametersAndDelimiters(candidateSignature.typeParameters, writer, invocation); }); prefixDisplayParts.push.apply(prefixDisplayParts, typeParameterParts); - prefixDisplayParts.push(ts.punctuationPart(16 /* OpenParenToken */)); + prefixDisplayParts.push(ts.punctuationPart(16)); var parameters = candidateSignature.parameters; signatureHelpParameters = parameters.length > 0 ? ts.map(parameters, createSignatureHelpParameterForParameter) : emptyArray; - suffixDisplayParts.push(ts.punctuationPart(17 /* CloseParenToken */)); + suffixDisplayParts.push(ts.punctuationPart(17)); } var returnTypeParts = ts.mapToDisplayParts(function (writer) { return typeInfoResolver.getSymbolDisplayBuilder().buildReturnTypeDisplay(candidateSignature, writer, invocation); }); suffixDisplayParts.push.apply(suffixDisplayParts, returnTypeParts); @@ -21042,7 +21176,7 @@ var ts; isVariadic: candidateSignature.hasRestParameter, prefixDisplayParts: prefixDisplayParts, suffixDisplayParts: suffixDisplayParts, - separatorDisplayParts: [ts.punctuationPart(23 /* CommaToken */), ts.spacePart()], + separatorDisplayParts: [ts.punctuationPart(23), ts.spacePart()], parameters: signatureHelpParameters, documentation: candidateSignature.getDocumentationComment() }; @@ -21156,7 +21290,7 @@ var ts; ts.findChildOfKind = findChildOfKind; function findContainingList(node) { var syntaxList = ts.forEach(node.parent.getChildren(), function (c) { - if (c.kind === 208 /* SyntaxList */ && c.pos <= node.pos && c.end >= node.end) { + if (c.kind === 208 && c.pos <= node.pos && c.end >= node.end) { return c; } }); @@ -21190,7 +21324,7 @@ var ts; var start = allowPositionInLeadingTrivia ? child.getFullStart() : child.getStart(sourceFile); if (start <= position) { var end = child.getEnd(); - if (position < end || (position === end && child.kind === 1 /* EndOfFileToken */)) { + if (position < end || (position === end && child.kind === 1)) { current = child; continue outer; } @@ -21260,7 +21394,7 @@ var ts; } } } - ts.Debug.assert(startNode !== undefined || n.kind === 207 /* SourceFile */); + ts.Debug.assert(startNode !== undefined || n.kind === 207); if (children.length) { var candidate = findRightmostChildNodeWithTokens(children, children.length); return candidate && findRightmostToken(candidate); @@ -21281,15 +21415,15 @@ var ts; function getNodeModifiers(node) { var flags = ts.getCombinedNodeFlags(node); var result = []; - if (flags & 32 /* Private */) + if (flags & 32) result.push(ts.ScriptElementKindModifier.privateMemberModifier); - if (flags & 64 /* Protected */) + if (flags & 64) result.push(ts.ScriptElementKindModifier.protectedMemberModifier); - if (flags & 16 /* Public */) + if (flags & 16) result.push(ts.ScriptElementKindModifier.publicMemberModifier); - if (flags & 128 /* Static */) + if (flags & 128) result.push(ts.ScriptElementKindModifier.staticModifier); - if (flags & 1 /* Export */) + if (flags & 1) result.push(ts.ScriptElementKindModifier.exportedModifier); if (ts.isInAmbientContext(node)) result.push(ts.ScriptElementKindModifier.ambientModifier); @@ -21297,31 +21431,31 @@ var ts; } ts.getNodeModifiers = getNodeModifiers; function getTypeArgumentOrTypeParameterList(node) { - if (node.kind === 135 /* TypeReference */ || node.kind === 151 /* CallExpression */) { + if (node.kind === 135 || node.kind === 151) { return node.typeArguments; } - if (ts.isAnyFunction(node) || node.kind === 191 /* ClassDeclaration */ || node.kind === 192 /* InterfaceDeclaration */) { + if (ts.isAnyFunction(node) || node.kind === 191 || node.kind === 192) { return node.typeParameters; } return undefined; } ts.getTypeArgumentOrTypeParameterList = getTypeArgumentOrTypeParameterList; function isToken(n) { - return n.kind >= 0 /* FirstToken */ && n.kind <= 120 /* LastToken */; + return n.kind >= 0 && n.kind <= 120; } ts.isToken = isToken; function isWord(kind) { - return kind === 64 /* Identifier */ || ts.isKeyword(kind); + return kind === 64 || ts.isKeyword(kind); } function isPropertyName(kind) { - return kind === 8 /* StringLiteral */ || kind === 7 /* NumericLiteral */ || isWord(kind); + return kind === 8 || kind === 7 || isWord(kind); } function isComment(kind) { - return kind === 2 /* SingleLineCommentTrivia */ || kind === 3 /* MultiLineCommentTrivia */; + return kind === 2 || kind === 3; } ts.isComment = isComment; function isPunctuation(kind) { - return 14 /* FirstPunctuation */ <= kind && kind <= 63 /* LastPunctuation */; + return 14 <= kind && kind <= 63; } ts.isPunctuation = isPunctuation; function isInsideTemplateLiteral(node, position) { @@ -21348,7 +21482,7 @@ var ts; var ts; (function (ts) { function isFirstDeclarationOfSymbolParameter(symbol) { - return symbol.declarations && symbol.declarations.length > 0 && symbol.declarations[0].kind === 124 /* Parameter */; + return symbol.declarations && symbol.declarations.length > 0 && symbol.declarations[0].kind === 124; } ts.isFirstDeclarationOfSymbolParameter = isFirstDeclarationOfSymbolParameter; var displayPartWriter = getDisplayPartWriter(); @@ -21359,12 +21493,12 @@ var ts; resetWriter(); return { displayParts: function () { return displayParts; }, - writeKeyword: function (text) { return writeKind(text, 5 /* keyword */); }, - writeOperator: function (text) { return writeKind(text, 12 /* operator */); }, - writePunctuation: function (text) { return writeKind(text, 15 /* punctuation */); }, - writeSpace: function (text) { return writeKind(text, 16 /* space */); }, - writeStringLiteral: function (text) { return writeKind(text, 8 /* stringLiteral */); }, - writeParameter: function (text) { return writeKind(text, 13 /* parameterName */); }, + writeKeyword: function (text) { return writeKind(text, 5); }, + writeOperator: function (text) { return writeKind(text, 12); }, + writePunctuation: function (text) { return writeKind(text, 15); }, + writeSpace: function (text) { return writeKind(text, 16); }, + writeStringLiteral: function (text) { return writeKind(text, 8); }, + writeParameter: function (text) { return writeKind(text, 13); }, writeSymbol: writeSymbol, writeLine: writeLine, increaseIndent: function () { @@ -21381,7 +21515,7 @@ var ts; if (lineStart) { var indentString = ts.getIndentString(indent); if (indentString) { - displayParts.push(displayPart(indentString, 16 /* space */)); + displayParts.push(displayPart(indentString, 16)); } lineStart = false; } @@ -21408,49 +21542,49 @@ var ts; return displayPart(text, displayPartKind(symbol), symbol); function displayPartKind(symbol) { var flags = symbol.flags; - if (flags & 3 /* Variable */) { - return isFirstDeclarationOfSymbolParameter(symbol) ? 13 /* parameterName */ : 9 /* localName */; + if (flags & 3) { + return isFirstDeclarationOfSymbolParameter(symbol) ? 13 : 9; } - else if (flags & 4 /* Property */) { - return 14 /* propertyName */; + else if (flags & 4) { + return 14; } - else if (flags & 32768 /* GetAccessor */) { - return 14 /* propertyName */; + else if (flags & 32768) { + return 14; } - else if (flags & 65536 /* SetAccessor */) { - return 14 /* propertyName */; + else if (flags & 65536) { + return 14; } - else if (flags & 8 /* EnumMember */) { - return 19 /* enumMemberName */; + else if (flags & 8) { + return 19; } - else if (flags & 16 /* Function */) { - return 20 /* functionName */; + else if (flags & 16) { + return 20; } - else if (flags & 32 /* Class */) { - return 1 /* className */; + else if (flags & 32) { + return 1; } - else if (flags & 64 /* Interface */) { - return 4 /* interfaceName */; + else if (flags & 64) { + return 4; } - else if (flags & 384 /* Enum */) { - return 2 /* enumName */; + else if (flags & 384) { + return 2; } - else if (flags & 1536 /* Module */) { - return 11 /* moduleName */; + else if (flags & 1536) { + return 11; } - else if (flags & 8192 /* Method */) { - return 10 /* methodName */; + else if (flags & 8192) { + return 10; } - else if (flags & 262144 /* TypeParameter */) { - return 18 /* typeParameterName */; + else if (flags & 262144) { + return 18; } - else if (flags & 524288 /* TypeAlias */) { - return 0 /* aliasName */; + else if (flags & 524288) { + return 0; } - else if (flags & 8388608 /* Import */) { - return 0 /* aliasName */; + else if (flags & 8388608) { + return 0; } - return 17 /* text */; + return 17; } } ts.symbolPart = symbolPart; @@ -21462,27 +21596,27 @@ var ts; } ts.displayPart = displayPart; function spacePart() { - return displayPart(" ", 16 /* space */); + return displayPart(" ", 16); } ts.spacePart = spacePart; function keywordPart(kind) { - return displayPart(ts.tokenToString(kind), 5 /* keyword */); + return displayPart(ts.tokenToString(kind), 5); } ts.keywordPart = keywordPart; function punctuationPart(kind) { - return displayPart(ts.tokenToString(kind), 15 /* punctuation */); + return displayPart(ts.tokenToString(kind), 15); } ts.punctuationPart = punctuationPart; function operatorPart(kind) { - return displayPart(ts.tokenToString(kind), 12 /* operator */); + return displayPart(ts.tokenToString(kind), 12); } ts.operatorPart = operatorPart; function textPart(text) { - return displayPart(text, 17 /* text */); + return displayPart(text, 17); } ts.textPart = textPart; function lineBreakPart() { - return displayPart("\n", 6 /* lineBreak */); + return displayPart("\n", 6); } ts.lineBreakPart = lineBreakPart; function mapToDisplayParts(writeDisplayParts) { @@ -21515,7 +21649,7 @@ var ts; (function (ts) { var formatting; (function (formatting) { - var scanner = ts.createScanner(2 /* Latest */, false); + var scanner = ts.createScanner(2, false); var ScanAction; (function (ScanAction) { ScanAction[ScanAction["Scan"] = 0] = "Scan"; @@ -21548,7 +21682,7 @@ var ts; if (isStarted) { if (trailingTrivia) { ts.Debug.assert(trailingTrivia.length !== 0); - wasNewLine = trailingTrivia[trailingTrivia.length - 1].kind === 4 /* NewLineTrivia */; + wasNewLine = trailingTrivia[trailingTrivia.length - 1].kind === 4; } else { wasNewLine = false; @@ -21581,27 +21715,27 @@ var ts; savedPos = scanner.getStartPos(); } function shouldRescanGreaterThanToken(container) { - if (container.kind !== 163 /* BinaryExpression */) { + if (container.kind !== 163) { return false; } switch (container.operator) { - case 27 /* GreaterThanEqualsToken */: - case 59 /* GreaterThanGreaterThanEqualsToken */: - case 60 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 42 /* GreaterThanGreaterThanGreaterThanToken */: - case 41 /* GreaterThanGreaterThanToken */: + case 27: + case 59: + case 60: + case 42: + case 41: return true; } return false; } function shouldRescanSlashToken(container) { - return container.kind === 9 /* RegularExpressionLiteral */; + return container.kind === 9; } function shouldRescanTemplateToken(container) { - return container.kind === 12 /* TemplateMiddle */ || container.kind === 13 /* TemplateTail */; + return container.kind === 12 || container.kind === 13; } function startsWithSlashToken(t) { - return t === 36 /* SlashToken */ || t === 56 /* SlashEqualsToken */; + return t === 36 || t === 56; } function readTokenInfo(n) { if (!isOnToken()) { @@ -21611,7 +21745,7 @@ var ts; token: undefined }; } - var expectedScanAction = shouldRescanGreaterThanToken(n) ? 1 /* RescanGreaterThanToken */ : shouldRescanSlashToken(n) ? 2 /* RescanSlashToken */ : shouldRescanTemplateToken(n) ? 3 /* RescanTemplateToken */ : 0 /* Scan */; + var expectedScanAction = shouldRescanGreaterThanToken(n) ? 1 : shouldRescanSlashToken(n) ? 2 : shouldRescanTemplateToken(n) ? 3 : 0; if (lastTokenInfo && expectedScanAction === lastScanAction) { return fixTokenKind(lastTokenInfo, n); } @@ -21621,22 +21755,22 @@ var ts; scanner.scan(); } var currentToken = scanner.getToken(); - if (expectedScanAction === 1 /* RescanGreaterThanToken */ && currentToken === 25 /* GreaterThanToken */) { + if (expectedScanAction === 1 && currentToken === 25) { currentToken = scanner.reScanGreaterToken(); ts.Debug.assert(n.operator === currentToken); - lastScanAction = 1 /* RescanGreaterThanToken */; + lastScanAction = 1; } - else if (expectedScanAction === 2 /* RescanSlashToken */ && startsWithSlashToken(currentToken)) { + else if (expectedScanAction === 2 && startsWithSlashToken(currentToken)) { currentToken = scanner.reScanSlashToken(); ts.Debug.assert(n.kind === currentToken); - lastScanAction = 2 /* RescanSlashToken */; + lastScanAction = 2; } - else if (expectedScanAction === 3 /* RescanTemplateToken */ && currentToken === 15 /* CloseBraceToken */) { + else if (expectedScanAction === 3 && currentToken === 15) { currentToken = scanner.reScanTemplateToken(); - lastScanAction = 3 /* RescanTemplateToken */; + lastScanAction = 3; } else { - lastScanAction = 0 /* Scan */; + lastScanAction = 0; } var token = { pos: scanner.getStartPos(), @@ -21660,7 +21794,7 @@ var ts; trailingTrivia = []; } trailingTrivia.push(trivia); - if (currentToken === 4 /* NewLineTrivia */) { + if (currentToken === 4) { scanner.scan(); break; } @@ -21675,7 +21809,7 @@ var ts; function isOnToken() { var current = (lastTokenInfo && lastTokenInfo.token.kind) || scanner.getToken(); var startPos = (lastTokenInfo && lastTokenInfo.token.pos) || scanner.getStartPos(); - return startPos < endPos && current !== 1 /* EndOfFileToken */ && !ts.isTrivia(current); + return startPos < endPos && current !== 1 && !ts.isTrivia(current); } function fixTokenKind(tokenInfo, container) { if (ts.isToken(container) && tokenInfo.token.kind !== container.kind) { @@ -21751,8 +21885,8 @@ var ts; return startLine == endLine; }; FormattingContext.prototype.BlockIsOnOneLine = function (node) { - var openBrace = ts.findChildOfKind(node, 14 /* OpenBraceToken */, this.sourceFile); - var closeBrace = ts.findChildOfKind(node, 15 /* CloseBraceToken */, this.sourceFile); + var openBrace = ts.findChildOfKind(node, 14, this.sourceFile); + var closeBrace = ts.findChildOfKind(node, 15, this.sourceFile); if (openBrace && closeBrace) { var startLine = this.sourceFile.getLineAndCharacterFromPosition(openBrace.getEnd()).line; var endLine = this.sourceFile.getLineAndCharacterFromPosition(closeBrace.getStart(this.sourceFile)).line; @@ -21785,7 +21919,7 @@ var ts; (function (formatting) { var Rule = (function () { function Rule(Descriptor, Operation, Flag) { - if (Flag === void 0) { Flag = 0 /* None */; } + if (Flag === void 0) { Flag = 0; } this.Descriptor = Descriptor; this.Operation = Operation; this.Flag = Flag; @@ -21915,72 +22049,72 @@ var ts; (function (formatting) { var Rules = (function () { function Rules() { - this.IgnoreBeforeComment = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.Comments), formatting.RuleOperation.create1(1 /* Ignore */)); - this.IgnoreAfterLineComment = new formatting.Rule(formatting.RuleDescriptor.create3(2 /* SingleLineCommentTrivia */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create1(1 /* Ignore */)); - this.NoSpaceBeforeSemicolon = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 22 /* SemicolonToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceBeforeColon = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 51 /* ColonToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8 /* Delete */)); - this.NoSpaceBeforeQMark = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 50 /* QuestionToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8 /* Delete */)); - this.SpaceAfterColon = new formatting.Rule(formatting.RuleDescriptor.create3(51 /* ColonToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 2 /* Space */)); - this.SpaceAfterQMark = new formatting.Rule(formatting.RuleDescriptor.create3(50 /* QuestionToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 2 /* Space */)); - this.SpaceAfterSemicolon = new formatting.Rule(formatting.RuleDescriptor.create3(22 /* SemicolonToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */)); - this.SpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15 /* CloseBraceToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsAfterCodeBlockContext), 2 /* Space */)); - this.SpaceBetweenCloseBraceAndElse = new formatting.Rule(formatting.RuleDescriptor.create1(15 /* CloseBraceToken */, 75 /* ElseKeyword */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */)); - this.SpaceBetweenCloseBraceAndWhile = new formatting.Rule(formatting.RuleDescriptor.create1(15 /* CloseBraceToken */, 99 /* WhileKeyword */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */)); - this.NoSpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15 /* CloseBraceToken */, formatting.Shared.TokenRange.FromTokens([17 /* CloseParenToken */, 19 /* CloseBracketToken */, 23 /* CommaToken */, 22 /* SemicolonToken */])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceBeforeDot = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 20 /* DotToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceAfterDot = new formatting.Rule(formatting.RuleDescriptor.create3(20 /* DotToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceBeforeOpenBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 18 /* OpenBracketToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceAfterOpenBracket = new formatting.Rule(formatting.RuleDescriptor.create3(18 /* OpenBracketToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceBeforeCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 19 /* CloseBracketToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceAfterCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create3(19 /* CloseBracketToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); + this.IgnoreBeforeComment = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.Comments), formatting.RuleOperation.create1(1)); + this.IgnoreAfterLineComment = new formatting.Rule(formatting.RuleDescriptor.create3(2, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create1(1)); + this.NoSpaceBeforeSemicolon = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 22), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeColon = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 51), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); + this.NoSpaceBeforeQMark = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 50), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); + this.SpaceAfterColon = new formatting.Rule(formatting.RuleDescriptor.create3(51, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 2)); + this.SpaceAfterQMark = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 2)); + this.SpaceAfterSemicolon = new formatting.Rule(formatting.RuleDescriptor.create3(22, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsAfterCodeBlockContext), 2)); + this.SpaceBetweenCloseBraceAndElse = new formatting.Rule(formatting.RuleDescriptor.create1(15, 75), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceBetweenCloseBraceAndWhile = new formatting.Rule(formatting.RuleDescriptor.create1(15, 99), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceAfterCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create3(15, formatting.Shared.TokenRange.FromTokens([17, 19, 23, 22])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeDot = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 20), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterDot = new formatting.Rule(formatting.RuleDescriptor.create3(20, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeOpenBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 18), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterOpenBracket = new formatting.Rule(formatting.RuleDescriptor.create3(18, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 19), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterCloseBracket = new formatting.Rule(formatting.RuleDescriptor.create3(19, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); this.FunctionOpenBraceLeftTokenRange = formatting.Shared.TokenRange.AnyIncludingMultilineComments; - this.SpaceBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 14 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2 /* Space */), 1 /* CanDeleteNewLines */); - this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([64 /* Identifier */, 3 /* MultiLineCommentTrivia */]); - this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 14 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2 /* Space */), 1 /* CanDeleteNewLines */); - this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([17 /* CloseParenToken */, 3 /* MultiLineCommentTrivia */, 74 /* DoKeyword */, 95 /* TryKeyword */, 80 /* FinallyKeyword */, 75 /* ElseKeyword */]); - this.SpaceBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 14 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2 /* Space */), 1 /* CanDeleteNewLines */); - this.SpaceAfterOpenBrace = new formatting.Rule(formatting.RuleDescriptor.create3(14 /* OpenBraceToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2 /* Space */)); - this.SpaceBeforeCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 15 /* CloseBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2 /* Space */)); - this.NoSpaceBetweenEmptyBraceBrackets = new formatting.Rule(formatting.RuleDescriptor.create1(14 /* OpenBraceToken */, 15 /* CloseBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsObjectContext), 8 /* Delete */)); - this.NewLineAfterOpenBraceInBlockContext = new formatting.Rule(formatting.RuleDescriptor.create3(14 /* OpenBraceToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsMultilineBlockContext), 4 /* NewLine */)); - this.NewLineBeforeCloseBraceInBlockContext = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.AnyIncludingMultilineComments, 15 /* CloseBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsMultilineBlockContext), 4 /* NewLine */)); - this.NoSpaceAfterUnaryPrefixOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.UnaryPrefixOperators, formatting.Shared.TokenRange.UnaryPrefixExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8 /* Delete */)); - this.NoSpaceAfterUnaryPreincrementOperator = new formatting.Rule(formatting.RuleDescriptor.create3(38 /* PlusPlusToken */, formatting.Shared.TokenRange.UnaryPreincrementExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceAfterUnaryPredecrementOperator = new formatting.Rule(formatting.RuleDescriptor.create3(39 /* MinusMinusToken */, formatting.Shared.TokenRange.UnaryPredecrementExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceBeforeUnaryPostincrementOperator = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.UnaryPostincrementExpressions, 38 /* PlusPlusToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceBeforeUnaryPostdecrementOperator = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.UnaryPostdecrementExpressions, 39 /* MinusMinusToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.SpaceAfterPostincrementWhenFollowedByAdd = new formatting.Rule(formatting.RuleDescriptor.create1(38 /* PlusPlusToken */, 33 /* PlusToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2 /* Space */)); - this.SpaceAfterAddWhenFollowedByUnaryPlus = new formatting.Rule(formatting.RuleDescriptor.create1(33 /* PlusToken */, 33 /* PlusToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2 /* Space */)); - this.SpaceAfterAddWhenFollowedByPreincrement = new formatting.Rule(formatting.RuleDescriptor.create1(33 /* PlusToken */, 38 /* PlusPlusToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2 /* Space */)); - this.SpaceAfterPostdecrementWhenFollowedBySubtract = new formatting.Rule(formatting.RuleDescriptor.create1(39 /* MinusMinusToken */, 34 /* MinusToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2 /* Space */)); - this.SpaceAfterSubtractWhenFollowedByUnaryMinus = new formatting.Rule(formatting.RuleDescriptor.create1(34 /* MinusToken */, 34 /* MinusToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2 /* Space */)); - this.SpaceAfterSubtractWhenFollowedByPredecrement = new formatting.Rule(formatting.RuleDescriptor.create1(34 /* MinusToken */, 39 /* MinusMinusToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2 /* Space */)); - this.NoSpaceBeforeComma = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 23 /* CommaToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.SpaceAfterCertainKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([97 /* VarKeyword */, 93 /* ThrowKeyword */, 87 /* NewKeyword */, 73 /* DeleteKeyword */, 89 /* ReturnKeyword */, 96 /* TypeOfKeyword */]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */)); - this.NoSpaceBeforeOpenParenInFuncCall = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16 /* OpenParenToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionCallOrNewContext, Rules.IsPreviousTokenNotComma), 8 /* Delete */)); - this.SpaceAfterFunctionInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create3(82 /* FunctionKeyword */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2 /* Space */)); - this.NoSpaceBeforeOpenParenInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16 /* OpenParenToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionDeclContext), 8 /* Delete */)); - this.SpaceAfterVoidOperator = new formatting.Rule(formatting.RuleDescriptor.create3(98 /* VoidKeyword */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsVoidOpContext), 2 /* Space */)); - this.NoSpaceBetweenReturnAndSemicolon = new formatting.Rule(formatting.RuleDescriptor.create1(89 /* ReturnKeyword */, 22 /* SemicolonToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.SpaceBetweenStatements = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([17 /* CloseParenToken */, 74 /* DoKeyword */, 75 /* ElseKeyword */, 66 /* CaseKeyword */]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotForContext), 2 /* Space */)); - this.SpaceAfterTryFinally = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([95 /* TryKeyword */, 80 /* FinallyKeyword */]), 14 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */)); - this.SpaceAfterGetSetInMember = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([114 /* GetKeyword */, 118 /* SetKeyword */]), 64 /* Identifier */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2 /* Space */)); - this.SpaceBeforeBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryKeywordOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2 /* Space */)); - this.SpaceAfterBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryKeywordOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2 /* Space */)); - this.NoSpaceAfterConstructor = new formatting.Rule(formatting.RuleDescriptor.create1(112 /* ConstructorKeyword */, 16 /* OpenParenToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceAfterModuleImport = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([115 /* ModuleKeyword */, 116 /* RequireKeyword */]), 16 /* OpenParenToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.SpaceAfterCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([68 /* ClassKeyword */, 113 /* DeclareKeyword */, 76 /* EnumKeyword */, 77 /* ExportKeyword */, 78 /* ExtendsKeyword */, 114 /* GetKeyword */, 101 /* ImplementsKeyword */, 84 /* ImportKeyword */, 102 /* InterfaceKeyword */, 115 /* ModuleKeyword */, 105 /* PrivateKeyword */, 107 /* PublicKeyword */, 118 /* SetKeyword */, 108 /* StaticKeyword */]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */)); - this.SpaceBeforeCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.FromTokens([78 /* ExtendsKeyword */, 101 /* ImplementsKeyword */])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */)); - this.SpaceAfterModuleName = new formatting.Rule(formatting.RuleDescriptor.create1(8 /* StringLiteral */, 14 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsModuleDeclContext), 2 /* Space */)); - this.SpaceAfterArrow = new formatting.Rule(formatting.RuleDescriptor.create3(32 /* EqualsGreaterThanToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */)); - this.NoSpaceAfterEllipsis = new formatting.Rule(formatting.RuleDescriptor.create1(21 /* DotDotDotToken */, 64 /* Identifier */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceAfterOptionalParameters = new formatting.Rule(formatting.RuleDescriptor.create3(50 /* QuestionToken */, formatting.Shared.TokenRange.FromTokens([17 /* CloseParenToken */, 23 /* CommaToken */])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8 /* Delete */)); - this.NoSpaceBeforeOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.TypeNames, 24 /* LessThanToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8 /* Delete */)); - this.NoSpaceBetweenCloseParenAndAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create1(17 /* CloseParenToken */, 24 /* LessThanToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8 /* Delete */)); - this.NoSpaceAfterOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(24 /* LessThanToken */, formatting.Shared.TokenRange.TypeNames), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8 /* Delete */)); - this.NoSpaceBeforeCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 25 /* GreaterThanToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8 /* Delete */)); - this.NoSpaceAfterCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(25 /* GreaterThanToken */, formatting.Shared.TokenRange.FromTokens([16 /* OpenParenToken */, 18 /* OpenBracketToken */, 25 /* GreaterThanToken */, 23 /* CommaToken */])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8 /* Delete */)); - this.NoSpaceBetweenEmptyInterfaceBraceBrackets = new formatting.Rule(formatting.RuleDescriptor.create1(14 /* OpenBraceToken */, 15 /* CloseBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsObjectTypeContext), 8 /* Delete */)); + this.SpaceBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); + this.TypeScriptOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([64, 3]); + this.SpaceBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); + this.ControlOpenBraceLeftTokenRange = formatting.Shared.TokenRange.FromTokens([17, 3, 74, 95, 80, 75]); + this.SpaceBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsNotFormatOnEnter, Rules.IsSameLineTokenOrBeforeMultilineBlockContext), 2), 1); + this.SpaceAfterOpenBrace = new formatting.Rule(formatting.RuleDescriptor.create3(14, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); + this.SpaceBeforeCloseBrace = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSingleLineBlockContext), 2)); + this.NoSpaceBetweenEmptyBraceBrackets = new formatting.Rule(formatting.RuleDescriptor.create1(14, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsObjectContext), 8)); + this.NewLineAfterOpenBraceInBlockContext = new formatting.Rule(formatting.RuleDescriptor.create3(14, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsMultilineBlockContext), 4)); + this.NewLineBeforeCloseBraceInBlockContext = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.AnyIncludingMultilineComments, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsMultilineBlockContext), 4)); + this.NoSpaceAfterUnaryPrefixOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.UnaryPrefixOperators, formatting.Shared.TokenRange.UnaryPrefixExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); + this.NoSpaceAfterUnaryPreincrementOperator = new formatting.Rule(formatting.RuleDescriptor.create3(38, formatting.Shared.TokenRange.UnaryPreincrementExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterUnaryPredecrementOperator = new formatting.Rule(formatting.RuleDescriptor.create3(39, formatting.Shared.TokenRange.UnaryPredecrementExpressions), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeUnaryPostincrementOperator = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.UnaryPostincrementExpressions, 38), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeUnaryPostdecrementOperator = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.UnaryPostdecrementExpressions, 39), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterPostincrementWhenFollowedByAdd = new formatting.Rule(formatting.RuleDescriptor.create1(38, 33), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterAddWhenFollowedByUnaryPlus = new formatting.Rule(formatting.RuleDescriptor.create1(33, 33), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterAddWhenFollowedByPreincrement = new formatting.Rule(formatting.RuleDescriptor.create1(33, 38), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterPostdecrementWhenFollowedBySubtract = new formatting.Rule(formatting.RuleDescriptor.create1(39, 34), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterSubtractWhenFollowedByUnaryMinus = new formatting.Rule(formatting.RuleDescriptor.create1(34, 34), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterSubtractWhenFollowedByPredecrement = new formatting.Rule(formatting.RuleDescriptor.create1(34, 39), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.NoSpaceBeforeComma = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 23), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterCertainKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([97, 93, 87, 73, 89, 96]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceBeforeOpenParenInFuncCall = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionCallOrNewContext, Rules.IsPreviousTokenNotComma), 8)); + this.SpaceAfterFunctionInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create3(82, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); + this.NoSpaceBeforeOpenParenInFuncDecl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsFunctionDeclContext), 8)); + this.SpaceAfterVoidOperator = new formatting.Rule(formatting.RuleDescriptor.create3(98, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsVoidOpContext), 2)); + this.NoSpaceBetweenReturnAndSemicolon = new formatting.Rule(formatting.RuleDescriptor.create1(89, 22), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceBetweenStatements = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([17, 74, 75, 66]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotForContext), 2)); + this.SpaceAfterTryFinally = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([95, 80]), 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterGetSetInMember = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([114, 118]), 64), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); + this.SpaceBeforeBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryKeywordOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterBinaryKeywordOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryKeywordOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.NoSpaceAfterConstructor = new formatting.Rule(formatting.RuleDescriptor.create1(112, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterModuleImport = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.FromTokens([115, 116]), 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.FromTokens([68, 113, 76, 77, 78, 114, 101, 84, 102, 115, 105, 107, 118, 108]), formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceBeforeCertainTypeScriptKeywords = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.FromTokens([78, 101])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceAfterModuleName = new formatting.Rule(formatting.RuleDescriptor.create1(8, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsModuleDeclContext), 2)); + this.SpaceAfterArrow = new formatting.Rule(formatting.RuleDescriptor.create3(32, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceAfterEllipsis = new formatting.Rule(formatting.RuleDescriptor.create1(21, 64), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterOptionalParameters = new formatting.Rule(formatting.RuleDescriptor.create3(50, formatting.Shared.TokenRange.FromTokens([17, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsNotBinaryOpContext), 8)); + this.NoSpaceBeforeOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.TypeNames, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceBetweenCloseParenAndAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create1(17, 24), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceAfterOpenAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(24, formatting.Shared.TokenRange.TypeNames), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceBeforeCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 25), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceAfterCloseAngularBracket = new formatting.Rule(formatting.RuleDescriptor.create3(25, formatting.Shared.TokenRange.FromTokens([16, 18, 25, 23])), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsTypeArgumentOrParameterContext), 8)); + this.NoSpaceBetweenEmptyInterfaceBraceBrackets = new formatting.Rule(formatting.RuleDescriptor.create1(14, 15), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsObjectTypeContext), 8)); this.HighPriorityCommonRules = [ this.IgnoreBeforeComment, this.IgnoreAfterLineComment, @@ -22048,26 +22182,26 @@ var ts; this.SpaceBetweenStatements, this.SpaceAfterTryFinally ]; - this.SpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23 /* CommaToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */)); - this.NoSpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23 /* CommaToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.SpaceBeforeBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2 /* Space */)); - this.SpaceAfterBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2 /* Space */)); - this.NoSpaceBeforeBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 8 /* Delete */)); - this.NoSpaceAfterBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 8 /* Delete */)); - this.SpaceAfterKeywordInControl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Keywords, 16 /* OpenParenToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext), 2 /* Space */)); - this.NoSpaceAfterKeywordInControl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Keywords, 16 /* OpenParenToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext), 8 /* Delete */)); - this.NewLineBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 14 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeMultilineBlockContext), 4 /* NewLine */), 1 /* CanDeleteNewLines */); - this.NewLineBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 14 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsBeforeMultilineBlockContext), 4 /* NewLine */), 1 /* CanDeleteNewLines */); - this.NewLineBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 14 /* OpenBraceToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsBeforeMultilineBlockContext), 4 /* NewLine */), 1 /* CanDeleteNewLines */); - this.SpaceAfterSemicolonInFor = new formatting.Rule(formatting.RuleDescriptor.create3(22 /* SemicolonToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsForContext), 2 /* Space */)); - this.NoSpaceAfterSemicolonInFor = new formatting.Rule(formatting.RuleDescriptor.create3(22 /* SemicolonToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsForContext), 8 /* Delete */)); - this.SpaceAfterOpenParen = new formatting.Rule(formatting.RuleDescriptor.create3(16 /* OpenParenToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */)); - this.SpaceBeforeCloseParen = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 17 /* CloseParenToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2 /* Space */)); - this.NoSpaceBetweenParens = new formatting.Rule(formatting.RuleDescriptor.create1(16 /* OpenParenToken */, 17 /* CloseParenToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceAfterOpenParen = new formatting.Rule(formatting.RuleDescriptor.create3(16 /* OpenParenToken */, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.NoSpaceBeforeCloseParen = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 17 /* CloseParenToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8 /* Delete */)); - this.SpaceAfterAnonymousFunctionKeyword = new formatting.Rule(formatting.RuleDescriptor.create1(82 /* FunctionKeyword */, 16 /* OpenParenToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2 /* Space */)); - this.NoSpaceAfterAnonymousFunctionKeyword = new formatting.Rule(formatting.RuleDescriptor.create1(82 /* FunctionKeyword */, 16 /* OpenParenToken */), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 8 /* Delete */)); + this.SpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceAfterComma = new formatting.Rule(formatting.RuleDescriptor.create3(23, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceBeforeBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.SpaceAfterBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 2)); + this.NoSpaceBeforeBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.Any, formatting.Shared.TokenRange.BinaryOperators), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 8)); + this.NoSpaceAfterBinaryOperator = new formatting.Rule(formatting.RuleDescriptor.create4(formatting.Shared.TokenRange.BinaryOperators, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsBinaryOpContext), 8)); + this.SpaceAfterKeywordInControl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Keywords, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext), 2)); + this.NoSpaceAfterKeywordInControl = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Keywords, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext), 8)); + this.NewLineBeforeOpenBraceInFunction = new formatting.Rule(formatting.RuleDescriptor.create2(this.FunctionOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext, Rules.IsBeforeMultilineBlockContext), 4), 1); + this.NewLineBeforeOpenBraceInTypeScriptDeclWithBlock = new formatting.Rule(formatting.RuleDescriptor.create2(this.TypeScriptOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsTypeScriptDeclWithBlockContext, Rules.IsBeforeMultilineBlockContext), 4), 1); + this.NewLineBeforeOpenBraceInControl = new formatting.Rule(formatting.RuleDescriptor.create2(this.ControlOpenBraceLeftTokenRange, 14), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsControlDeclContext, Rules.IsBeforeMultilineBlockContext), 4), 1); + this.SpaceAfterSemicolonInFor = new formatting.Rule(formatting.RuleDescriptor.create3(22, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsForContext), 2)); + this.NoSpaceAfterSemicolonInFor = new formatting.Rule(formatting.RuleDescriptor.create3(22, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext, Rules.IsForContext), 8)); + this.SpaceAfterOpenParen = new formatting.Rule(formatting.RuleDescriptor.create3(16, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.SpaceBeforeCloseParen = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 17), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 2)); + this.NoSpaceBetweenParens = new formatting.Rule(formatting.RuleDescriptor.create1(16, 17), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceAfterOpenParen = new formatting.Rule(formatting.RuleDescriptor.create3(16, formatting.Shared.TokenRange.Any), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.NoSpaceBeforeCloseParen = new formatting.Rule(formatting.RuleDescriptor.create2(formatting.Shared.TokenRange.Any, 17), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsSameLineTokenContext), 8)); + this.SpaceAfterAnonymousFunctionKeyword = new formatting.Rule(formatting.RuleDescriptor.create1(82, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 2)); + this.NoSpaceAfterAnonymousFunctionKeyword = new formatting.Rule(formatting.RuleDescriptor.create1(82, 16), formatting.RuleOperation.create2(new formatting.RuleOperationContext(Rules.IsFunctionDeclContext), 8)); } Rules.prototype.getRuleName = function (rule) { var o = this; @@ -22079,25 +22213,25 @@ var ts; throw new Error("Unknown rule"); }; Rules.IsForContext = function (context) { - return context.contextNode.kind === 177 /* ForStatement */; + return context.contextNode.kind === 177; }; Rules.IsNotForContext = function (context) { return !Rules.IsForContext(context); }; Rules.IsBinaryOpContext = function (context) { switch (context.contextNode.kind) { - case 163 /* BinaryExpression */: - case 164 /* ConditionalExpression */: + case 163: + case 164: return true; - case 197 /* ImportDeclaration */: - case 188 /* VariableDeclaration */: - case 124 /* Parameter */: - case 206 /* EnumMember */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - return context.currentTokenSpan.kind === 52 /* EqualsToken */ || context.nextTokenSpan.kind === 52 /* EqualsToken */; - case 178 /* ForInStatement */: - return context.currentTokenSpan.kind === 85 /* InKeyword */ || context.nextTokenSpan.kind === 85 /* InKeyword */; + case 197: + case 188: + case 124: + case 206: + case 126: + case 125: + return context.currentTokenSpan.kind === 52 || context.nextTokenSpan.kind === 52; + case 178: + return context.currentTokenSpan.kind === 85 || context.nextTokenSpan.kind === 85; } return false; }; @@ -22127,26 +22261,26 @@ var ts; return true; } switch (node.kind) { - case 170 /* Block */: - case 183 /* SwitchStatement */: - case 148 /* ObjectLiteralExpression */: - case 196 /* ModuleBlock */: + case 170: + case 183: + case 148: + case 196: return true; } return false; }; Rules.IsFunctionDeclContext = function (context) { switch (context.contextNode.kind) { - case 190 /* FunctionDeclaration */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 132 /* CallSignature */: - case 156 /* FunctionExpression */: - case 129 /* Constructor */: - case 157 /* ArrowFunction */: - case 192 /* InterfaceDeclaration */: + case 190: + case 128: + case 127: + case 130: + case 131: + case 132: + case 156: + case 129: + case 157: + case 192: return true; } return false; @@ -22156,88 +22290,88 @@ var ts; }; Rules.NodeIsTypeScriptDeclWithBlockContext = function (node) { switch (node.kind) { - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 194 /* EnumDeclaration */: - case 139 /* TypeLiteral */: - case 195 /* ModuleDeclaration */: + case 191: + case 192: + case 194: + case 139: + case 195: return true; } return false; }; Rules.IsAfterCodeBlockContext = function (context) { switch (context.currentTokenParent.kind) { - case 191 /* ClassDeclaration */: - case 195 /* ModuleDeclaration */: - case 194 /* EnumDeclaration */: - case 170 /* Block */: - case 203 /* CatchClause */: - case 196 /* ModuleBlock */: - case 183 /* SwitchStatement */: + case 191: + case 195: + case 194: + case 170: + case 203: + case 196: + case 183: return true; } return false; }; Rules.IsControlDeclContext = function (context) { switch (context.contextNode.kind) { - case 174 /* IfStatement */: - case 183 /* SwitchStatement */: - case 177 /* ForStatement */: - case 178 /* ForInStatement */: - case 176 /* WhileStatement */: - case 186 /* TryStatement */: - case 175 /* DoStatement */: - case 182 /* WithStatement */: - case 203 /* CatchClause */: + case 174: + case 183: + case 177: + case 178: + case 176: + case 186: + case 175: + case 182: + case 203: return true; default: return false; } }; Rules.IsObjectContext = function (context) { - return context.contextNode.kind === 148 /* ObjectLiteralExpression */; + return context.contextNode.kind === 148; }; Rules.IsFunctionCallContext = function (context) { - return context.contextNode.kind === 151 /* CallExpression */; + return context.contextNode.kind === 151; }; Rules.IsNewContext = function (context) { - return context.contextNode.kind === 152 /* NewExpression */; + return context.contextNode.kind === 152; }; Rules.IsFunctionCallOrNewContext = function (context) { return Rules.IsFunctionCallContext(context) || Rules.IsNewContext(context); }; Rules.IsPreviousTokenNotComma = function (context) { - return context.currentTokenSpan.kind !== 23 /* CommaToken */; + return context.currentTokenSpan.kind !== 23; }; Rules.IsSameLineTokenContext = function (context) { return context.TokensAreOnSameLine(); }; Rules.IsNotFormatOnEnter = function (context) { - return context.formattingRequestKind != 2 /* FormatOnEnter */; + return context.formattingRequestKind != 2; }; Rules.IsModuleDeclContext = function (context) { - return context.contextNode.kind === 195 /* ModuleDeclaration */; + return context.contextNode.kind === 195; }; Rules.IsObjectTypeContext = function (context) { - return context.contextNode.kind === 139 /* TypeLiteral */; + return context.contextNode.kind === 139; }; Rules.IsTypeArgumentOrParameter = function (token, parent) { - if (token.kind !== 24 /* LessThanToken */ && token.kind !== 25 /* GreaterThanToken */) { + if (token.kind !== 24 && token.kind !== 25) { return false; } switch (parent.kind) { - case 135 /* TypeReference */: - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 132 /* CallSignature */: - case 133 /* ConstructSignature */: - case 151 /* CallExpression */: - case 152 /* NewExpression */: + case 135: + case 191: + case 192: + case 190: + case 156: + case 157: + case 128: + case 127: + case 132: + case 133: + case 151: + case 152: return true; default: return false; @@ -22247,7 +22381,7 @@ var ts; return Rules.IsTypeArgumentOrParameter(context.currentTokenSpan, context.currentTokenParent) || Rules.IsTypeArgumentOrParameter(context.nextTokenSpan, context.nextTokenParent); }; Rules.IsVoidOpContext = function (context) { - return context.currentTokenSpan.kind === 98 /* VoidKeyword */ && context.currentTokenParent.kind === 160 /* VoidExpression */; + return context.currentTokenSpan.kind === 98 && context.currentTokenParent.kind === 160; }; return Rules; })(); @@ -22269,7 +22403,7 @@ var ts; return result; }; RulesMap.prototype.Initialize = function (rules) { - this.mapRowLength = 120 /* LastToken */ + 1; + this.mapRowLength = 120 + 1; this.map = new Array(this.mapRowLength * this.mapRowLength); var rulesBucketConstructionStateList = new Array(this.map.length); this.FillRules(rules, rulesBucketConstructionStateList); @@ -22360,8 +22494,8 @@ var ts; }; RulesBucket.prototype.AddRule = function (rule, specificTokens, constructionState, rulesBucketIndex) { var position; - if (rule.Operation.Action == 1 /* Ignore */) { - position = specificTokens ? 0 /* IgnoreRulesSpecific */ : RulesPosition.IgnoreRulesAny; + if (rule.Operation.Action == 1) { + position = specificTokens ? 0 : RulesPosition.IgnoreRulesAny; } else if (!rule.Operation.Context.IsAny()) { position = specificTokens ? RulesPosition.ContextRulesSpecific : RulesPosition.ContextRulesAny; @@ -22437,7 +22571,7 @@ var ts; } TokenAllAccess.prototype.GetTokens = function () { var result = []; - for (var token = 0 /* FirstToken */; token <= 120 /* LastToken */; token++) { + for (var token = 0; token <= 120; token++) { result.push(token); } return result; @@ -22478,18 +22612,18 @@ var ts; return this.tokenAccess.toString(); }; TokenRange.Any = TokenRange.AllTokens(); - TokenRange.AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([3 /* MultiLineCommentTrivia */])); - TokenRange.Keywords = TokenRange.FromRange(65 /* FirstKeyword */, 120 /* LastKeyword */); - TokenRange.BinaryOperators = TokenRange.FromRange(24 /* FirstBinaryOperator */, 63 /* LastBinaryOperator */); - TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([85 /* InKeyword */, 86 /* InstanceOfKeyword */]); - TokenRange.UnaryPrefixOperators = TokenRange.FromTokens([38 /* PlusPlusToken */, 39 /* MinusMinusToken */, 47 /* TildeToken */, 46 /* ExclamationToken */]); - TokenRange.UnaryPrefixExpressions = TokenRange.FromTokens([7 /* NumericLiteral */, 64 /* Identifier */, 16 /* OpenParenToken */, 18 /* OpenBracketToken */, 14 /* OpenBraceToken */, 92 /* ThisKeyword */, 87 /* NewKeyword */]); - TokenRange.UnaryPreincrementExpressions = TokenRange.FromTokens([64 /* Identifier */, 16 /* OpenParenToken */, 92 /* ThisKeyword */, 87 /* NewKeyword */]); - TokenRange.UnaryPostincrementExpressions = TokenRange.FromTokens([64 /* Identifier */, 17 /* CloseParenToken */, 19 /* CloseBracketToken */, 87 /* NewKeyword */]); - TokenRange.UnaryPredecrementExpressions = TokenRange.FromTokens([64 /* Identifier */, 16 /* OpenParenToken */, 92 /* ThisKeyword */, 87 /* NewKeyword */]); - TokenRange.UnaryPostdecrementExpressions = TokenRange.FromTokens([64 /* Identifier */, 17 /* CloseParenToken */, 19 /* CloseBracketToken */, 87 /* NewKeyword */]); - TokenRange.Comments = TokenRange.FromTokens([2 /* SingleLineCommentTrivia */, 3 /* MultiLineCommentTrivia */]); - TokenRange.TypeNames = TokenRange.FromTokens([64 /* Identifier */, 117 /* NumberKeyword */, 119 /* StringKeyword */, 111 /* BooleanKeyword */, 98 /* VoidKeyword */, 110 /* AnyKeyword */]); + TokenRange.AnyIncludingMultilineComments = TokenRange.FromTokens(TokenRange.Any.GetTokens().concat([3])); + TokenRange.Keywords = TokenRange.FromRange(65, 120); + TokenRange.BinaryOperators = TokenRange.FromRange(24, 63); + TokenRange.BinaryKeywordOperators = TokenRange.FromTokens([85, 86]); + TokenRange.UnaryPrefixOperators = TokenRange.FromTokens([38, 39, 47, 46]); + TokenRange.UnaryPrefixExpressions = TokenRange.FromTokens([7, 64, 16, 18, 14, 92, 87]); + TokenRange.UnaryPreincrementExpressions = TokenRange.FromTokens([64, 16, 92, 87]); + TokenRange.UnaryPostincrementExpressions = TokenRange.FromTokens([64, 17, 19, 87]); + TokenRange.UnaryPredecrementExpressions = TokenRange.FromTokens([64, 16, 92, 87]); + TokenRange.UnaryPostdecrementExpressions = TokenRange.FromTokens([64, 17, 19, 87]); + TokenRange.Comments = TokenRange.FromTokens([2, 3]); + TokenRange.TypeNames = TokenRange.FromTokens([64, 117, 119, 111, 98, 110]); return TokenRange; })(); Shared.TokenRange = TokenRange; @@ -22501,8 +22635,7 @@ var ts; var formatting; (function (formatting) { var RulesProvider = (function () { - function RulesProvider(logger) { - this.logger = logger; + function RulesProvider() { this.globalRules = new formatting.Rules(); } RulesProvider.prototype.getRuleName = function (rule) { @@ -22599,15 +22732,15 @@ var ts; pos: ts.getStartPositionOfLine(line - 1, sourceFile), end: ts.getEndLinePosition(line, sourceFile) + 1 }; - return formatSpan(span, sourceFile, options, rulesProvider, 2 /* FormatOnEnter */); + return formatSpan(span, sourceFile, options, rulesProvider, 2); } formatting.formatOnEnter = formatOnEnter; function formatOnSemicolon(position, sourceFile, rulesProvider, options) { - return formatOutermostParent(position, 22 /* SemicolonToken */, sourceFile, options, rulesProvider, 3 /* FormatOnSemicolon */); + return formatOutermostParent(position, 22, sourceFile, options, rulesProvider, 3); } formatting.formatOnSemicolon = formatOnSemicolon; function formatOnClosingCurly(position, sourceFile, rulesProvider, options) { - return formatOutermostParent(position, 15 /* CloseBraceToken */, sourceFile, options, rulesProvider, 4 /* FormatOnClosingCurlyBrace */); + return formatOutermostParent(position, 15, sourceFile, options, rulesProvider, 4); } formatting.formatOnClosingCurly = formatOnClosingCurly; function formatDocument(sourceFile, rulesProvider, options) { @@ -22615,7 +22748,7 @@ var ts; pos: 0, end: sourceFile.text.length }; - return formatSpan(span, sourceFile, options, rulesProvider, 0 /* FormatDocument */); + return formatSpan(span, sourceFile, options, rulesProvider, 0); } formatting.formatDocument = formatDocument; function formatSelection(start, end, sourceFile, rulesProvider, options) { @@ -22623,7 +22756,7 @@ var ts; pos: ts.getStartLinePositionForPosition(start, sourceFile), end: end }; - return formatSpan(span, sourceFile, options, rulesProvider, 1 /* FormatSelection */); + return formatSpan(span, sourceFile, options, rulesProvider, 1); } formatting.formatSelection = formatSelection; function formatOutermostParent(position, expectedLastToken, sourceFile, options, rulesProvider, requestKind) { @@ -22639,7 +22772,7 @@ var ts; } function findOutermostParent(position, expectedTokenKind, sourceFile) { var precedingToken = ts.findPrecedingToken(position, sourceFile); - if (!precedingToken || precedingToken.kind !== expectedTokenKind) { + if (!precedingToken || precedingToken.kind !== expectedTokenKind || position !== precedingToken.getEnd()) { return undefined; } var current = precedingToken; @@ -22650,17 +22783,17 @@ var ts; } function isListElement(parent, node) { switch (parent.kind) { - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: + case 191: + case 192: return ts.rangeContainsRange(parent.members, node); - case 195 /* ModuleDeclaration */: + case 195: var body = parent.body; - return body && body.kind === 170 /* Block */ && ts.rangeContainsRange(body.statements, node); - case 207 /* SourceFile */: - case 170 /* Block */: - case 196 /* ModuleBlock */: + return body && body.kind === 170 && ts.rangeContainsRange(body.statements, node); + case 207: + case 170: + case 196: return ts.rangeContainsRange(parent.statements, node); - case 203 /* CatchClause */: + case 203: return ts.rangeContainsRange(parent.block.statements, node); } return false; @@ -22721,11 +22854,11 @@ var ts; return precedingToken.end; } function getOwnOrInheritedDelta(n, options, sourceFile) { - var previousLine = -1 /* Unknown */; - var childKind = 0 /* Unknown */; + var previousLine = -1; + var childKind = 0; while (n) { var line = sourceFile.getLineAndCharacterFromPosition(n.getStart(sourceFile)).line; - if (previousLine !== -1 /* Unknown */ && line !== previousLine) { + if (previousLine !== -1 && line !== previousLine) { break; } if (formatting.SmartIndenter.shouldIndentChildNode(n.kind, childKind)) { @@ -22758,7 +22891,7 @@ var ts; return edits; function tryComputeIndentationForListItem(startPos, endPos, parentStartLine, range, inheritedIndentation) { if (ts.rangeOverlapsWithStartEnd(range, startPos, endPos)) { - if (inheritedIndentation !== -1 /* Unknown */) { + if (inheritedIndentation !== -1) { return inheritedIndentation; } } @@ -22770,13 +22903,13 @@ var ts; return column; } } - return -1 /* Unknown */; + return -1; } function computeIndentation(node, startLine, inheritedIndentation, parent, parentDynamicIndentation, effectiveParentStartLine) { var indentation = inheritedIndentation; - if (indentation === -1 /* Unknown */) { + if (indentation === -1) { if (isSomeBlock(node.kind)) { - if (isSomeBlock(parent.kind) || parent.kind === 207 /* SourceFile */ || parent.kind === 200 /* CaseClause */ || parent.kind === 201 /* DefaultClause */) { + if (isSomeBlock(parent.kind) || parent.kind === 207 || parent.kind === 200 || parent.kind === 201) { indentation = parentDynamicIndentation.getIndentation() + parentDynamicIndentation.getDelta(); } else { @@ -22792,7 +22925,7 @@ var ts; } } } - var delta = formatting.SmartIndenter.shouldIndentChildNode(node.kind, 0 /* Unknown */) ? options.IndentSize : 0; + var delta = formatting.SmartIndenter.shouldIndentChildNode(node.kind, 0) ? options.IndentSize : 0; if (effectiveParentStartLine === startLine) { indentation = parentDynamicIndentation.getIndentation(); delta = Math.min(options.IndentSize, parentDynamicIndentation.getDelta() + delta); @@ -22806,20 +22939,20 @@ var ts; return { getIndentationForComment: function (kind) { switch (kind) { - case 15 /* CloseBraceToken */: - case 19 /* CloseBracketToken */: + case 15: + case 19: return indentation + delta; } return indentation; }, getIndentationForToken: function (line, kind) { switch (kind) { - case 14 /* OpenBraceToken */: - case 15 /* CloseBraceToken */: - case 18 /* OpenBracketToken */: - case 19 /* CloseBracketToken */: - case 75 /* ElseKeyword */: - case 99 /* WhileKeyword */: + case 14: + case 15: + case 18: + case 19: + case 75: + case 99: return indentation; default: return nodeStartLine !== line ? indentation + delta : indentation; @@ -22835,7 +22968,7 @@ var ts; else { indentation -= options.IndentSize; } - if (formatting.SmartIndenter.shouldIndentChildNode(node.kind, 0 /* Unknown */)) { + if (formatting.SmartIndenter.shouldIndentChildNode(node.kind, 0)) { delta = options.IndentSize; } else { @@ -22852,7 +22985,7 @@ var ts; var nodeDynamicIndentation = getDynamicIndentation(node, nodeStartLine, indentation, delta); var childContextNode = contextNode; ts.forEachChild(node, function (child) { - processChildNode(child, -1 /* Unknown */, node, nodeDynamicIndentation, nodeStartLine, false); + processChildNode(child, -1, node, nodeDynamicIndentation, nodeStartLine, false); }, function (nodes) { processChildNodes(nodes, node, nodeStartLine, nodeDynamicIndentation); }); @@ -22866,10 +22999,10 @@ var ts; function processChildNode(child, inheritedIndentation, parent, parentDynamicIndentation, parentStartLine, isListItem) { var childStartPos = child.getStart(sourceFile); var childStart = sourceFile.getLineAndCharacterFromPosition(childStartPos); - var childIndentationAmount = -1 /* Unknown */; + var childIndentationAmount = -1; if (isListItem) { childIndentationAmount = tryComputeIndentationForListItem(childStartPos, child.end, parentStartLine, originalRange, inheritedIndentation); - if (childIndentationAmount !== -1 /* Unknown */) { + if (childIndentationAmount !== -1) { inheritedIndentation = childIndentationAmount; } } @@ -22905,7 +23038,7 @@ var ts; var listEndToken = getCloseTokenForOpenToken(listStartToken); var listDynamicIndentation = parentDynamicIndentation; var startLine = parentStartLine; - if (listStartToken !== 0 /* Unknown */) { + if (listStartToken !== 0) { while (formattingScanner.isOnToken()) { var tokenInfo = formattingScanner.readTokenInfo(parent); if (tokenInfo.token.end > nodes.pos) { @@ -22913,7 +23046,7 @@ var ts; } else if (tokenInfo.token.kind === listStartToken) { startLine = sourceFile.getLineAndCharacterFromPosition(tokenInfo.token.pos).line; - var indentation = computeIndentation(tokenInfo.token, startLine, -1 /* Unknown */, parent, parentDynamicIndentation, startLine); + var indentation = computeIndentation(tokenInfo.token, startLine, -1, parent, parentDynamicIndentation, startLine); listDynamicIndentation = getDynamicIndentation(parent, parentStartLine, indentation.indentation, indentation.delta); consumeTokenAndAdvanceScanner(tokenInfo, parent, listDynamicIndentation); } @@ -22922,11 +23055,11 @@ var ts; } } } - var inheritedIndentation = -1 /* Unknown */; + var inheritedIndentation = -1; for (var i = 0, len = nodes.length; i < len; ++i) { inheritedIndentation = processChildNode(nodes[i], inheritedIndentation, node, listDynamicIndentation, startLine, true); } - if (listEndToken !== 0 /* Unknown */) { + if (listEndToken !== 0) { if (formattingScanner.isOnToken()) { var tokenInfo = formattingScanner.readTokenInfo(parent); if (tokenInfo.token.kind === listEndToken && ts.rangeContainsRange(parent, tokenInfo.token)) { @@ -22974,19 +23107,19 @@ var ts; } var triviaStartLine = sourceFile.getLineAndCharacterFromPosition(triviaItem.pos).line; switch (triviaItem.kind) { - case 3 /* MultiLineCommentTrivia */: + case 3: var commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); indentMultilineComment(triviaItem, commentIndentation, !indentNextTokenOrTrivia); indentNextTokenOrTrivia = false; break; - case 2 /* SingleLineCommentTrivia */: + case 2: if (indentNextTokenOrTrivia) { var commentIndentation = dynamicIndentation.getIndentationForComment(currentTokenInfo.token.kind); insertIndentation(triviaItem.pos, commentIndentation, false); indentNextTokenOrTrivia = false; } break; - case 4 /* NewLineTrivia */: + case 4: indentNextTokenOrTrivia = true; break; } @@ -23035,19 +23168,19 @@ var ts; var lineAdded; if (rule) { applyRuleEdits(rule, previousItem, previousStartLine, currentItem, currentStartLine); - if (rule.Operation.Action & (2 /* Space */ | 8 /* Delete */) && currentStartLine !== previousStartLine) { + if (rule.Operation.Action & (2 | 8) && currentStartLine !== previousStartLine) { lineAdded = false; if (currentParent.getStart(sourceFile) === currentItem.pos) { dynamicIndentation.recomputeIndentation(false); } } - else if (rule.Operation.Action & 4 /* NewLine */ && currentStartLine === previousStartLine) { + else if (rule.Operation.Action & 4 && currentStartLine === previousStartLine) { lineAdded = true; if (currentParent.getStart(sourceFile) === currentItem.pos) { dynamicIndentation.recomputeIndentation(true); } } - trimTrailingWhitespaces = (rule.Operation.Action & (4 /* NewLine */ | 2 /* Space */)) && rule.Flag !== 1 /* CanDeleteNewLines */; + trimTrailingWhitespaces = (rule.Operation.Action & (4 | 2)) && rule.Flag !== 1; } else { trimTrailingWhitespaces = true; @@ -23146,15 +23279,15 @@ var ts; function applyRuleEdits(rule, previousRange, previousStartLine, currentRange, currentStartLine) { var between; switch (rule.Operation.Action) { - case 1 /* Ignore */: + case 1: return; - case 8 /* Delete */: + case 8: if (previousRange.end !== currentRange.pos) { recordDelete(previousRange.end, currentRange.pos - previousRange.end); } break; - case 4 /* NewLine */: - if (rule.Flag !== 1 /* CanDeleteNewLines */ && previousStartLine !== currentStartLine) { + case 4: + if (rule.Flag !== 1 && previousStartLine !== currentStartLine) { return; } var lineDelta = currentStartLine - previousStartLine; @@ -23162,12 +23295,12 @@ var ts; recordReplace(previousRange.end, currentRange.pos - previousRange.end, options.NewLineCharacter); } break; - case 2 /* Space */: - if (rule.Flag !== 1 /* CanDeleteNewLines */ && previousStartLine !== currentStartLine) { + case 2: + if (rule.Flag !== 1 && previousStartLine !== currentStartLine) { return; } var posDelta = currentRange.pos - previousRange.end; - if (posDelta !== 1 || sourceFile.text.charCodeAt(previousRange.end) !== 32 /* space */) { + if (posDelta !== 1 || sourceFile.text.charCodeAt(previousRange.end) !== 32) { recordReplace(previousRange.end, currentRange.pos - previousRange.end, " "); } break; @@ -23176,51 +23309,51 @@ var ts; } function isSomeBlock(kind) { switch (kind) { - case 170 /* Block */: - case 196 /* ModuleBlock */: + case 170: + case 196: return true; } return false; } function getOpenTokenForList(node, list) { switch (node.kind) { - case 129 /* Constructor */: - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 157 /* ArrowFunction */: + case 129: + case 190: + case 156: + case 128: + case 127: + case 157: if (node.typeParameters === list) { - return 24 /* LessThanToken */; + return 24; } else if (node.parameters === list) { - return 16 /* OpenParenToken */; + return 16; } break; - case 151 /* CallExpression */: - case 152 /* NewExpression */: + case 151: + case 152: if (node.typeArguments === list) { - return 24 /* LessThanToken */; + return 24; } else if (node.arguments === list) { - return 16 /* OpenParenToken */; + return 16; } break; - case 135 /* TypeReference */: + case 135: if (node.typeArguments === list) { - return 24 /* LessThanToken */; + return 24; } } - return 0 /* Unknown */; + return 0; } function getCloseTokenForOpenToken(kind) { switch (kind) { - case 16 /* OpenParenToken */: - return 17 /* CloseParenToken */; - case 24 /* LessThanToken */: - return 25 /* GreaterThanToken */; + case 16: + return 17; + case 24: + return 25; } - return 0 /* Unknown */; + return 0; } var internedTabsIndentation; var internedSpacesIndentation; @@ -23281,12 +23414,12 @@ var ts; if (!precedingToken) { return 0; } - var precedingTokenIsLiteral = precedingToken.kind === 8 /* StringLiteral */ || precedingToken.kind === 9 /* RegularExpressionLiteral */ || precedingToken.kind === 10 /* NoSubstitutionTemplateLiteral */ || precedingToken.kind === 11 /* TemplateHead */ || precedingToken.kind === 12 /* TemplateMiddle */ || precedingToken.kind === 13 /* TemplateTail */; + var precedingTokenIsLiteral = precedingToken.kind === 8 || precedingToken.kind === 9 || precedingToken.kind === 10 || precedingToken.kind === 11 || precedingToken.kind === 12 || precedingToken.kind === 13; if (precedingTokenIsLiteral && precedingToken.getStart(sourceFile) <= position && precedingToken.end > position) { return 0; } var lineAtPosition = sourceFile.getLineAndCharacterFromPosition(position).line; - if (precedingToken.kind === 23 /* CommaToken */ && precedingToken.parent.kind !== 163 /* BinaryExpression */) { + if (precedingToken.kind === 23 && precedingToken.parent.kind !== 163) { var actualIndentation = getActualIndentationForListItemBeforeComma(precedingToken, sourceFile, options); if (actualIndentation !== -1) { return actualIndentation; @@ -23297,7 +23430,7 @@ var ts; var currentStart; var indentationDelta; while (current) { - if (positionBelongsToNode(current, position, sourceFile) && shouldIndentChildNode(current.kind, previous ? previous.kind : 0 /* Unknown */)) { + if (positionBelongsToNode(current, position, sourceFile) && shouldIndentChildNode(current.kind, previous ? previous.kind : 0)) { currentStart = getStartLineAndCharacterForNode(current, sourceFile); if (nextTokenIsCurlyBraceOnSameLineAsCursor(precedingToken, current, lineAtPosition, sourceFile)) { indentationDelta = 0; @@ -23370,7 +23503,7 @@ var ts; return deriveActualIndentationFromList(commaItemInfo.list.getChildren(), commaItemInfo.listItemIndex - 1, sourceFile, options); } function getActualIndentationForNode(current, parent, currentLineAndChar, parentAndChildShareLine, sourceFile, options) { - var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && (parent.kind === 207 /* SourceFile */ || !parentAndChildShareLine); + var useActualIndentation = (ts.isDeclaration(current) || ts.isStatement(current)) && (parent.kind === 207 || !parentAndChildShareLine); if (!useActualIndentation) { return -1; } @@ -23381,10 +23514,10 @@ var ts; if (!nextToken) { return false; } - if (nextToken.kind === 14 /* OpenBraceToken */) { + if (nextToken.kind === 14) { return true; } - else if (nextToken.kind === 15 /* CloseBraceToken */) { + else if (nextToken.kind === 15) { var nextTokenStartLine = getStartLineAndCharacterForNode(nextToken, sourceFile).line; return lineAtPosition === nextTokenStartLine; } @@ -23397,8 +23530,8 @@ var ts; return candidate.end > position || !isCompletedNode(candidate, sourceFile); } function childStartsOnTheSameLineWithElseInIfStatement(parent, child, childStartLine, sourceFile) { - if (parent.kind === 174 /* IfStatement */ && parent.elseStatement === child) { - var elseKeyword = ts.findChildOfKind(parent, 75 /* ElseKeyword */, sourceFile); + if (parent.kind === 174 && parent.elseStatement === child) { + var elseKeyword = ts.findChildOfKind(parent, 75, sourceFile); ts.Debug.assert(elseKeyword !== undefined); var elseKeywordStartLine = getStartLineAndCharacterForNode(elseKeyword, sourceFile).line; return elseKeywordStartLine === childStartLine; @@ -23409,22 +23542,22 @@ var ts; function getContainingList(node, sourceFile) { if (node.parent) { switch (node.parent.kind) { - case 135 /* TypeReference */: + case 135: if (node.parent.typeArguments && ts.rangeContainsStartEnd(node.parent.typeArguments, node.getStart(sourceFile), node.getEnd())) { return node.parent.typeArguments; } break; - case 148 /* ObjectLiteralExpression */: + case 148: return node.parent.properties; - case 147 /* ArrayLiteralExpression */: + case 147: return node.parent.elements; - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 132 /* CallSignature */: - case 133 /* ConstructSignature */: + case 190: + case 156: + case 157: + case 128: + case 127: + case 132: + case 133: var start = node.getStart(sourceFile); if (node.parent.typeParameters && ts.rangeContainsStartEnd(node.parent.typeParameters, start, node.getEnd())) { return node.parent.typeParameters; @@ -23433,8 +23566,8 @@ var ts; return node.parent.parameters; } break; - case 152 /* NewExpression */: - case 151 /* CallExpression */: + case 152: + case 151: var start = node.getStart(sourceFile); if (node.parent.typeArguments && ts.rangeContainsStartEnd(node.parent.typeArguments, start, node.getEnd())) { return node.parent.typeArguments; @@ -23460,7 +23593,7 @@ var ts; var node = list[index]; var lineAndCharacter = getStartLineAndCharacterForNode(node, sourceFile); for (var i = index - 1; i >= 0; --i) { - if (list[i].kind === 23 /* CommaToken */) { + if (list[i].kind === 23) { continue; } var prevEndLine = sourceFile.getLineAndCharacterFromPosition(list[i].end).line; @@ -23482,7 +23615,7 @@ var ts; if (!ts.isWhiteSpace(ch)) { return column; } - if (ch === 9 /* tab */) { + if (ch === 9) { column += options.TabSize + (column % options.TabSize); } else { @@ -23494,25 +23627,25 @@ var ts; SmartIndenter.findFirstNonWhitespaceColumn = findFirstNonWhitespaceColumn; function nodeContentIsAlwaysIndented(kind) { switch (kind) { - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 194 /* EnumDeclaration */: - case 147 /* ArrayLiteralExpression */: - case 170 /* Block */: - case 196 /* ModuleBlock */: - case 148 /* ObjectLiteralExpression */: - case 139 /* TypeLiteral */: - case 183 /* SwitchStatement */: - case 201 /* DefaultClause */: - case 200 /* CaseClause */: - case 155 /* ParenthesizedExpression */: - case 151 /* CallExpression */: - case 152 /* NewExpression */: - case 171 /* VariableStatement */: - case 188 /* VariableDeclaration */: - case 198 /* ExportAssignment */: - case 181 /* ReturnStatement */: - case 164 /* ConditionalExpression */: + case 191: + case 192: + case 194: + case 147: + case 170: + case 196: + case 148: + case 139: + case 183: + case 201: + case 200: + case 155: + case 151: + case 152: + case 171: + case 188: + case 198: + case 181: + case 164: return true; } return false; @@ -23522,20 +23655,20 @@ var ts; return true; } switch (parent) { - case 175 /* DoStatement */: - case 176 /* WhileStatement */: - case 178 /* ForInStatement */: - case 177 /* ForStatement */: - case 174 /* IfStatement */: - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 157 /* ArrowFunction */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - return child !== 170 /* Block */; + case 175: + case 176: + case 178: + case 177: + case 174: + case 190: + case 156: + case 128: + case 127: + case 157: + case 129: + case 130: + case 131: + return child !== 170; default: return false; } @@ -23548,7 +23681,7 @@ var ts; if (last.kind === expectedLastToken) { return true; } - else if (last.kind === 22 /* SemicolonToken */ && children.length !== 1) { + else if (last.kind === 22 && children.length !== 1) { return children[children.length - 2].kind === expectedLastToken; } } @@ -23559,47 +23692,47 @@ var ts; return false; } switch (n.kind) { - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 194 /* EnumDeclaration */: - case 148 /* ObjectLiteralExpression */: - case 170 /* Block */: - case 196 /* ModuleBlock */: - case 183 /* SwitchStatement */: - return nodeEndsWith(n, 15 /* CloseBraceToken */, sourceFile); - case 203 /* CatchClause */: + case 191: + case 192: + case 194: + case 148: + case 170: + case 196: + case 183: + return nodeEndsWith(n, 15, sourceFile); + case 203: return isCompletedNode(n.block, sourceFile); - case 155 /* ParenthesizedExpression */: - case 132 /* CallSignature */: - case 151 /* CallExpression */: - case 133 /* ConstructSignature */: - return nodeEndsWith(n, 17 /* CloseParenToken */, sourceFile); - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 157 /* ArrowFunction */: + case 155: + case 132: + case 151: + case 133: + return nodeEndsWith(n, 17, sourceFile); + case 190: + case 156: + case 128: + case 127: + case 157: return !n.body || isCompletedNode(n.body, sourceFile); - case 195 /* ModuleDeclaration */: + case 195: return n.body && isCompletedNode(n.body, sourceFile); - case 174 /* IfStatement */: + case 174: if (n.elseStatement) { return isCompletedNode(n.elseStatement, sourceFile); } return isCompletedNode(n.thenStatement, sourceFile); - case 173 /* ExpressionStatement */: + case 173: return isCompletedNode(n.expression, sourceFile); - case 147 /* ArrayLiteralExpression */: - return nodeEndsWith(n, 19 /* CloseBracketToken */, sourceFile); - case 200 /* CaseClause */: - case 201 /* DefaultClause */: + case 147: + return nodeEndsWith(n, 19, sourceFile); + case 200: + case 201: return false; - case 176 /* WhileStatement */: + case 176: return isCompletedNode(n.statement, sourceFile); - case 175 /* DoStatement */: - var hasWhileKeyword = ts.findChildOfKind(n, 99 /* WhileKeyword */, sourceFile); + case 175: + var hasWhileKeyword = ts.findChildOfKind(n, 99, sourceFile); if (hasWhileKeyword) { - return nodeEndsWith(n, 17 /* CloseParenToken */, sourceFile); + return nodeEndsWith(n, 17, sourceFile); } return isCompletedNode(n.statement, sourceFile); default: @@ -23617,7 +23750,7 @@ var __extends = this.__extends || function (d, b) { }; var ts; (function (ts) { - ts.servicesVersion = "0.5"; + ts.servicesVersion = "0.4"; var ScriptSnapshot; (function (ScriptSnapshot) { var StringScriptSnapshot = (function () { @@ -23631,14 +23764,8 @@ var ts; StringScriptSnapshot.prototype.getLength = function () { return this.text.length; }; - StringScriptSnapshot.prototype.getLineStartPositions = function () { - if (!this._lineStartPositions) { - this._lineStartPositions = ts.computeLineStarts(this.text); - } - return this._lineStartPositions; - }; StringScriptSnapshot.prototype.getChangeRange = function (oldSnapshot) { - throw new Error("not yet implemented"); + return undefined; }; return StringScriptSnapshot; })(); @@ -23647,7 +23774,7 @@ var ts; } ScriptSnapshot.fromString = fromString; })(ScriptSnapshot = ts.ScriptSnapshot || (ts.ScriptSnapshot = {})); - var scanner = ts.createScanner(2 /* Latest */, true); + var scanner = ts.createScanner(2, true); var emptyArray = []; function createNode(kind, pos, end, flags, parent) { var node = new (ts.getNodeConstructor(kind))(); @@ -23692,13 +23819,13 @@ var ts; while (pos < end) { var token = scanner.scan(); var textPos = scanner.getTextPos(); - nodes.push(createNode(token, pos, textPos, 512 /* Synthetic */, this)); + nodes.push(createNode(token, pos, textPos, 512, this)); pos = textPos; } return pos; }; NodeObject.prototype.createSyntaxList = function (nodes) { - var list = createNode(208 /* SyntaxList */, nodes.pos, nodes.end, 512 /* Synthetic */, this); + var list = createNode(208, nodes.pos, nodes.end, 512, this); list._children = []; var pos = nodes.pos; for (var i = 0, len = nodes.length; i < len; i++) { @@ -23716,7 +23843,7 @@ var ts; }; NodeObject.prototype.createChildren = function (sourceFile) { var _this = this; - if (this.kind >= 121 /* FirstNode */) { + if (this.kind >= 121) { scanner.setText((sourceFile || this.getSourceFile()).text); var children = []; var pos = this.pos; @@ -23761,7 +23888,7 @@ var ts; var children = this.getChildren(); for (var i = 0; i < children.length; i++) { var child = children[i]; - if (child.kind < 121 /* FirstNode */) { + if (child.kind < 121) { return child; } return child.getFirstToken(sourceFile); @@ -23771,7 +23898,7 @@ var ts; var children = this.getChildren(sourceFile); for (var i = children.length - 1; i >= 0; i--) { var child = children[i]; - if (child.kind < 121 /* FirstNode */) { + if (child.kind < 121) { return child; } return child.getLastToken(sourceFile); @@ -23795,7 +23922,7 @@ var ts; }; SymbolObject.prototype.getDocumentationComment = function () { if (this.documentationComment === undefined) { - this.documentationComment = getJsDocCommentsFromDeclarations(this.declarations, this.name, !(this.flags & 4 /* Property */)); + this.documentationComment = getJsDocCommentsFromDeclarations(this.declarations, this.name, !(this.flags & 4)); } return this.documentationComment; }; @@ -23817,7 +23944,7 @@ var ts; ts.forEach(declarations, function (declaration, indexOfDeclaration) { if (ts.indexOf(declarations, declaration) === indexOfDeclaration) { var sourceFileOfDeclaration = ts.getSourceFileOfNode(declaration); - if (canUseParsedParamTagComments && declaration.kind === 124 /* Parameter */) { + if (canUseParsedParamTagComments && declaration.kind === 124) { ts.forEach(getJsDocCommentTextRange(declaration.parent, sourceFileOfDeclaration), function (jsDocCommentTextRange) { var cleanedParamJsDocComment = getCleanedParamJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); if (cleanedParamJsDocComment) { @@ -23825,13 +23952,13 @@ var ts; } }); } - if (declaration.kind === 195 /* ModuleDeclaration */ && declaration.body.kind === 195 /* ModuleDeclaration */) { + if (declaration.kind === 195 && declaration.body.kind === 195) { return; } - while (declaration.kind === 195 /* ModuleDeclaration */ && declaration.parent.kind === 195 /* ModuleDeclaration */) { + while (declaration.kind === 195 && declaration.parent.kind === 195) { declaration = declaration.parent; } - ts.forEach(getJsDocCommentTextRange(declaration.kind === 188 /* VariableDeclaration */ ? declaration.parent.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) { + ts.forEach(getJsDocCommentTextRange(declaration.kind === 188 ? declaration.parent.parent : declaration, sourceFileOfDeclaration), function (jsDocCommentTextRange) { var cleanedJsDocComment = getCleanedJsDocComment(jsDocCommentTextRange.pos, jsDocCommentTextRange.end, sourceFileOfDeclaration); if (cleanedJsDocComment) { jsDocCommentParts.push.apply(jsDocCommentParts, cleanedJsDocComment); @@ -23885,7 +24012,7 @@ var ts; while (pos < end) { var docCommentTextOfLine = ""; pos = consumeWhiteSpacesOnTheLine(pos, end, sourceFile); - if (pos < end && sourceFile.text.charCodeAt(pos) === 42 /* asterisk */) { + if (pos < end && sourceFile.text.charCodeAt(pos) === 42) { var lineStartPos = pos + 1; pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, spacesToRemoveAfterAsterisk); if (spacesToRemoveAfterAsterisk === undefined && pos < end && !ts.isLineBreak(sourceFile.text.charCodeAt(pos))) { @@ -23934,15 +24061,15 @@ var ts; if (pos >= end) { break; } - if (sourceFile.text.charCodeAt(pos) === 123 /* openBrace */) { + if (sourceFile.text.charCodeAt(pos) === 123) { pos++; for (var curlies = 1; pos < end; pos++) { var charCode = sourceFile.text.charCodeAt(pos); - if (charCode === 123 /* openBrace */) { + if (charCode === 123) { curlies++; continue; } - if (charCode === 125 /* closeBrace */) { + if (charCode === 125) { curlies--; if (curlies === 0) { pos++; @@ -23952,7 +24079,7 @@ var ts; continue; } } - if (charCode === 64 /* at */) { + if (charCode === 64) { break; } } @@ -23983,7 +24110,7 @@ var ts; setPosForParamHelpStringOnNextLine(firstLineParamHelpStringPos); continue; } - if (ch === 64 /* at */) { + if (ch === 64) { break; } paramHelpString += sourceFile.text.charAt(pos); @@ -23994,7 +24121,7 @@ var ts; } paramHelpStringMargin = undefined; } - if (sourceFile.text.charCodeAt(pos) === 64 /* at */) { + if (sourceFile.text.charCodeAt(pos) === 64) { continue; } } @@ -24023,7 +24150,7 @@ var ts; var consumedSpaces = pos - startOfLinePos; if (consumedSpaces < paramHelpStringMargin) { var ch = sourceFile.text.charCodeAt(pos); - if (ch === 42 /* asterisk */) { + if (ch === 42) { pos = consumeWhiteSpacesOnTheLine(pos + 1, end, sourceFile, paramHelpStringMargin - consumedSpaces - 1); } } @@ -24052,16 +24179,16 @@ var ts; return this.checker.getAugmentedPropertiesOfType(this); }; TypeObject.prototype.getCallSignatures = function () { - return this.checker.getSignaturesOfType(this, 0 /* Call */); + return this.checker.getSignaturesOfType(this, 0); }; TypeObject.prototype.getConstructSignatures = function () { - return this.checker.getSignaturesOfType(this, 1 /* Construct */); + return this.checker.getSignaturesOfType(this, 1); }; TypeObject.prototype.getStringIndexType = function () { - return this.checker.getIndexTypeOfType(this, 0 /* String */); + return this.checker.getIndexTypeOfType(this, 0); }; TypeObject.prototype.getNumberIndexType = function () { - return this.checker.getIndexTypeOfType(this, 1 /* Number */); + return this.checker.getIndexTypeOfType(this, 1); }; return TypeObject; })(); @@ -24094,15 +24221,27 @@ var ts; function SourceFileObject() { _super.apply(this, arguments); } + SourceFileObject.prototype.update = function (newText, textChangeRange) { + return ts.updateSourceFile(this, newText, textChangeRange); + }; + SourceFileObject.prototype.getLineAndCharacterFromPosition = function (position) { + return ts.getLineAndCharacterOfPosition(this, position); + }; + SourceFileObject.prototype.getLineStarts = function () { + return ts.getLineStarts(this); + }; + SourceFileObject.prototype.getPositionFromLineAndCharacter = function (line, character) { + return ts.getPositionFromLineAndCharacter(this, line, character); + }; SourceFileObject.prototype.getNamedDeclarations = function () { if (!this.namedDeclarations) { var sourceFile = this; var namedDeclarations = []; ts.forEachChild(sourceFile, function visit(node) { switch (node.kind) { - case 190 /* FunctionDeclaration */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: + case 190: + case 128: + case 127: var functionDeclaration = node; if (functionDeclaration.name && functionDeclaration.name.getFullWidth() > 0) { var lastDeclaration = namedDeclarations.length > 0 ? namedDeclarations[namedDeclarations.length - 1] : undefined; @@ -24117,44 +24256,44 @@ var ts; ts.forEachChild(node, visit); } break; - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 193 /* TypeAliasDeclaration */: - case 194 /* EnumDeclaration */: - case 195 /* ModuleDeclaration */: - case 197 /* ImportDeclaration */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 139 /* TypeLiteral */: + case 191: + case 192: + case 193: + case 194: + case 195: + case 197: + case 130: + case 131: + case 139: if (node.name) { namedDeclarations.push(node); } - case 129 /* Constructor */: - case 171 /* VariableStatement */: - case 189 /* VariableDeclarationList */: - case 144 /* ObjectBindingPattern */: - case 145 /* ArrayBindingPattern */: - case 196 /* ModuleBlock */: + case 129: + case 171: + case 189: + case 144: + case 145: + case 196: ts.forEachChild(node, visit); break; - case 170 /* Block */: + case 170: if (ts.isFunctionBlock(node)) { ts.forEachChild(node, visit); } break; - case 124 /* Parameter */: - if (!(node.flags & 112 /* AccessibilityModifier */)) { + case 124: + if (!(node.flags & 112)) { break; } - case 188 /* VariableDeclaration */: - case 146 /* BindingElement */: + case 188: + case 146: if (ts.isBindingPattern(node.name)) { ts.forEachChild(node.name, visit); break; } - case 206 /* EnumMember */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: + case 206: + case 126: + case 125: namedDeclarations.push(node); break; } @@ -24307,14 +24446,14 @@ var ts; return false; } return ts.forEach(symbol.declarations, function (declaration) { - if (declaration.kind === 156 /* FunctionExpression */) { + if (declaration.kind === 156) { return true; } - if (declaration.kind !== 188 /* VariableDeclaration */ && declaration.kind !== 190 /* FunctionDeclaration */) { + if (declaration.kind !== 188 && declaration.kind !== 190) { return false; } for (var parent = declaration.parent; !ts.isFunctionBlock(parent); parent = parent.parent) { - if (parent.kind === 207 /* SourceFile */ || parent.kind === 196 /* ModuleBlock */) { + if (parent.kind === 207 || parent.kind === 196) { return false; } } @@ -24323,8 +24462,8 @@ var ts; } function getDefaultCompilerOptions() { return { - target: 2 /* Latest */, - module: 0 /* None */ + target: 1, + module: 0 }; } ts.getDefaultCompilerOptions = getDefaultCompilerOptions; @@ -24353,63 +24492,63 @@ var ts; var HostCache = (function () { function HostCache(host) { this.host = host; - this.filenameToEntry = {}; - var filenames = host.getScriptFileNames(); - for (var i = 0, n = filenames.length; i < n; i++) { - var filename = filenames[i]; - this.filenameToEntry[ts.normalizeSlashes(filename)] = { - filename: filename, - version: host.getScriptVersion(filename), - isOpen: host.getScriptIsOpen(filename) - }; + this.fileNameToEntry = {}; + var rootFileNames = host.getScriptFileNames(); + for (var i = 0, n = rootFileNames.length; i < n; i++) { + this.createEntry(rootFileNames[i]); } this._compilationSettings = host.getCompilationSettings() || getDefaultCompilerOptions(); } HostCache.prototype.compilationSettings = function () { return this._compilationSettings; }; - HostCache.prototype.getEntry = function (filename) { - filename = ts.normalizeSlashes(filename); - return ts.lookUp(this.filenameToEntry, filename); - }; - HostCache.prototype.contains = function (filename) { - return !!this.getEntry(filename); - }; - HostCache.prototype.getHostfilename = function (filename) { - var hostCacheEntry = this.getEntry(filename); - if (hostCacheEntry) { - return hostCacheEntry.filename; + HostCache.prototype.createEntry = function (fileName) { + var entry; + var scriptSnapshot = this.host.getScriptSnapshot(fileName); + if (scriptSnapshot) { + entry = { + hostFileName: fileName, + version: this.host.getScriptVersion(fileName), + scriptSnapshot: scriptSnapshot + }; } - return filename; + return this.fileNameToEntry[ts.normalizeSlashes(fileName)] = entry; }; - HostCache.prototype.getFilenames = function () { + HostCache.prototype.getEntry = function (fileName) { + return ts.lookUp(this.fileNameToEntry, ts.normalizeSlashes(fileName)); + }; + HostCache.prototype.contains = function (fileName) { + return ts.hasProperty(this.fileNameToEntry, ts.normalizeSlashes(fileName)); + }; + HostCache.prototype.getOrCreateEntry = function (fileName) { + if (this.contains(fileName)) { + return this.getEntry(fileName); + } + return this.createEntry(fileName); + }; + HostCache.prototype.getRootFileNames = function () { var _this = this; var fileNames = []; - ts.forEachKey(this.filenameToEntry, function (key) { - if (ts.hasProperty(_this.filenameToEntry, key)) + ts.forEachKey(this.fileNameToEntry, function (key) { + if (ts.hasProperty(_this.fileNameToEntry, key) && _this.fileNameToEntry[key]) fileNames.push(key); }); return fileNames; }; - HostCache.prototype.getVersion = function (filename) { - return this.getEntry(filename).version; + HostCache.prototype.getVersion = function (fileName) { + var file = this.getEntry(fileName); + return file && file.version; }; - HostCache.prototype.isOpen = function (filename) { - return this.getEntry(filename).isOpen; + HostCache.prototype.getScriptSnapshot = function (fileName) { + var file = this.getEntry(fileName); + return file && file.scriptSnapshot; }; - HostCache.prototype.getScriptSnapshot = function (filename) { - var file = this.getEntry(filename); - if (!file.sourceText) { - file.sourceText = this.host.getScriptSnapshot(file.filename); - } - return file.sourceText; - }; - HostCache.prototype.getChangeRange = function (filename, lastKnownVersion, oldScriptSnapshot) { - var currentVersion = this.getVersion(filename); + HostCache.prototype.getChangeRange = function (fileName, lastKnownVersion, oldScriptSnapshot) { + var currentVersion = this.getVersion(fileName); if (lastKnownVersion === currentVersion) { return ts.unchangedTextChangeRange; } - var scriptSnapshot = this.getScriptSnapshot(filename); + var scriptSnapshot = this.getScriptSnapshot(fileName); return scriptSnapshot.getChangeRange(oldScriptSnapshot); }; return HostCache; @@ -24417,63 +24556,67 @@ var ts; var SyntaxTreeCache = (function () { function SyntaxTreeCache(host) { this.host = host; - this.currentFilename = ""; + this.currentFileName = ""; this.currentFileVersion = null; this.currentSourceFile = null; } - SyntaxTreeCache.prototype.initialize = function (filename) { + SyntaxTreeCache.prototype.log = function (message) { + if (this.host.log) { + this.host.log(message); + } + }; + SyntaxTreeCache.prototype.initialize = function (fileName) { var start = new Date().getTime(); this.hostCache = new HostCache(this.host); - this.host.log("SyntaxTreeCache.Initialize: new HostCache: " + (new Date().getTime() - start)); - var version = this.hostCache.getVersion(filename); + this.log("SyntaxTreeCache.Initialize: new HostCache: " + (new Date().getTime() - start)); + var version = this.hostCache.getVersion(fileName); var sourceFile; - if (this.currentFilename !== filename) { - var scriptSnapshot = this.hostCache.getScriptSnapshot(filename); + if (this.currentFileName !== fileName) { + var scriptSnapshot = this.hostCache.getScriptSnapshot(fileName); var start = new Date().getTime(); - sourceFile = createLanguageServiceSourceFile(filename, scriptSnapshot, 2 /* Latest */, version, true, true); - this.host.log("SyntaxTreeCache.Initialize: createSourceFile: " + (new Date().getTime() - start)); + sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, 2, version, true); + this.log("SyntaxTreeCache.Initialize: createSourceFile: " + (new Date().getTime() - start)); } else if (this.currentFileVersion !== version) { - var scriptSnapshot = this.hostCache.getScriptSnapshot(filename); - var editRange = this.hostCache.getChangeRange(filename, this.currentFileVersion, this.currentSourceFile.scriptSnapshot); + var scriptSnapshot = this.hostCache.getScriptSnapshot(fileName); + var editRange = this.hostCache.getChangeRange(fileName, this.currentFileVersion, this.currentSourceFile.scriptSnapshot); var start = new Date().getTime(); - sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, true, editRange); - this.host.log("SyntaxTreeCache.Initialize: updateSourceFile: " + (new Date().getTime() - start)); + sourceFile = updateLanguageServiceSourceFile(this.currentSourceFile, scriptSnapshot, version, editRange); + this.log("SyntaxTreeCache.Initialize: updateSourceFile: " + (new Date().getTime() - start)); } if (sourceFile) { this.currentFileVersion = version; - this.currentFilename = filename; + this.currentFileName = fileName; this.currentSourceFile = sourceFile; } }; - SyntaxTreeCache.prototype.getCurrentSourceFile = function (filename) { - this.initialize(filename); + SyntaxTreeCache.prototype.getCurrentSourceFile = function (fileName) { + this.initialize(fileName); return this.currentSourceFile; }; - SyntaxTreeCache.prototype.getCurrentScriptSnapshot = function (filename) { - return this.getCurrentSourceFile(filename).scriptSnapshot; + SyntaxTreeCache.prototype.getCurrentScriptSnapshot = function (fileName) { + return this.getCurrentSourceFile(fileName).scriptSnapshot; }; return SyntaxTreeCache; })(); - function setSourceFileFields(sourceFile, scriptSnapshot, version, isOpen) { + function setSourceFileFields(sourceFile, scriptSnapshot, version) { sourceFile.version = version; - sourceFile.isOpen = isOpen; sourceFile.scriptSnapshot = scriptSnapshot; } - function createLanguageServiceSourceFile(filename, scriptSnapshot, scriptTarget, version, isOpen, setNodeParents) { - var sourceFile = ts.createSourceFile(filename, scriptSnapshot.getText(0, scriptSnapshot.getLength()), scriptTarget, setNodeParents); - setSourceFileFields(sourceFile, scriptSnapshot, version, isOpen); + function createLanguageServiceSourceFile(fileName, scriptSnapshot, scriptTarget, version, setNodeParents) { + var sourceFile = ts.createSourceFile(fileName, scriptSnapshot.getText(0, scriptSnapshot.getLength()), scriptTarget, setNodeParents); + setSourceFileFields(sourceFile, scriptSnapshot, version); sourceFile.nameTable = sourceFile.identifiers; return sourceFile; } ts.createLanguageServiceSourceFile = createLanguageServiceSourceFile; ts.disableIncrementalParsing = false; - function updateLanguageServiceSourceFile(sourceFile, scriptSnapshot, version, isOpen, textChangeRange) { - if (textChangeRange && ts.Debug.shouldAssert(1 /* Normal */)) { + function updateLanguageServiceSourceFile(sourceFile, scriptSnapshot, version, textChangeRange) { + if (textChangeRange && ts.Debug.shouldAssert(1)) { var oldText = sourceFile.scriptSnapshot; var newText = scriptSnapshot; ts.Debug.assert((oldText.getLength() - textChangeRange.span.length + textChangeRange.newLength) === newText.getLength()); - if (ts.Debug.shouldAssert(3 /* VeryAggressive */)) { + if (ts.Debug.shouldAssert(3)) { var oldTextPrefix = oldText.getText(0, textChangeRange.span.start); var newTextPrefix = newText.getText(0, textChangeRange.span.start); ts.Debug.assert(oldTextPrefix === newTextPrefix); @@ -24483,16 +24626,16 @@ var ts; } } if (textChangeRange) { - if (version !== sourceFile.version || isOpen != sourceFile.isOpen) { + if (version !== sourceFile.version) { if (!ts.disableIncrementalParsing) { - var newSourceFile = sourceFile.update(scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); - setSourceFileFields(newSourceFile, scriptSnapshot, version, isOpen); + var newSourceFile = ts.updateSourceFile(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); + setSourceFileFields(newSourceFile, scriptSnapshot, version); newSourceFile.nameTable = undefined; return newSourceFile; } } } - return createLanguageServiceSourceFile(sourceFile.filename, scriptSnapshot, sourceFile.languageVersion, version, isOpen, true); + return createLanguageServiceSourceFile(sourceFile.fileName, scriptSnapshot, sourceFile.languageVersion, version, true); } ts.updateLanguageServiceSourceFile = updateLanguageServiceSourceFile; function createDocumentRegistry() { @@ -24528,12 +24671,12 @@ var ts; }); return JSON.stringify(bucketInfoArray, null, 2); } - function acquireDocument(filename, compilationSettings, scriptSnapshot, version, isOpen) { + function acquireDocument(fileName, compilationSettings, scriptSnapshot, version) { var bucket = getBucketForCompilationSettings(compilationSettings, true); - var entry = ts.lookUp(bucket, filename); + var entry = ts.lookUp(bucket, fileName); if (!entry) { - var sourceFile = createLanguageServiceSourceFile(filename, scriptSnapshot, compilationSettings.target, version, isOpen, false); - bucket[filename] = entry = { + var sourceFile = createLanguageServiceSourceFile(fileName, scriptSnapshot, compilationSettings.target, version, false); + bucket[fileName] = entry = { sourceFile: sourceFile, refCount: 0, owners: [] @@ -24542,22 +24685,22 @@ var ts; entry.refCount++; return entry.sourceFile; } - function updateDocument(sourceFile, filename, compilationSettings, scriptSnapshot, version, isOpen, textChangeRange) { + function updateDocument(sourceFile, fileName, compilationSettings, scriptSnapshot, version, textChangeRange) { var bucket = getBucketForCompilationSettings(compilationSettings, false); ts.Debug.assert(bucket !== undefined); - var entry = ts.lookUp(bucket, filename); + var entry = ts.lookUp(bucket, fileName); ts.Debug.assert(entry !== undefined); - entry.sourceFile = updateLanguageServiceSourceFile(entry.sourceFile, scriptSnapshot, version, isOpen, textChangeRange); + entry.sourceFile = updateLanguageServiceSourceFile(entry.sourceFile, scriptSnapshot, version, textChangeRange); return entry.sourceFile; } - function releaseDocument(filename, compilationSettings) { + function releaseDocument(fileName, compilationSettings) { var bucket = getBucketForCompilationSettings(compilationSettings, false); ts.Debug.assert(bucket !== undefined); - var entry = ts.lookUp(bucket, filename); + var entry = ts.lookUp(bucket, fileName); entry.refCount--; ts.Debug.assert(entry.refCount >= 0); if (entry.refCount === 0) { - delete bucket[filename]; + delete bucket[fileName]; } } return { @@ -24590,22 +24733,22 @@ var ts; function processImport() { scanner.setText(sourceText); var token = scanner.scan(); - while (token !== 1 /* EndOfFileToken */) { - if (token === 84 /* ImportKeyword */) { + while (token !== 1) { + if (token === 84) { token = scanner.scan(); - if (token === 64 /* Identifier */) { + if (token === 64) { token = scanner.scan(); - if (token === 52 /* EqualsToken */) { + if (token === 52) { token = scanner.scan(); - if (token === 116 /* RequireKeyword */) { + if (token === 116) { token = scanner.scan(); - if (token === 16 /* OpenParenToken */) { + if (token === 16) { token = scanner.scan(); - if (token === 8 /* StringLiteral */) { + if (token === 8) { var importPath = scanner.getTokenValue(); var pos = scanner.getTokenPos(); importedFiles.push({ - filename: importPath, + fileName: importPath, pos: pos, end: pos + importPath.length }); @@ -24628,7 +24771,7 @@ var ts; ts.preProcessFile = preProcessFile; function getTargetLabel(referenceNode, labelName) { while (referenceNode) { - if (referenceNode.kind === 184 /* LabeledStatement */ && referenceNode.label.text === labelName) { + if (referenceNode.kind === 184 && referenceNode.label.text === labelName) { return referenceNode.label; } referenceNode = referenceNode.parent; @@ -24636,13 +24779,13 @@ var ts; return undefined; } function isJumpStatementTarget(node) { - return node.kind === 64 /* Identifier */ && (node.parent.kind === 180 /* BreakStatement */ || node.parent.kind === 179 /* ContinueStatement */) && node.parent.label === node; + return node.kind === 64 && (node.parent.kind === 180 || node.parent.kind === 179) && node.parent.label === node; } function isLabelOfLabeledStatement(node) { - return node.kind === 64 /* Identifier */ && node.parent.kind === 184 /* LabeledStatement */ && node.parent.label === node; + return node.kind === 64 && node.parent.kind === 184 && node.parent.label === node; } function isLabeledBy(node, labelName) { - for (var owner = node.parent; owner.kind === 184 /* LabeledStatement */; owner = owner.parent) { + for (var owner = node.parent; owner.kind === 184; owner = owner.parent) { if (owner.label.text === labelName) { return true; } @@ -24653,53 +24796,53 @@ var ts; return isLabelOfLabeledStatement(node) || isJumpStatementTarget(node); } function isRightSideOfQualifiedName(node) { - return node.parent.kind === 121 /* QualifiedName */ && node.parent.right === node; + return node.parent.kind === 121 && node.parent.right === node; } function isRightSideOfPropertyAccess(node) { - return node && node.parent && node.parent.kind === 149 /* PropertyAccessExpression */ && node.parent.name === node; + return node && node.parent && node.parent.kind === 149 && node.parent.name === node; } function isCallExpressionTarget(node) { if (isRightSideOfPropertyAccess(node)) { node = node.parent; } - return node && node.parent && node.parent.kind === 151 /* CallExpression */ && node.parent.expression === node; + return node && node.parent && node.parent.kind === 151 && node.parent.expression === node; } function isNewExpressionTarget(node) { if (isRightSideOfPropertyAccess(node)) { node = node.parent; } - return node && node.parent && node.parent.kind === 152 /* NewExpression */ && node.parent.expression === node; + return node && node.parent && node.parent.kind === 152 && node.parent.expression === node; } function isNameOfModuleDeclaration(node) { - return node.parent.kind === 195 /* ModuleDeclaration */ && node.parent.name === node; + return node.parent.kind === 195 && node.parent.name === node; } function isNameOfFunctionDeclaration(node) { - return node.kind === 64 /* Identifier */ && ts.isAnyFunction(node.parent) && node.parent.name === node; + return node.kind === 64 && ts.isAnyFunction(node.parent) && node.parent.name === node; } function isNameOfPropertyAssignment(node) { - return (node.kind === 64 /* Identifier */ || node.kind === 8 /* StringLiteral */ || node.kind === 7 /* NumericLiteral */) && (node.parent.kind === 204 /* PropertyAssignment */ || node.parent.kind === 205 /* ShorthandPropertyAssignment */) && node.parent.name === node; + return (node.kind === 64 || node.kind === 8 || node.kind === 7) && (node.parent.kind === 204 || node.parent.kind === 205) && node.parent.name === node; } function isLiteralNameOfPropertyDeclarationOrIndexAccess(node) { - if (node.kind === 8 /* StringLiteral */ || node.kind === 7 /* NumericLiteral */) { + if (node.kind === 8 || node.kind === 7) { switch (node.parent.kind) { - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 204 /* PropertyAssignment */: - case 206 /* EnumMember */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 195 /* ModuleDeclaration */: + case 126: + case 125: + case 204: + case 206: + case 128: + case 127: + case 130: + case 131: + case 195: return node.parent.name === node; - case 150 /* ElementAccessExpression */: + case 150: return node.parent.argumentExpression === node; } } return false; } function isNameOfExternalModuleImportOrDeclaration(node) { - if (node.kind === 8 /* StringLiteral */) { + if (node.kind === 8) { return isNameOfModuleDeclaration(node) || (ts.isExternalModuleImportDeclaration(node.parent.parent) && ts.getExternalModuleImportDeclarationExpression(node.parent.parent) === node); } return false; @@ -24714,11 +24857,11 @@ var ts; else if (position === comment.end) { var text = sourceFile.text; var width = comment.end - comment.pos; - if (width <= 2 || text.charCodeAt(comment.pos + 1) === 47 /* slash */) { + if (width <= 2 || text.charCodeAt(comment.pos + 1) === 47) { return true; } else { - return !(text.charCodeAt(comment.end - 1) === 47 /* slash */ && text.charCodeAt(comment.end - 2) === 42 /* asterisk */); + return !(text.charCodeAt(comment.end - 1) === 47 && text.charCodeAt(comment.end - 2) === 42); } } return false; @@ -24741,7 +24884,7 @@ var ts; BreakContinueSearchType[BreakContinueSearchType["All"] = 3] = "All"; })(BreakContinueSearchType || (BreakContinueSearchType = {})); var keywordCompletions = []; - for (var i = 65 /* FirstKeyword */; i <= 120 /* LastKeyword */; i++) { + for (var i = 65; i <= 120; i++) { keywordCompletions.push({ name: ts.tokenToString(i), kind: ScriptElementKind.keyword, @@ -24749,149 +24892,138 @@ var ts; }); } function createLanguageService(host, documentRegistry) { + if (documentRegistry === void 0) { documentRegistry = createDocumentRegistry(); } var syntaxTreeCache = new SyntaxTreeCache(host); var ruleProvider; - var hostCache; var program; var typeInfoResolver; - var useCaseSensitivefilenames = false; - var sourceFilesByName = {}; - var documentRegistry = documentRegistry; + var useCaseSensitivefileNames = false; var cancellationToken = new CancellationTokenObject(host.getCancellationToken && host.getCancellationToken()); var activeCompletionSession; if (!ts.localizedDiagnosticMessages && host.getLocalizedDiagnosticMessages) { ts.localizedDiagnosticMessages = host.getLocalizedDiagnosticMessages(); } - function getCanonicalFileName(filename) { - return useCaseSensitivefilenames ? filename : filename.toLowerCase(); + function log(message) { + if (host.log) { + host.log(message); + } } - function getSourceFile(filename) { - return ts.lookUp(sourceFilesByName, getCanonicalFileName(filename)); + function getCanonicalFileName(fileName) { + return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); } - function getDiagnosticsProducingTypeChecker() { - return program.getTypeChecker(true); + function getValidSourceFile(fileName) { + var sourceFile = program.getSourceFile(getCanonicalFileName(fileName)); + if (!sourceFile) { + throw new Error("Could not find file: '" + fileName + "'."); + } + return sourceFile; } function getRuleProvider(options) { if (!ruleProvider) { - ruleProvider = new ts.formatting.RulesProvider(host); + ruleProvider = new ts.formatting.RulesProvider(); } ruleProvider.ensureUpToDate(options); return ruleProvider; } - function createCompilerHost() { - return { - getSourceFile: function (filename, languageVersion) { - var sourceFile = getSourceFile(filename); - return sourceFile && sourceFile.getSourceFile(); - }, - getCancellationToken: function () { return cancellationToken; }, - getCanonicalFileName: function (filename) { return useCaseSensitivefilenames ? filename : filename.toLowerCase(); }, - useCaseSensitiveFileNames: function () { return useCaseSensitivefilenames; }, - getNewLine: function () { - return host.getNewLine ? host.getNewLine() : "\r\n"; - }, - getDefaultLibFilename: function (options) { - return host.getDefaultLibFilename(options); - }, - writeFile: function (filename, data, writeByteOrderMark) { - }, - getCurrentDirectory: function () { - return host.getCurrentDirectory(); - } - }; - } - function sourceFileUpToDate(sourceFile) { - return sourceFile && sourceFile.version === hostCache.getVersion(sourceFile.filename) && sourceFile.isOpen === hostCache.isOpen(sourceFile.filename); - } - function programUpToDate() { - if (!program) { - return false; - } - var hostFilenames = hostCache.getFilenames(); - if (program.getSourceFiles().length !== hostFilenames.length) { - return false; - } - for (var i = 0, n = hostFilenames.length; i < n; i++) { - if (!sourceFileUpToDate(program.getSourceFile(hostFilenames[i]))) { - return false; - } - } - return ts.compareDataObjects(program.getCompilerOptions(), hostCache.compilationSettings()); - } function synchronizeHostData() { - hostCache = new HostCache(host); + var hostCache = new HostCache(host); if (programUpToDate()) { return; } - var compilationSettings = hostCache.compilationSettings(); - var oldProgram = program; - if (oldProgram) { - var oldSettings = program.getCompilerOptions(); - var settingsChangeAffectsSyntax = oldSettings.target !== compilationSettings.target || oldSettings.module !== compilationSettings.module; - var changesInCompilationSettingsAffectSyntax = oldSettings && compilationSettings && !ts.compareDataObjects(oldSettings, compilationSettings) && settingsChangeAffectsSyntax; + var oldSettings = program && program.getCompilerOptions(); + var newSettings = hostCache.compilationSettings(); + var changesInCompilationSettingsAffectSyntax = oldSettings && oldSettings.target !== newSettings.target; + var newProgram = ts.createProgram(hostCache.getRootFileNames(), newSettings, { + getSourceFile: getOrCreateSourceFile, + getCancellationToken: function () { return cancellationToken; }, + getCanonicalFileName: function (fileName) { return useCaseSensitivefileNames ? fileName : fileName.toLowerCase(); }, + useCaseSensitiveFileNames: function () { return useCaseSensitivefileNames; }, + getNewLine: function () { return host.getNewLine ? host.getNewLine() : "\r\n"; }, + getDefaultLibFileName: function (options) { return host.getDefaultLibFileName(options); }, + writeFile: function (fileName, data, writeByteOrderMark) { + }, + getCurrentDirectory: function () { return host.getCurrentDirectory(); } + }); + if (program) { var oldSourceFiles = program.getSourceFiles(); for (var i = 0, n = oldSourceFiles.length; i < n; i++) { - cancellationToken.throwIfCancellationRequested(); - var filename = oldSourceFiles[i].filename; - if (!hostCache.contains(filename) || changesInCompilationSettingsAffectSyntax) { - documentRegistry.releaseDocument(filename, oldSettings); - delete sourceFilesByName[getCanonicalFileName(filename)]; + var fileName = oldSourceFiles[i].fileName; + if (!newProgram.getSourceFile(fileName) || changesInCompilationSettingsAffectSyntax) { + documentRegistry.releaseDocument(fileName, oldSettings); } } } - var hostfilenames = hostCache.getFilenames(); - for (var i = 0, n = hostfilenames.length; i < n; i++) { - var filename = hostfilenames[i]; - var version = hostCache.getVersion(filename); - var isOpen = hostCache.isOpen(filename); - var scriptSnapshot = hostCache.getScriptSnapshot(filename); - var sourceFile = getSourceFile(filename); - if (sourceFile) { - if (sourceFileUpToDate(sourceFile)) { - continue; - } - var textChangeRange = null; - if (sourceFile.isOpen && isOpen) { - textChangeRange = hostCache.getChangeRange(filename, sourceFile.version, sourceFile.scriptSnapshot); - } - sourceFile = documentRegistry.updateDocument(sourceFile, filename, compilationSettings, scriptSnapshot, version, isOpen, textChangeRange); + program = newProgram; + typeInfoResolver = program.getTypeChecker(); + return; + function getOrCreateSourceFile(fileName) { + cancellationToken.throwIfCancellationRequested(); + var hostFileInformation = hostCache.getOrCreateEntry(fileName); + if (!hostFileInformation) { + return undefined; } - else { - sourceFile = documentRegistry.acquireDocument(filename, compilationSettings, scriptSnapshot, version, isOpen); + if (!changesInCompilationSettingsAffectSyntax) { + var oldSourceFile = program && program.getSourceFile(fileName); + if (oldSourceFile) { + if (sourceFileUpToDate(oldSourceFile)) { + return oldSourceFile; + } + var textChangeRange = hostCache.getChangeRange(fileName, oldSourceFile.version, oldSourceFile.scriptSnapshot); + return documentRegistry.updateDocument(oldSourceFile, fileName, newSettings, hostFileInformation.scriptSnapshot, hostFileInformation.version, textChangeRange); + } } - sourceFilesByName[getCanonicalFileName(filename)] = sourceFile; + return documentRegistry.acquireDocument(fileName, newSettings, hostFileInformation.scriptSnapshot, hostFileInformation.version); } - program = ts.createProgram(hostfilenames, compilationSettings, createCompilerHost()); - typeInfoResolver = program.getTypeChecker(false); + function sourceFileUpToDate(sourceFile) { + return sourceFile && sourceFile.version === hostCache.getVersion(sourceFile.fileName); + } + function programUpToDate() { + if (!program) { + return false; + } + var rootFileNames = hostCache.getRootFileNames(); + if (program.getSourceFiles().length !== rootFileNames.length) { + return false; + } + for (var i = 0, n = rootFileNames.length; i < n; i++) { + if (!sourceFileUpToDate(program.getSourceFile(rootFileNames[i]))) { + return false; + } + } + return ts.compareDataObjects(program.getCompilerOptions(), hostCache.compilationSettings()); + } + } + function getProgram() { + synchronizeHostData(); + return program; } function cleanupSemanticCache() { if (program) { - typeInfoResolver = program.getTypeChecker(false); + typeInfoResolver = program.getTypeChecker(); } } function dispose() { if (program) { ts.forEach(program.getSourceFiles(), function (f) { - documentRegistry.releaseDocument(f.filename, program.getCompilerOptions()); + documentRegistry.releaseDocument(f.fileName, program.getCompilerOptions()); }); } } - function getSyntacticDiagnostics(filename) { + function getSyntacticDiagnostics(fileName) { synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - return program.getDiagnostics(getSourceFile(filename)); + fileName = ts.normalizeSlashes(fileName); + return program.getSyntacticDiagnostics(getValidSourceFile(fileName)); } - function getSemanticDiagnostics(filename) { + function getSemanticDiagnostics(fileName) { synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - var compilerOptions = program.getCompilerOptions(); - var checker = getDiagnosticsProducingTypeChecker(); - var targetSourceFile = getSourceFile(filename); - var allDiagnostics = checker.getDiagnostics(targetSourceFile); - if (compilerOptions.declaration) { - allDiagnostics = allDiagnostics.concat(program.getDeclarationDiagnostics(targetSourceFile)); + fileName = ts.normalizeSlashes(fileName); + var targetSourceFile = getValidSourceFile(fileName); + var semanticDiagnostics = program.getSemanticDiagnostics(targetSourceFile); + if (!program.getCompilerOptions().declaration) { + return semanticDiagnostics; } - return allDiagnostics; + var declarationDiagnostics = program.getDeclarationDiagnostics(targetSourceFile); + return semanticDiagnostics.concat(declarationDiagnostics); } function getCompilerOptionsDiagnostics() { synchronizeHostData(); @@ -24901,10 +25033,10 @@ var ts; var displayName = symbol.getName(); if (displayName && displayName.length > 0) { var firstCharCode = displayName.charCodeAt(0); - if ((symbol.flags & 1536 /* Namespace */) && (firstCharCode === 39 /* singleQuote */ || firstCharCode === 34 /* doubleQuote */)) { + if ((symbol.flags & 1536) && (firstCharCode === 39 || firstCharCode === 34)) { return undefined; } - if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && (firstCharCode === 39 /* singleQuote */ || firstCharCode === 34 /* doubleQuote */)) { + if (displayName && displayName.length >= 2 && firstCharCode === displayName.charCodeAt(displayName.length - 1) && (firstCharCode === 39 || firstCharCode === 34)) { displayName = displayName.substring(1, displayName.length - 1); } var isValid = ts.isIdentifierStart(displayName.charCodeAt(0), target); @@ -24928,40 +25060,40 @@ var ts; kindModifiers: getSymbolModifiers(symbol) }; } - function getCompletionsAtPosition(filename, position) { + function getCompletionsAtPosition(fileName, position) { synchronizeHostData(); - filename = ts.normalizeSlashes(filename); + fileName = ts.normalizeSlashes(fileName); var syntacticStart = new Date().getTime(); - var sourceFile = getSourceFile(filename); + var sourceFile = getValidSourceFile(fileName); var start = new Date().getTime(); var currentToken = ts.getTokenAtPosition(sourceFile, position); - host.log("getCompletionsAtPosition: Get current token: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: Get current token: " + (new Date().getTime() - start)); var start = new Date().getTime(); var insideComment = isInsideComment(sourceFile, currentToken, position); - host.log("getCompletionsAtPosition: Is inside comment: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: Is inside comment: " + (new Date().getTime() - start)); if (insideComment) { - host.log("Returning an empty list because completion was inside a comment."); + log("Returning an empty list because completion was inside a comment."); return undefined; } var start = new Date().getTime(); var previousToken = ts.findPrecedingToken(position, sourceFile); - host.log("getCompletionsAtPosition: Get previous token 1: " + (new Date().getTime() - start)); - if (previousToken && position <= previousToken.end && previousToken.kind === 64 /* Identifier */) { + log("getCompletionsAtPosition: Get previous token 1: " + (new Date().getTime() - start)); + if (previousToken && position <= previousToken.end && previousToken.kind === 64) { var start = new Date().getTime(); previousToken = ts.findPrecedingToken(previousToken.pos, sourceFile); - host.log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: Get previous token 2: " + (new Date().getTime() - start)); } if (previousToken && isCompletionListBlocker(previousToken)) { - host.log("Returning an empty list because completion was requested in an invalid position."); + log("Returning an empty list because completion was requested in an invalid position."); return undefined; } var node; var isRightOfDot; - if (previousToken && previousToken.kind === 20 /* DotToken */ && previousToken.parent.kind === 149 /* PropertyAccessExpression */) { + if (previousToken && previousToken.kind === 20 && previousToken.parent.kind === 149) { node = previousToken.parent.expression; isRightOfDot = true; } - else if (previousToken && previousToken.kind === 20 /* DotToken */ && previousToken.parent.kind === 121 /* QualifiedName */) { + else if (previousToken && previousToken.kind === 20 && previousToken.parent.kind === 121) { node = previousToken.parent.left; isRightOfDot = true; } @@ -24970,24 +25102,25 @@ var ts; isRightOfDot = false; } activeCompletionSession = { - filename: filename, + fileName: fileName, position: position, entries: [], symbols: {}, typeChecker: typeInfoResolver }; - host.log("getCompletionsAtPosition: Syntactic work: " + (new Date().getTime() - syntacticStart)); + log("getCompletionsAtPosition: Syntactic work: " + (new Date().getTime() - syntacticStart)); var location = ts.getTouchingPropertyName(sourceFile, position); var semanticStart = new Date().getTime(); if (isRightOfDot) { var symbols = []; var isMemberCompletion = true; - if (node.kind === 64 /* Identifier */ || node.kind === 121 /* QualifiedName */ || node.kind === 149 /* PropertyAccessExpression */) { + var isNewIdentifierLocation = false; + if (node.kind === 64 || node.kind === 121 || node.kind === 149) { var symbol = typeInfoResolver.getSymbolAtLocation(node); - if (symbol && symbol.flags & 8388608 /* Import */) { + if (symbol && symbol.flags & 8388608) { symbol = typeInfoResolver.getAliasedSymbol(symbol); } - if (symbol && symbol.flags & 1952 /* HasExports */) { + if (symbol && symbol.flags & 1952) { ts.forEachValue(symbol.exports, function (symbol) { if (typeInfoResolver.isValidPropertyAccess((node.parent), symbol.name)) { symbols.push(symbol); @@ -25009,6 +25142,7 @@ var ts; var containingObjectLiteral = getContainingObjectLiteralApplicableForCompletion(previousToken); if (containingObjectLiteral) { isMemberCompletion = true; + isNewIdentifierLocation = true; var contextualType = typeInfoResolver.getContextualType(containingObjectLiteral); if (!contextualType) { return undefined; @@ -25021,7 +25155,8 @@ var ts; } else { isMemberCompletion = false; - var symbolMeanings = 793056 /* Type */ | 107455 /* Value */ | 1536 /* Namespace */ | 8388608 /* Import */; + isNewIdentifierLocation = isNewIdentifierDefinitionLocation(previousToken); + var symbolMeanings = 793056 | 107455 | 1536 | 8388608; var symbols = typeInfoResolver.getSymbolsInScope(node, symbolMeanings); getCompletionEntriesFromSymbols(symbols, activeCompletionSession); } @@ -25029,9 +25164,11 @@ var ts; if (!isMemberCompletion) { Array.prototype.push.apply(activeCompletionSession.entries, keywordCompletions); } - host.log("getCompletionsAtPosition: Semantic work: " + (new Date().getTime() - semanticStart)); + log("getCompletionsAtPosition: Semantic work: " + (new Date().getTime() - semanticStart)); return { isMemberCompletion: isMemberCompletion, + isNewIdentifierLocation: isNewIdentifierLocation, + isBuilder: isNewIdentifierDefinitionLocation, entries: activeCompletionSession.entries }; function getCompletionEntriesFromSymbols(symbols, session) { @@ -25046,16 +25183,52 @@ var ts; } } }); - host.log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: getCompletionEntriesFromSymbols: " + (new Date().getTime() - start)); } function isCompletionListBlocker(previousToken) { var start = new Date().getTime(); var result = isInStringOrRegularExpressionOrTemplateLiteral(previousToken) || isIdentifierDefinitionLocation(previousToken) || isRightOfIllegalDot(previousToken); - host.log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); + log("getCompletionsAtPosition: isCompletionListBlocker: " + (new Date().getTime() - start)); return result; } + function isNewIdentifierDefinitionLocation(previousToken) { + if (previousToken) { + var containingNodeKind = previousToken.parent.kind; + switch (previousToken.kind) { + case 23: + return containingNodeKind === 151 || containingNodeKind === 129 || containingNodeKind === 152 || containingNodeKind === 147 || containingNodeKind === 163; + case 16: + return containingNodeKind === 151 || containingNodeKind === 129 || containingNodeKind === 152 || containingNodeKind === 155; + case 18: + return containingNodeKind === 147; + case 115: + return true; + case 20: + return containingNodeKind === 195; + case 14: + return containingNodeKind === 191; + case 52: + return containingNodeKind === 188 || containingNodeKind === 163; + case 11: + return containingNodeKind === 165; + case 12: + return containingNodeKind === 169; + case 107: + case 105: + case 106: + return containingNodeKind === 126; + } + switch (previousToken.getText()) { + case "public": + case "protected": + case "private": + return true; + } + } + return false; + } function isInStringOrRegularExpressionOrTemplateLiteral(previousToken) { - if (previousToken.kind === 8 /* StringLiteral */ || previousToken.kind === 9 /* RegularExpressionLiteral */ || ts.isTemplateLiteralKind(previousToken.kind)) { + if (previousToken.kind === 8 || previousToken.kind === 9 || ts.isTemplateLiteralKind(previousToken.kind)) { var start = previousToken.getStart(); var end = previousToken.getEnd(); if (start < position && position < end) { @@ -25071,9 +25244,9 @@ var ts; if (previousToken) { var parent = previousToken.parent; switch (previousToken.kind) { - case 14 /* OpenBraceToken */: - case 23 /* CommaToken */: - if (parent && parent.kind === 148 /* ObjectLiteralExpression */) { + case 14: + case 23: + if (parent && parent.kind === 148) { return parent; } break; @@ -25083,17 +25256,16 @@ var ts; } function isFunction(kind) { switch (kind) { - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: - case 190 /* FunctionDeclaration */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 132 /* CallSignature */: - case 133 /* ConstructSignature */: - case 134 /* IndexSignature */: + case 156: + case 157: + case 190: + case 128: + case 127: + case 130: + case 131: + case 132: + case 133: + case 134: return true; } return false; @@ -25102,44 +25274,58 @@ var ts; if (previousToken) { var containingNodeKind = previousToken.parent.kind; switch (previousToken.kind) { - case 23 /* CommaToken */: - return containingNodeKind === 188 /* VariableDeclaration */ || containingNodeKind === 189 /* VariableDeclarationList */ || containingNodeKind === 171 /* VariableStatement */ || containingNodeKind === 194 /* EnumDeclaration */ || isFunction(containingNodeKind); - case 16 /* OpenParenToken */: - return containingNodeKind === 203 /* CatchClause */ || isFunction(containingNodeKind); - case 14 /* OpenBraceToken */: - return containingNodeKind === 194 /* EnumDeclaration */ || containingNodeKind === 192 /* InterfaceDeclaration */; - case 22 /* SemicolonToken */: - return containingNodeKind === 125 /* PropertySignature */ && previousToken.parent.parent.kind === 192 /* InterfaceDeclaration */; - case 107 /* PublicKeyword */: - case 105 /* PrivateKeyword */: - case 108 /* StaticKeyword */: - case 21 /* DotDotDotToken */: - return containingNodeKind === 124 /* Parameter */; - case 68 /* ClassKeyword */: - case 115 /* ModuleKeyword */: - case 76 /* EnumKeyword */: - case 102 /* InterfaceKeyword */: - case 82 /* FunctionKeyword */: - case 97 /* VarKeyword */: - case 114 /* GetKeyword */: - case 118 /* SetKeyword */: - case 84 /* ImportKeyword */: + case 23: + return containingNodeKind === 188 || containingNodeKind === 189 || containingNodeKind === 171 || containingNodeKind === 194 || isFunction(containingNodeKind) || containingNodeKind === 191 || containingNodeKind === 190 || containingNodeKind === 192 || containingNodeKind === 145 || containingNodeKind === 144; + case 20: + return containingNodeKind === 145; + case 18: + return containingNodeKind === 145; + case 16: + return containingNodeKind === 203 || isFunction(containingNodeKind); + case 14: + return containingNodeKind === 194 || containingNodeKind === 192 || containingNodeKind === 139 || containingNodeKind === 144; + case 22: + return containingNodeKind === 125 && (previousToken.parent.parent.kind === 192 || previousToken.parent.parent.kind === 139); + case 24: + return containingNodeKind === 191 || containingNodeKind === 190 || containingNodeKind === 192 || isFunction(containingNodeKind); + case 108: + return containingNodeKind === 126; + case 21: + return containingNodeKind === 124 || containingNodeKind === 129 || (previousToken.parent.parent.kind === 145); + case 107: + case 105: + case 106: + return containingNodeKind === 124; + case 68: + case 76: + case 102: + case 82: + case 97: + case 114: + case 118: + case 84: + case 103: + case 69: + case 109: return true; } switch (previousToken.getText()) { case "class": case "interface": case "enum": - case "module": case "function": case "var": + case "static": + case "let": + case "const": + case "yield": return true; } } return false; } function isRightOfIllegalDot(previousToken) { - if (previousToken && previousToken.kind === 7 /* NumericLiteral */) { + if (previousToken && previousToken.kind === 7) { var text = previousToken.getFullText(); return text.charAt(text.length - 1) === "."; } @@ -25151,7 +25337,7 @@ var ts; } var existingMemberNames = {}; ts.forEach(existingMembers, function (m) { - if (m.kind !== 204 /* PropertyAssignment */ && m.kind !== 205 /* ShorthandPropertyAssignment */) { + if (m.kind !== 204 && m.kind !== 205) { return; } if (m.getStart() <= position && position <= m.getEnd()) { @@ -25168,11 +25354,11 @@ var ts; return filteredMembers; } } - function getCompletionEntryDetails(filename, position, entryName) { - filename = ts.normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); + function getCompletionEntryDetails(fileName, position, entryName) { + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getValidSourceFile(fileName); var session = activeCompletionSession; - if (!session || session.filename !== filename || session.position !== position) { + if (!session || session.fileName !== fileName || session.position !== position) { return undefined; } var symbol = ts.lookUp(activeCompletionSession.symbols, ts.escapeIdentifier(entryName)); @@ -25180,7 +25366,7 @@ var ts; var location = ts.getTouchingPropertyName(sourceFile, position); var completionEntry = createCompletionEntry(symbol, session.typeChecker, location); ts.Debug.assert(session.typeChecker.getTypeOfSymbolAtLocation(symbol, location) !== undefined, "Could not find type for symbol"); - var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getSourceFile(filename), location, session.typeChecker, location, 7 /* All */); + var displayPartsDocumentationsAndSymbolKind = getSymbolDisplayPartsDocumentationAndSymbolKind(symbol, getValidSourceFile(fileName), location, session.typeChecker, location, 7); return { name: entryName, kind: displayPartsDocumentationsAndSymbolKind.symbolKind, @@ -25194,7 +25380,7 @@ var ts; name: entryName, kind: ScriptElementKind.keyword, kindModifiers: ScriptElementKindModifier.none, - displayParts: [ts.displayPart(entryName, 5 /* keyword */)], + displayParts: [ts.displayPart(entryName, 5)], documentation: undefined }; } @@ -25206,42 +25392,42 @@ var ts; return undefined; } switch (node.kind) { - case 207 /* SourceFile */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 191 /* ClassDeclaration */: - case 192 /* InterfaceDeclaration */: - case 194 /* EnumDeclaration */: - case 195 /* ModuleDeclaration */: + case 207: + case 128: + case 127: + case 190: + case 156: + case 130: + case 131: + case 191: + case 192: + case 194: + case 195: return node; } } } function getSymbolKind(symbol, typeResolver, location) { var flags = symbol.getFlags(); - if (flags & 32 /* Class */) + if (flags & 32) return ScriptElementKind.classElement; - if (flags & 384 /* Enum */) + if (flags & 384) return ScriptElementKind.enumElement; - if (flags & 524288 /* TypeAlias */) + if (flags & 524288) return ScriptElementKind.typeElement; - if (flags & 64 /* Interface */) + if (flags & 64) return ScriptElementKind.interfaceElement; - if (flags & 262144 /* TypeParameter */) + if (flags & 262144) return ScriptElementKind.typeParameterElement; var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, typeResolver, location); if (result === ScriptElementKind.unknown) { - if (flags & 262144 /* TypeParameter */) + if (flags & 262144) return ScriptElementKind.typeParameterElement; - if (flags & 8 /* EnumMember */) + if (flags & 8) return ScriptElementKind.variableElement; - if (flags & 8388608 /* Import */) + if (flags & 8388608) return ScriptElementKind.alias; - if (flags & 1536 /* Module */) + if (flags & 1536) return ScriptElementKind.moduleElement; } return result; @@ -25253,7 +25439,7 @@ var ts; if (typeResolver.isArgumentsSymbol(symbol)) { return ScriptElementKind.localVariableElement; } - if (flags & 3 /* Variable */) { + if (flags & 3) { if (ts.isFirstDeclarationOfSymbolParameter(symbol)) { return ScriptElementKind.parameterElement; } @@ -25265,24 +25451,24 @@ var ts; } return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localVariableElement : ScriptElementKind.variableElement; } - if (flags & 16 /* Function */) + if (flags & 16) return isLocalVariableOrFunction(symbol) ? ScriptElementKind.localFunctionElement : ScriptElementKind.functionElement; - if (flags & 32768 /* GetAccessor */) + if (flags & 32768) return ScriptElementKind.memberGetAccessorElement; - if (flags & 65536 /* SetAccessor */) + if (flags & 65536) return ScriptElementKind.memberSetAccessorElement; - if (flags & 8192 /* Method */) + if (flags & 8192) return ScriptElementKind.memberFunctionElement; - if (flags & 16384 /* Constructor */) + if (flags & 16384) return ScriptElementKind.constructorImplementationElement; - if (flags & 4 /* Property */) { - if (flags & 268435456 /* UnionProperty */) { + if (flags & 4) { + if (flags & 268435456) { var unionPropertyKind = ts.forEach(typeInfoResolver.getRootSymbols(symbol), function (rootSymbol) { var rootSymbolFlags = rootSymbol.getFlags(); - if (rootSymbolFlags & (98308 /* PropertyOrAccessor */ | 3 /* Variable */)) { + if (rootSymbolFlags & (98308 | 3)) { return ScriptElementKind.memberVariableElement; } - ts.Debug.assert(!!(rootSymbolFlags & 8192 /* Method */)); + ts.Debug.assert(!!(rootSymbolFlags & 8192)); }); if (!unionPropertyKind) { var typeOfUnionProperty = typeInfoResolver.getTypeOfSymbolAtLocation(symbol, location); @@ -25299,45 +25485,45 @@ var ts; } function getTypeKind(type) { var flags = type.getFlags(); - if (flags & 128 /* Enum */) + if (flags & 128) return ScriptElementKind.enumElement; - if (flags & 1024 /* Class */) + if (flags & 1024) return ScriptElementKind.classElement; - if (flags & 2048 /* Interface */) + if (flags & 2048) return ScriptElementKind.interfaceElement; - if (flags & 512 /* TypeParameter */) + if (flags & 512) return ScriptElementKind.typeParameterElement; - if (flags & 127 /* Intrinsic */) + if (flags & 127) return ScriptElementKind.primitiveType; - if (flags & 256 /* StringLiteral */) + if (flags & 256) return ScriptElementKind.primitiveType; return ScriptElementKind.unknown; } function getNodeKind(node) { switch (node.kind) { - case 195 /* ModuleDeclaration */: return ScriptElementKind.moduleElement; - case 191 /* ClassDeclaration */: return ScriptElementKind.classElement; - case 192 /* InterfaceDeclaration */: return ScriptElementKind.interfaceElement; - case 193 /* TypeAliasDeclaration */: return ScriptElementKind.typeElement; - case 194 /* EnumDeclaration */: return ScriptElementKind.enumElement; - case 188 /* VariableDeclaration */: + case 195: return ScriptElementKind.moduleElement; + case 191: return ScriptElementKind.classElement; + case 192: return ScriptElementKind.interfaceElement; + case 193: return ScriptElementKind.typeElement; + case 194: return ScriptElementKind.enumElement; + case 188: return ts.isConst(node) ? ScriptElementKind.constElement : ts.isLet(node) ? ScriptElementKind.letElement : ScriptElementKind.variableElement; - case 190 /* FunctionDeclaration */: return ScriptElementKind.functionElement; - case 130 /* GetAccessor */: return ScriptElementKind.memberGetAccessorElement; - case 131 /* SetAccessor */: return ScriptElementKind.memberSetAccessorElement; - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: + case 190: return ScriptElementKind.functionElement; + case 130: return ScriptElementKind.memberGetAccessorElement; + case 131: return ScriptElementKind.memberSetAccessorElement; + case 128: + case 127: return ScriptElementKind.memberFunctionElement; - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: + case 126: + case 125: return ScriptElementKind.memberVariableElement; - case 134 /* IndexSignature */: return ScriptElementKind.indexSignatureElement; - case 133 /* ConstructSignature */: return ScriptElementKind.constructSignatureElement; - case 132 /* CallSignature */: return ScriptElementKind.callSignatureElement; - case 129 /* Constructor */: return ScriptElementKind.constructorImplementationElement; - case 123 /* TypeParameter */: return ScriptElementKind.typeParameterElement; - case 206 /* EnumMember */: return ScriptElementKind.variableElement; - case 124 /* Parameter */: return (node.flags & 112 /* AccessibilityModifier */) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; + case 134: return ScriptElementKind.indexSignatureElement; + case 133: return ScriptElementKind.constructSignatureElement; + case 132: return ScriptElementKind.callSignatureElement; + case 129: return ScriptElementKind.constructorImplementationElement; + case 123: return ScriptElementKind.typeParameterElement; + case 206: return ScriptElementKind.variableElement; + case 124: return (node.flags & 112) ? ScriptElementKind.memberVariableElement : ScriptElementKind.parameterElement; } return ScriptElementKind.unknown; } @@ -25351,20 +25537,20 @@ var ts; var symbolFlags = symbol.flags; var symbolKind = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, symbolFlags, typeResolver, location); var hasAddedSymbolInfo; - if (symbolKind !== ScriptElementKind.unknown || symbolFlags & 32 /* Class */ || symbolFlags & 8388608 /* Import */) { + if (symbolKind !== ScriptElementKind.unknown || symbolFlags & 32 || symbolFlags & 8388608) { if (symbolKind === ScriptElementKind.memberGetAccessorElement || symbolKind === ScriptElementKind.memberSetAccessorElement) { symbolKind = ScriptElementKind.memberVariableElement; } var type = typeResolver.getTypeOfSymbolAtLocation(symbol, location); if (type) { - if (location.parent && location.parent.kind === 149 /* PropertyAccessExpression */) { + if (location.parent && location.parent.kind === 149) { var right = location.parent.name; if (right === location || (right && right.getFullWidth() === 0)) { location = location.parent; } } var callExpression; - if (location.kind === 151 /* CallExpression */ || location.kind === 152 /* NewExpression */) { + if (location.kind === 151 || location.kind === 152) { callExpression = location; } else if (isCallExpressionTarget(location) || isNewExpressionTarget(location)) { @@ -25376,24 +25562,24 @@ var ts; if (!signature && candidateSignatures.length) { signature = candidateSignatures[0]; } - var useConstructSignatures = callExpression.kind === 152 /* NewExpression */ || callExpression.expression.kind === 90 /* SuperKeyword */; + var useConstructSignatures = callExpression.kind === 152 || callExpression.expression.kind === 90; var allSignatures = useConstructSignatures ? type.getConstructSignatures() : type.getCallSignatures(); if (!ts.contains(allSignatures, signature.target || signature)) { signature = allSignatures.length ? allSignatures[0] : undefined; } if (signature) { - if (useConstructSignatures && (symbolFlags & 32 /* Class */)) { + if (useConstructSignatures && (symbolFlags & 32)) { symbolKind = ScriptElementKind.constructorImplementationElement; addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); } - else if (symbolFlags & 8388608 /* Import */) { + else if (symbolFlags & 8388608) { symbolKind = ScriptElementKind.alias; - displayParts.push(ts.punctuationPart(16 /* OpenParenToken */)); + displayParts.push(ts.punctuationPart(16)); displayParts.push(ts.textPart(symbolKind)); - displayParts.push(ts.punctuationPart(17 /* CloseParenToken */)); + displayParts.push(ts.punctuationPart(17)); displayParts.push(ts.spacePart()); if (useConstructSignatures) { - displayParts.push(ts.keywordPart(87 /* NewKeyword */)); + displayParts.push(ts.keywordPart(87)); displayParts.push(ts.spacePart()); } addFullSymbolName(symbol); @@ -25408,16 +25594,16 @@ var ts; case ScriptElementKind.letElement: case ScriptElementKind.parameterElement: case ScriptElementKind.localVariableElement: - displayParts.push(ts.punctuationPart(51 /* ColonToken */)); + displayParts.push(ts.punctuationPart(51)); displayParts.push(ts.spacePart()); if (useConstructSignatures) { - displayParts.push(ts.keywordPart(87 /* NewKeyword */)); + displayParts.push(ts.keywordPart(87)); displayParts.push(ts.spacePart()); } - if (!(type.flags & 32768 /* Anonymous */)) { - displayParts.push.apply(displayParts, ts.symbolToDisplayParts(typeResolver, type.symbol, enclosingDeclaration, undefined, 1 /* WriteTypeParametersOrArguments */)); + if (!(type.flags & 32768)) { + displayParts.push.apply(displayParts, ts.symbolToDisplayParts(typeResolver, type.symbol, enclosingDeclaration, undefined, 1)); } - addSignatureDisplayParts(signature, allSignatures, 8 /* WriteArrowStyleSignature */); + addSignatureDisplayParts(signature, allSignatures, 8); break; default: addSignatureDisplayParts(signature, allSignatures); @@ -25425,129 +25611,129 @@ var ts; hasAddedSymbolInfo = true; } } - else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & 98304 /* Accessor */)) || (location.kind === 112 /* ConstructorKeyword */ && location.parent.kind === 129 /* Constructor */)) { + else if ((isNameOfFunctionDeclaration(location) && !(symbol.flags & 98304)) || (location.kind === 112 && location.parent.kind === 129)) { var signature; var functionDeclaration = location.parent; - var allSignatures = functionDeclaration.kind === 129 /* Constructor */ ? type.getConstructSignatures() : type.getCallSignatures(); + var allSignatures = functionDeclaration.kind === 129 ? type.getConstructSignatures() : type.getCallSignatures(); if (!typeResolver.isImplementationOfOverload(functionDeclaration)) { signature = typeResolver.getSignatureFromDeclaration(functionDeclaration); } else { signature = allSignatures[0]; } - if (functionDeclaration.kind === 129 /* Constructor */) { + if (functionDeclaration.kind === 129) { symbolKind = ScriptElementKind.constructorImplementationElement; addPrefixForAnyFunctionOrVar(type.symbol, symbolKind); } else { - addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 132 /* CallSignature */ && !(type.symbol.flags & 2048 /* TypeLiteral */ || type.symbol.flags & 4096 /* ObjectLiteral */) ? type.symbol : symbol, symbolKind); + addPrefixForAnyFunctionOrVar(functionDeclaration.kind === 132 && !(type.symbol.flags & 2048 || type.symbol.flags & 4096) ? type.symbol : symbol, symbolKind); } addSignatureDisplayParts(signature, allSignatures); hasAddedSymbolInfo = true; } } } - if (symbolFlags & 32 /* Class */ && !hasAddedSymbolInfo) { - displayParts.push(ts.keywordPart(68 /* ClassKeyword */)); + if (symbolFlags & 32 && !hasAddedSymbolInfo) { + displayParts.push(ts.keywordPart(68)); displayParts.push(ts.spacePart()); addFullSymbolName(symbol); writeTypeParametersOfSymbol(symbol, sourceFile); } - if ((symbolFlags & 64 /* Interface */) && (semanticMeaning & 2 /* Type */)) { + if ((symbolFlags & 64) && (semanticMeaning & 2)) { addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(102 /* InterfaceKeyword */)); + displayParts.push(ts.keywordPart(102)); displayParts.push(ts.spacePart()); addFullSymbolName(symbol); writeTypeParametersOfSymbol(symbol, sourceFile); } - if (symbolFlags & 524288 /* TypeAlias */) { + if (symbolFlags & 524288) { addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(120 /* TypeKeyword */)); + displayParts.push(ts.keywordPart(120)); displayParts.push(ts.spacePart()); addFullSymbolName(symbol); displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(52 /* EqualsToken */)); + displayParts.push(ts.operatorPart(52)); displayParts.push(ts.spacePart()); displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, typeResolver.getDeclaredTypeOfSymbol(symbol), enclosingDeclaration)); } - if (symbolFlags & 384 /* Enum */) { + if (symbolFlags & 384) { addNewLineIfDisplayPartsExist(); if (ts.forEach(symbol.declarations, ts.isConstEnumDeclaration)) { - displayParts.push(ts.keywordPart(69 /* ConstKeyword */)); + displayParts.push(ts.keywordPart(69)); displayParts.push(ts.spacePart()); } - displayParts.push(ts.keywordPart(76 /* EnumKeyword */)); + displayParts.push(ts.keywordPart(76)); displayParts.push(ts.spacePart()); addFullSymbolName(symbol); } - if (symbolFlags & 1536 /* Module */) { + if (symbolFlags & 1536) { addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(115 /* ModuleKeyword */)); + displayParts.push(ts.keywordPart(115)); displayParts.push(ts.spacePart()); addFullSymbolName(symbol); } - if ((symbolFlags & 262144 /* TypeParameter */) && (semanticMeaning & 2 /* Type */)) { + if ((symbolFlags & 262144) && (semanticMeaning & 2)) { addNewLineIfDisplayPartsExist(); - displayParts.push(ts.punctuationPart(16 /* OpenParenToken */)); + displayParts.push(ts.punctuationPart(16)); displayParts.push(ts.textPart("type parameter")); - displayParts.push(ts.punctuationPart(17 /* CloseParenToken */)); + displayParts.push(ts.punctuationPart(17)); displayParts.push(ts.spacePart()); addFullSymbolName(symbol); displayParts.push(ts.spacePart()); - displayParts.push(ts.keywordPart(85 /* InKeyword */)); + displayParts.push(ts.keywordPart(85)); displayParts.push(ts.spacePart()); if (symbol.parent) { addFullSymbolName(symbol.parent, enclosingDeclaration); writeTypeParametersOfSymbol(symbol.parent, enclosingDeclaration); } else { - var signatureDeclaration = ts.getDeclarationOfKind(symbol, 123 /* TypeParameter */).parent; + var signatureDeclaration = ts.getDeclarationOfKind(symbol, 123).parent; var signature = typeResolver.getSignatureFromDeclaration(signatureDeclaration); - if (signatureDeclaration.kind === 133 /* ConstructSignature */) { - displayParts.push(ts.keywordPart(87 /* NewKeyword */)); + if (signatureDeclaration.kind === 133) { + displayParts.push(ts.keywordPart(87)); displayParts.push(ts.spacePart()); } - else if (signatureDeclaration.kind !== 132 /* CallSignature */ && signatureDeclaration.name) { + else if (signatureDeclaration.kind !== 132 && signatureDeclaration.name) { addFullSymbolName(signatureDeclaration.symbol); } - displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, sourceFile, 32 /* WriteTypeArgumentsOfSignature */)); + displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, sourceFile, 32)); } } - if (symbolFlags & 8 /* EnumMember */) { + if (symbolFlags & 8) { addPrefixForAnyFunctionOrVar(symbol, "enum member"); var declaration = symbol.declarations[0]; - if (declaration.kind === 206 /* EnumMember */) { - var constantValue = typeResolver.getEnumMemberValue(declaration); + if (declaration.kind === 206) { + var constantValue = typeResolver.getConstantValue(declaration); if (constantValue !== undefined) { displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(52 /* EqualsToken */)); + displayParts.push(ts.operatorPart(52)); displayParts.push(ts.spacePart()); - displayParts.push(ts.displayPart(constantValue.toString(), 7 /* numericLiteral */)); + displayParts.push(ts.displayPart(constantValue.toString(), 7)); } } } - if (symbolFlags & 8388608 /* Import */) { + if (symbolFlags & 8388608) { addNewLineIfDisplayPartsExist(); - displayParts.push(ts.keywordPart(84 /* ImportKeyword */)); + displayParts.push(ts.keywordPart(84)); displayParts.push(ts.spacePart()); addFullSymbolName(symbol); ts.forEach(symbol.declarations, function (declaration) { - if (declaration.kind === 197 /* ImportDeclaration */) { + if (declaration.kind === 197) { var importDeclaration = declaration; if (ts.isExternalModuleImportDeclaration(importDeclaration)) { displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(52 /* EqualsToken */)); + displayParts.push(ts.operatorPart(52)); displayParts.push(ts.spacePart()); - displayParts.push(ts.keywordPart(116 /* RequireKeyword */)); - displayParts.push(ts.punctuationPart(16 /* OpenParenToken */)); - displayParts.push(ts.displayPart(ts.getTextOfNode(ts.getExternalModuleImportDeclarationExpression(importDeclaration)), 8 /* stringLiteral */)); - displayParts.push(ts.punctuationPart(17 /* CloseParenToken */)); + displayParts.push(ts.keywordPart(116)); + displayParts.push(ts.punctuationPart(16)); + displayParts.push(ts.displayPart(ts.getTextOfNode(ts.getExternalModuleImportDeclarationExpression(importDeclaration)), 8)); + displayParts.push(ts.punctuationPart(17)); } else { var internalAliasSymbol = typeResolver.getSymbolAtLocation(importDeclaration.moduleReference); if (internalAliasSymbol) { displayParts.push(ts.spacePart()); - displayParts.push(ts.operatorPart(52 /* EqualsToken */)); + displayParts.push(ts.operatorPart(52)); displayParts.push(ts.spacePart()); addFullSymbolName(internalAliasSymbol, enclosingDeclaration); } @@ -25560,10 +25746,10 @@ var ts; if (symbolKind !== ScriptElementKind.unknown) { if (type) { addPrefixForAnyFunctionOrVar(symbol, symbolKind); - if (symbolKind === ScriptElementKind.memberVariableElement || symbolFlags & 3 /* Variable */ || symbolKind === ScriptElementKind.localVariableElement) { - displayParts.push(ts.punctuationPart(51 /* ColonToken */)); + if (symbolKind === ScriptElementKind.memberVariableElement || symbolFlags & 3 || symbolKind === ScriptElementKind.localVariableElement) { + displayParts.push(ts.punctuationPart(51)); displayParts.push(ts.spacePart()); - if (type.symbol && type.symbol.flags & 262144 /* TypeParameter */) { + if (type.symbol && type.symbol.flags & 262144) { var typeParameterParts = ts.mapToDisplayParts(function (writer) { typeResolver.getSymbolDisplayBuilder().buildTypeParameterDisplay(type, writer, enclosingDeclaration); }); @@ -25573,7 +25759,7 @@ var ts; displayParts.push.apply(displayParts, ts.typeToDisplayParts(typeResolver, type, enclosingDeclaration)); } } - else if (symbolFlags & 16 /* Function */ || symbolFlags & 8192 /* Method */ || symbolFlags & 16384 /* Constructor */ || symbolFlags & 131072 /* Signature */ || symbolFlags & 98304 /* Accessor */ || symbolKind === ScriptElementKind.memberFunctionElement) { + else if (symbolFlags & 16 || symbolFlags & 8192 || symbolFlags & 16384 || symbolFlags & 131072 || symbolFlags & 98304 || symbolKind === ScriptElementKind.memberFunctionElement) { var allSignatures = type.getCallSignatures(); addSignatureDisplayParts(allSignatures[0], allSignatures); } @@ -25593,29 +25779,29 @@ var ts; } } function addFullSymbolName(symbol, enclosingDeclaration) { - var fullSymbolDisplayParts = ts.symbolToDisplayParts(typeResolver, symbol, enclosingDeclaration || sourceFile, undefined, 1 /* WriteTypeParametersOrArguments */ | 2 /* UseOnlyExternalAliasing */); + var fullSymbolDisplayParts = ts.symbolToDisplayParts(typeResolver, symbol, enclosingDeclaration || sourceFile, undefined, 1 | 2); displayParts.push.apply(displayParts, fullSymbolDisplayParts); } function addPrefixForAnyFunctionOrVar(symbol, symbolKind) { addNewLineIfDisplayPartsExist(); if (symbolKind) { - displayParts.push(ts.punctuationPart(16 /* OpenParenToken */)); + displayParts.push(ts.punctuationPart(16)); displayParts.push(ts.textPart(symbolKind)); - displayParts.push(ts.punctuationPart(17 /* CloseParenToken */)); + displayParts.push(ts.punctuationPart(17)); displayParts.push(ts.spacePart()); addFullSymbolName(symbol); } } function addSignatureDisplayParts(signature, allSignatures, flags) { - displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, enclosingDeclaration, flags | 32 /* WriteTypeArgumentsOfSignature */)); + displayParts.push.apply(displayParts, ts.signatureToDisplayParts(typeResolver, signature, enclosingDeclaration, flags | 32)); if (allSignatures.length > 1) { displayParts.push(ts.spacePart()); - displayParts.push(ts.punctuationPart(16 /* OpenParenToken */)); - displayParts.push(ts.operatorPart(33 /* PlusToken */)); - displayParts.push(ts.displayPart((allSignatures.length - 1).toString(), 7 /* numericLiteral */)); + displayParts.push(ts.punctuationPart(16)); + displayParts.push(ts.operatorPart(33)); + displayParts.push(ts.displayPart((allSignatures.length - 1).toString(), 7)); displayParts.push(ts.spacePart()); displayParts.push(ts.textPart(allSignatures.length === 2 ? "overload" : "overloads")); - displayParts.push(ts.punctuationPart(17 /* CloseParenToken */)); + displayParts.push(ts.punctuationPart(17)); } documentation = signature.getDocumentationComment(); } @@ -25629,7 +25815,7 @@ var ts; function getQuickInfoAtPosition(fileName, position) { synchronizeHostData(); fileName = ts.normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); + var sourceFile = getValidSourceFile(fileName); var node = ts.getTouchingPropertyName(sourceFile, position); if (!node) { return undefined; @@ -25637,11 +25823,11 @@ var ts; var symbol = typeInfoResolver.getSymbolAtLocation(node); if (!symbol) { switch (node.kind) { - case 64 /* Identifier */: - case 149 /* PropertyAccessExpression */: - case 121 /* QualifiedName */: - case 92 /* ThisKeyword */: - case 90 /* SuperKeyword */: + case 64: + case 149: + case 121: + case 92: + case 90: var type = typeInfoResolver.getTypeAtLocation(node); if (type) { return { @@ -25664,10 +25850,10 @@ var ts; documentation: displayPartsDocumentationsAndKind.documentation }; } - function getDefinitionAtPosition(filename, position) { + function getDefinitionAtPosition(fileName, position) { synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getValidSourceFile(fileName); var node = ts.getTouchingPropertyName(sourceFile, position); if (!node) { return undefined; @@ -25682,10 +25868,10 @@ var ts; var referenceFile = ts.tryResolveScriptReference(program, sourceFile, comment); if (referenceFile) { return [{ - fileName: referenceFile.filename, + fileName: referenceFile.fileName, textSpan: ts.createTextSpanFromBounds(0, 0), kind: ScriptElementKind.scriptElement, - name: comment.filename, + name: comment.fileName, containerName: undefined, containerKind: undefined }]; @@ -25697,7 +25883,7 @@ var ts; return undefined; } var result = []; - if (node.parent.kind === 205 /* ShorthandPropertyAssignment */) { + if (node.parent.kind === 205) { var shorthandSymbol = typeInfoResolver.getShorthandAssignmentValueSymbol(symbol.valueDeclaration); var shorthandDeclarations = shorthandSymbol.getDeclarations(); var shorthandSymbolKind = getSymbolKind(shorthandSymbol, typeInfoResolver, node); @@ -25721,7 +25907,7 @@ var ts; return result; function getDefinitionInfo(node, symbolKind, symbolName, containerName) { return { - fileName: node.getSourceFile().filename, + fileName: node.getSourceFile().fileName, textSpan: ts.createTextSpanFromBounds(node.getStart(), node.getEnd()), kind: symbolKind, name: symbolName, @@ -25733,7 +25919,7 @@ var ts; var declarations = []; var definition; ts.forEach(signatureDeclarations, function (d) { - if ((selectConstructors && d.kind === 129 /* Constructor */) || (!selectConstructors && (d.kind === 190 /* FunctionDeclaration */ || d.kind === 128 /* MethodDeclaration */ || d.kind === 127 /* MethodSignature */))) { + if ((selectConstructors && d.kind === 129) || (!selectConstructors && (d.kind === 190 || d.kind === 128 || d.kind === 127))) { declarations.push(d); if (d.body) definition = d; @@ -25750,10 +25936,10 @@ var ts; return false; } function tryAddConstructSignature(symbol, location, symbolKind, symbolName, containerName, result) { - if (isNewExpressionTarget(location) || location.kind === 112 /* ConstructorKeyword */) { - if (symbol.flags & 32 /* Class */) { + if (isNewExpressionTarget(location) || location.kind === 112) { + if (symbol.flags & 32) { var classDeclaration = symbol.getDeclarations()[0]; - ts.Debug.assert(classDeclaration && classDeclaration.kind === 191 /* ClassDeclaration */); + ts.Debug.assert(classDeclaration && classDeclaration.kind === 191); return tryAddSignature(classDeclaration.members, true, symbolKind, symbolName, containerName, result); } } @@ -25766,110 +25952,110 @@ var ts; return false; } } - function getOccurrencesAtPosition(filename, position) { + function getOccurrencesAtPosition(fileName, position) { synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getValidSourceFile(fileName); var node = ts.getTouchingWord(sourceFile, position); if (!node) { return undefined; } - if (node.kind === 64 /* Identifier */ || node.kind === 92 /* ThisKeyword */ || node.kind === 90 /* SuperKeyword */ || isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { + if (node.kind === 64 || node.kind === 92 || node.kind === 90 || isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { return getReferencesForNode(node, [sourceFile], true, false, false); } switch (node.kind) { - case 83 /* IfKeyword */: - case 75 /* ElseKeyword */: - if (hasKind(node.parent, 174 /* IfStatement */)) { + case 83: + case 75: + if (hasKind(node.parent, 174)) { return getIfElseOccurrences(node.parent); } break; - case 89 /* ReturnKeyword */: - if (hasKind(node.parent, 181 /* ReturnStatement */)) { + case 89: + if (hasKind(node.parent, 181)) { return getReturnOccurrences(node.parent); } break; - case 93 /* ThrowKeyword */: - if (hasKind(node.parent, 185 /* ThrowStatement */)) { + case 93: + if (hasKind(node.parent, 185)) { return getThrowOccurrences(node.parent); } break; - case 67 /* CatchKeyword */: - if (hasKind(parent(parent(node)), 186 /* TryStatement */)) { + case 67: + if (hasKind(parent(parent(node)), 186)) { return getTryCatchFinallyOccurrences(node.parent.parent); } break; - case 95 /* TryKeyword */: - case 80 /* FinallyKeyword */: - if (hasKind(parent(node), 186 /* TryStatement */)) { + case 95: + case 80: + if (hasKind(parent(node), 186)) { return getTryCatchFinallyOccurrences(node.parent); } break; - case 91 /* SwitchKeyword */: - if (hasKind(node.parent, 183 /* SwitchStatement */)) { + case 91: + if (hasKind(node.parent, 183)) { return getSwitchCaseDefaultOccurrences(node.parent); } break; - case 66 /* CaseKeyword */: - case 72 /* DefaultKeyword */: - if (hasKind(parent(parent(node)), 183 /* SwitchStatement */)) { + case 66: + case 72: + if (hasKind(parent(parent(node)), 183)) { return getSwitchCaseDefaultOccurrences(node.parent.parent); } break; - case 65 /* BreakKeyword */: - case 70 /* ContinueKeyword */: - if (hasKind(node.parent, 180 /* BreakStatement */) || hasKind(node.parent, 179 /* ContinueStatement */)) { + case 65: + case 70: + if (hasKind(node.parent, 180) || hasKind(node.parent, 179)) { return getBreakOrContinueStatementOccurences(node.parent); } break; - case 81 /* ForKeyword */: - if (hasKind(node.parent, 177 /* ForStatement */) || hasKind(node.parent, 178 /* ForInStatement */)) { + case 81: + if (hasKind(node.parent, 177) || hasKind(node.parent, 178)) { return getLoopBreakContinueOccurrences(node.parent); } break; - case 99 /* WhileKeyword */: - case 74 /* DoKeyword */: - if (hasKind(node.parent, 176 /* WhileStatement */) || hasKind(node.parent, 175 /* DoStatement */)) { + case 99: + case 74: + if (hasKind(node.parent, 176) || hasKind(node.parent, 175)) { return getLoopBreakContinueOccurrences(node.parent); } break; - case 112 /* ConstructorKeyword */: - if (hasKind(node.parent, 129 /* Constructor */)) { + case 112: + if (hasKind(node.parent, 129)) { return getConstructorOccurrences(node.parent); } break; - case 114 /* GetKeyword */: - case 118 /* SetKeyword */: - if (hasKind(node.parent, 130 /* GetAccessor */) || hasKind(node.parent, 131 /* SetAccessor */)) { + case 114: + case 118: + if (hasKind(node.parent, 130) || hasKind(node.parent, 131)) { return getGetAndSetOccurrences(node.parent); } default: - if (ts.isModifier(node.kind) && node.parent && (ts.isDeclaration(node.parent) || node.parent.kind === 171 /* VariableStatement */)) { + if (ts.isModifier(node.kind) && node.parent && (ts.isDeclaration(node.parent) || node.parent.kind === 171)) { return getModifierOccurrences(node.kind, node.parent); } } return undefined; function getIfElseOccurrences(ifStatement) { var keywords = []; - while (hasKind(ifStatement.parent, 174 /* IfStatement */) && ifStatement.parent.elseStatement === ifStatement) { + while (hasKind(ifStatement.parent, 174) && ifStatement.parent.elseStatement === ifStatement) { ifStatement = ifStatement.parent; } while (ifStatement) { var children = ifStatement.getChildren(); - pushKeywordIf(keywords, children[0], 83 /* IfKeyword */); + pushKeywordIf(keywords, children[0], 83); for (var i = children.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, children[i], 75 /* ElseKeyword */)) { + if (pushKeywordIf(keywords, children[i], 75)) { break; } } - if (!hasKind(ifStatement.elseStatement, 174 /* IfStatement */)) { + if (!hasKind(ifStatement.elseStatement, 174)) { break; } ifStatement = ifStatement.elseStatement; } var result = []; for (var i = 0; i < keywords.length; i++) { - if (keywords[i].kind === 75 /* ElseKeyword */ && i < keywords.length - 1) { + if (keywords[i].kind === 75 && i < keywords.length - 1) { var elseKeyword = keywords[i]; var ifKeyword = keywords[i + 1]; var shouldHighlightNextKeyword = true; @@ -25881,7 +26067,7 @@ var ts; } if (shouldHighlightNextKeyword) { result.push({ - fileName: filename, + fileName: fileName, textSpan: ts.createTextSpanFromBounds(elseKeyword.getStart(), ifKeyword.end), isWriteAccess: false }); @@ -25895,15 +26081,15 @@ var ts; } function getReturnOccurrences(returnStatement) { var func = ts.getContainingFunction(returnStatement); - if (!(func && hasKind(func.body, 170 /* Block */))) { + if (!(func && hasKind(func.body, 170))) { return undefined; } var keywords = []; ts.forEachReturnStatement(func.body, function (returnStatement) { - pushKeywordIf(keywords, returnStatement.getFirstToken(), 89 /* ReturnKeyword */); + pushKeywordIf(keywords, returnStatement.getFirstToken(), 89); }); ts.forEach(aggregateOwnedThrowStatements(func.body), function (throwStatement) { - pushKeywordIf(keywords, throwStatement.getFirstToken(), 93 /* ThrowKeyword */); + pushKeywordIf(keywords, throwStatement.getFirstToken(), 93); }); return ts.map(keywords, getReferenceEntryFromNode); } @@ -25914,11 +26100,11 @@ var ts; } var keywords = []; ts.forEach(aggregateOwnedThrowStatements(owner), function (throwStatement) { - pushKeywordIf(keywords, throwStatement.getFirstToken(), 93 /* ThrowKeyword */); + pushKeywordIf(keywords, throwStatement.getFirstToken(), 93); }); if (ts.isFunctionBlock(owner)) { ts.forEachReturnStatement(owner, function (returnStatement) { - pushKeywordIf(keywords, returnStatement.getFirstToken(), 89 /* ReturnKeyword */); + pushKeywordIf(keywords, returnStatement.getFirstToken(), 89); }); } return ts.map(keywords, getReferenceEntryFromNode); @@ -25928,10 +26114,10 @@ var ts; aggregate(node); return statementAccumulator; function aggregate(node) { - if (node.kind === 185 /* ThrowStatement */) { + if (node.kind === 185) { statementAccumulator.push(node); } - else if (node.kind === 186 /* TryStatement */) { + else if (node.kind === 186) { var tryStatement = node; if (tryStatement.catchClause) { aggregate(tryStatement.catchClause); @@ -25953,10 +26139,10 @@ var ts; var child = throwStatement; while (child.parent) { var parent = child.parent; - if (ts.isFunctionBlock(parent) || parent.kind === 207 /* SourceFile */) { + if (ts.isFunctionBlock(parent) || parent.kind === 207) { return parent; } - if (parent.kind === 186 /* TryStatement */) { + if (parent.kind === 186) { var tryStatement = parent; if (tryStatement.tryBlock === child && tryStatement.catchClause) { return child; @@ -25968,23 +26154,23 @@ var ts; } function getTryCatchFinallyOccurrences(tryStatement) { var keywords = []; - pushKeywordIf(keywords, tryStatement.getFirstToken(), 95 /* TryKeyword */); + pushKeywordIf(keywords, tryStatement.getFirstToken(), 95); if (tryStatement.catchClause) { - pushKeywordIf(keywords, tryStatement.catchClause.getFirstToken(), 67 /* CatchKeyword */); + pushKeywordIf(keywords, tryStatement.catchClause.getFirstToken(), 67); } if (tryStatement.finallyBlock) { - var finallyKeyword = ts.findChildOfKind(tryStatement, 80 /* FinallyKeyword */, sourceFile); - pushKeywordIf(keywords, finallyKeyword, 80 /* FinallyKeyword */); + var finallyKeyword = ts.findChildOfKind(tryStatement, 80, sourceFile); + pushKeywordIf(keywords, finallyKeyword, 80); } return ts.map(keywords, getReferenceEntryFromNode); } function getLoopBreakContinueOccurrences(loopNode) { var keywords = []; - if (pushKeywordIf(keywords, loopNode.getFirstToken(), 81 /* ForKeyword */, 99 /* WhileKeyword */, 74 /* DoKeyword */)) { - if (loopNode.kind === 175 /* DoStatement */) { + if (pushKeywordIf(keywords, loopNode.getFirstToken(), 81, 99, 74)) { + if (loopNode.kind === 175) { var loopTokens = loopNode.getChildren(); for (var i = loopTokens.length - 1; i >= 0; i--) { - if (pushKeywordIf(keywords, loopTokens[i], 99 /* WhileKeyword */)) { + if (pushKeywordIf(keywords, loopTokens[i], 99)) { break; } } @@ -25993,20 +26179,20 @@ var ts; var breaksAndContinues = aggregateAllBreakAndContinueStatements(loopNode.statement); ts.forEach(breaksAndContinues, function (statement) { if (ownsBreakOrContinueStatement(loopNode, statement)) { - pushKeywordIf(keywords, statement.getFirstToken(), 65 /* BreakKeyword */, 70 /* ContinueKeyword */); + pushKeywordIf(keywords, statement.getFirstToken(), 65, 70); } }); return ts.map(keywords, getReferenceEntryFromNode); } function getSwitchCaseDefaultOccurrences(switchStatement) { var keywords = []; - pushKeywordIf(keywords, switchStatement.getFirstToken(), 91 /* SwitchKeyword */); + pushKeywordIf(keywords, switchStatement.getFirstToken(), 91); ts.forEach(switchStatement.clauses, function (clause) { - pushKeywordIf(keywords, clause.getFirstToken(), 66 /* CaseKeyword */, 72 /* DefaultKeyword */); + pushKeywordIf(keywords, clause.getFirstToken(), 66, 72); var breaksAndContinues = aggregateAllBreakAndContinueStatements(clause); ts.forEach(breaksAndContinues, function (statement) { if (ownsBreakOrContinueStatement(switchStatement, statement)) { - pushKeywordIf(keywords, statement.getFirstToken(), 65 /* BreakKeyword */); + pushKeywordIf(keywords, statement.getFirstToken(), 65); } }); }); @@ -26016,12 +26202,12 @@ var ts; var owner = getBreakOrContinueOwner(breakOrContinueStatement); if (owner) { switch (owner.kind) { - case 177 /* ForStatement */: - case 178 /* ForInStatement */: - case 175 /* DoStatement */: - case 176 /* WhileStatement */: + case 177: + case 178: + case 175: + case 176: return getLoopBreakContinueOccurrences(owner); - case 183 /* SwitchStatement */: + case 183: return getSwitchCaseDefaultOccurrences(owner); } } @@ -26032,7 +26218,7 @@ var ts; aggregate(node); return statementAccumulator; function aggregate(node) { - if (node.kind === 180 /* BreakStatement */ || node.kind === 179 /* ContinueStatement */) { + if (node.kind === 180 || node.kind === 179) { statementAccumulator.push(node); } else if (!ts.isAnyFunction(node)) { @@ -26048,14 +26234,14 @@ var ts; function getBreakOrContinueOwner(statement) { for (var node = statement.parent; node; node = node.parent) { switch (node.kind) { - case 183 /* SwitchStatement */: - if (statement.kind === 179 /* ContinueStatement */) { + case 183: + if (statement.kind === 179) { continue; } - case 177 /* ForStatement */: - case 178 /* ForInStatement */: - case 176 /* WhileStatement */: - case 175 /* DoStatement */: + case 177: + case 178: + case 176: + case 175: if (!statement.label || isLabeledBy(node, statement.label.text)) { return node; } @@ -26074,37 +26260,37 @@ var ts; var keywords = []; ts.forEach(declarations, function (declaration) { ts.forEach(declaration.getChildren(), function (token) { - return pushKeywordIf(keywords, token, 112 /* ConstructorKeyword */); + return pushKeywordIf(keywords, token, 112); }); }); return ts.map(keywords, getReferenceEntryFromNode); } function getGetAndSetOccurrences(accessorDeclaration) { var keywords = []; - tryPushAccessorKeyword(accessorDeclaration.symbol, 130 /* GetAccessor */); - tryPushAccessorKeyword(accessorDeclaration.symbol, 131 /* SetAccessor */); + tryPushAccessorKeyword(accessorDeclaration.symbol, 130); + tryPushAccessorKeyword(accessorDeclaration.symbol, 131); return ts.map(keywords, getReferenceEntryFromNode); function tryPushAccessorKeyword(accessorSymbol, accessorKind) { var accessor = ts.getDeclarationOfKind(accessorSymbol, accessorKind); if (accessor) { - ts.forEach(accessor.getChildren(), function (child) { return pushKeywordIf(keywords, child, 114 /* GetKeyword */, 118 /* SetKeyword */); }); + ts.forEach(accessor.getChildren(), function (child) { return pushKeywordIf(keywords, child, 114, 118); }); } } } function getModifierOccurrences(modifier, declaration) { var container = declaration.parent; - if (declaration.flags & 112 /* AccessibilityModifier */) { - if (!(container.kind === 191 /* ClassDeclaration */ || (declaration.kind === 124 /* Parameter */ && hasKind(container, 129 /* Constructor */)))) { + if (declaration.flags & 112) { + if (!(container.kind === 191 || (declaration.kind === 124 && hasKind(container, 129)))) { return undefined; } } - else if (declaration.flags & 128 /* Static */) { - if (container.kind !== 191 /* ClassDeclaration */) { + else if (declaration.flags & 128) { + if (container.kind !== 191) { return undefined; } } - else if (declaration.flags & (1 /* Export */ | 2 /* Ambient */)) { - if (!(container.kind === 196 /* ModuleBlock */ || container.kind === 207 /* SourceFile */)) { + else if (declaration.flags & (1 | 2)) { + if (!(container.kind === 196 || container.kind === 207)) { return undefined; } } @@ -26115,18 +26301,18 @@ var ts; var modifierFlag = getFlagFromModifier(modifier); var nodes; switch (container.kind) { - case 196 /* ModuleBlock */: - case 207 /* SourceFile */: + case 196: + case 207: nodes = container.statements; break; - case 129 /* Constructor */: + case 129: nodes = container.parameters.concat(container.parent.members); break; - case 191 /* ClassDeclaration */: + case 191: nodes = container.members; - if (modifierFlag & 112 /* AccessibilityModifier */) { + if (modifierFlag & 112) { var constructor = ts.forEach(container.members, function (member) { - return member.kind === 129 /* Constructor */ && member; + return member.kind === 129 && member; }); if (constructor) { nodes = nodes.concat(constructor.parameters); @@ -26144,18 +26330,18 @@ var ts; return ts.map(keywords, getReferenceEntryFromNode); function getFlagFromModifier(modifier) { switch (modifier) { - case 107 /* PublicKeyword */: - return 16 /* Public */; - case 105 /* PrivateKeyword */: - return 32 /* Private */; - case 106 /* ProtectedKeyword */: - return 64 /* Protected */; - case 108 /* StaticKeyword */: - return 128 /* Static */; - case 77 /* ExportKeyword */: - return 1 /* Export */; - case 113 /* DeclareKeyword */: - return 2 /* Ambient */; + case 107: + return 16; + case 105: + return 32; + case 106: + return 64; + case 108: + return 128; + case 77: + return 1; + case 113: + return 2; default: ts.Debug.fail(); } @@ -26188,15 +26374,15 @@ var ts; function findReferences(fileName, position, findInStrings, findInComments) { synchronizeHostData(); fileName = ts.normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); + var sourceFile = getValidSourceFile(fileName); var node = ts.getTouchingPropertyName(sourceFile, position); if (!node) { return undefined; } - if (node.kind !== 64 /* Identifier */ && !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && !isNameOfExternalModuleImportOrDeclaration(node)) { + if (node.kind !== 64 && !isLiteralNameOfPropertyDeclarationOrIndexAccess(node) && !isNameOfExternalModuleImportOrDeclaration(node)) { return undefined; } - ts.Debug.assert(node.kind === 64 /* Identifier */ || node.kind === 7 /* NumericLiteral */ || node.kind === 8 /* StringLiteral */); + ts.Debug.assert(node.kind === 64 || node.kind === 7 || node.kind === 8); return getReferencesForNode(node, program.getSourceFiles(), false, findInStrings, findInComments); } function initializeNameTable(sourceFile) { @@ -26205,11 +26391,11 @@ var ts; sourceFile.nameTable = nameTable; function walk(node) { switch (node.kind) { - case 64 /* Identifier */: + case 64: nameTable[node.text] = node.text; break; - case 8 /* StringLiteral */: - case 7 /* NumericLiteral */: + case 8: + case 7: nameTable[node.text] = node.text; break; default: @@ -26227,10 +26413,10 @@ var ts; return getLabelReferencesInNode(node.parent, node); } } - if (node.kind === 92 /* ThisKeyword */) { + if (node.kind === 92) { return getReferencesForThisKeyword(node, sourceFiles); } - if (node.kind === 90 /* SuperKeyword */) { + if (node.kind === 90) { return getReferencesForSuperKeyword(node); } var symbol = typeInfoResolver.getSymbolAtLocation(node); @@ -26276,7 +26462,7 @@ var ts; return stripQuotes(name); } function getInternedName(symbol, declarations) { - var functionExpression = ts.forEach(declarations, function (d) { return d.kind === 156 /* FunctionExpression */ ? d : undefined; }); + var functionExpression = ts.forEach(declarations, function (d) { return d.kind === 156 ? d : undefined; }); if (functionExpression && functionExpression.name) { var name = functionExpression.name.text; } @@ -26287,20 +26473,20 @@ var ts; } function stripQuotes(name) { var length = name.length; - if (length >= 2 && name.charCodeAt(0) === 34 /* doubleQuote */ && name.charCodeAt(length - 1) === 34 /* doubleQuote */) { + if (length >= 2 && name.charCodeAt(0) === 34 && name.charCodeAt(length - 1) === 34) { return name.substring(1, length - 1); } ; return name; } function getSymbolScope(symbol) { - if (symbol.getFlags() && (4 /* Property */ | 8192 /* Method */)) { - var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { return (d.flags & 32 /* Private */) ? d : undefined; }); + if (symbol.getFlags() && (4 | 8192)) { + var privateDeclaration = ts.forEach(symbol.getDeclarations(), function (d) { return (d.flags & 32) ? d : undefined; }); if (privateDeclaration) { - return ts.getAncestor(privateDeclaration, 191 /* ClassDeclaration */); + return ts.getAncestor(privateDeclaration, 191); } } - if (symbol.parent || (symbol.getFlags() & 268435456 /* UnionProperty */)) { + if (symbol.parent || (symbol.getFlags() & 268435456)) { return undefined; } var scope = undefined; @@ -26314,7 +26500,7 @@ var ts; if (scope && scope !== container) { return undefined; } - if (container.kind === 207 /* SourceFile */ && !ts.isExternalModule(container)) { + if (container.kind === 207 && !ts.isExternalModule(container)) { return undefined; } scope = container; @@ -26336,7 +26522,7 @@ var ts; if (position > end) break; var endPosition = position + symbolNameLength; - if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), 2 /* Latest */)) && (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), 2 /* Latest */))) { + if ((position === 0 || !ts.isIdentifierPart(text.charCodeAt(position - 1), 2)) && (endPosition === sourceLength || !ts.isIdentifierPart(text.charCodeAt(endPosition), 2))) { positions.push(position); } position = text.indexOf(symbolName, position + symbolNameLength + 1); @@ -26363,14 +26549,14 @@ var ts; function isValidReferencePosition(node, searchSymbolName) { if (node) { switch (node.kind) { - case 64 /* Identifier */: + case 64: return node.getWidth() === searchSymbolName.length; - case 8 /* StringLiteral */: + case 8: if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node) || isNameOfExternalModuleImportOrDeclaration(node)) { return node.getWidth() === searchSymbolName.length + 2; } break; - case 7 /* NumericLiteral */: + case 7: if (isLiteralNameOfPropertyDeclarationOrIndexAccess(node)) { return node.getWidth() === searchSymbolName.length; } @@ -26391,7 +26577,7 @@ var ts; if (!isValidReferencePosition(referenceLocation, searchText)) { if ((findInStrings && isInString(position)) || (findInComments && isInComment(position))) { result.push({ - fileName: sourceFile.filename, + fileName: sourceFile.fileName, textSpan: ts.createTextSpan(position, searchText.length), isWriteAccess: false }); @@ -26408,7 +26594,7 @@ var ts; if (isRelatableToSearchSet(searchSymbols, referenceSymbol, referenceLocation)) { result.push(getReferenceEntryFromNode(referenceLocation)); } - else if (!(referenceSymbol.flags & 67108864 /* Transient */) && searchSymbols.indexOf(shorthandValueSymbol) >= 0) { + else if (!(referenceSymbol.flags & 67108864) && searchSymbols.indexOf(shorthandValueSymbol) >= 0) { result.push(getReferenceEntryFromNode(referenceSymbolDeclaration.name)); } } @@ -26416,7 +26602,7 @@ var ts; } function isInString(position) { var token = ts.getTokenAtPosition(sourceFile, position); - return token && token.kind === 8 /* StringLiteral */ && position > token.getStart(); + return token && token.kind === 8 && position > token.getStart(); } function isInComment(position) { var token = ts.getTokenAtPosition(sourceFile, position); @@ -26439,15 +26625,15 @@ var ts; if (!searchSpaceNode) { return undefined; } - var staticFlag = 128 /* Static */; + var staticFlag = 128; switch (searchSpaceNode.kind) { - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: + case 126: + case 125: + case 128: + case 127: + case 129: + case 130: + case 131: staticFlag &= searchSpaceNode.flags; searchSpaceNode = searchSpaceNode.parent; break; @@ -26460,11 +26646,11 @@ var ts; ts.forEach(possiblePositions, function (position) { cancellationToken.throwIfCancellationRequested(); var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== 90 /* SuperKeyword */) { + if (!node || node.kind !== 90) { return; } var container = ts.getSuperContainer(node, false); - if (container && (128 /* Static */ & container.flags) === staticFlag && container.parent.symbol === searchSpaceNode.symbol) { + if (container && (128 & container.flags) === staticFlag && container.parent.symbol === searchSpaceNode.symbol) { result.push(getReferenceEntryFromNode(node)); } }); @@ -26472,33 +26658,33 @@ var ts; } function getReferencesForThisKeyword(thisOrSuperKeyword, sourceFiles) { var searchSpaceNode = ts.getThisContainer(thisOrSuperKeyword, false); - var staticFlag = 128 /* Static */; + var staticFlag = 128; switch (searchSpaceNode.kind) { - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: + case 128: + case 127: if (ts.isObjectLiteralMethod(searchSpaceNode)) { break; } - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: + case 126: + case 125: + case 129: + case 130: + case 131: staticFlag &= searchSpaceNode.flags; searchSpaceNode = searchSpaceNode.parent; break; - case 207 /* SourceFile */: + case 207: if (ts.isExternalModule(searchSpaceNode)) { return undefined; } - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: + case 190: + case 156: break; default: return undefined; } var result = []; - if (searchSpaceNode.kind === 207 /* SourceFile */) { + if (searchSpaceNode.kind === 207) { ts.forEach(sourceFiles, function (sourceFile) { var possiblePositions = getPossibleSymbolReferencePositions(sourceFile, "this", sourceFile.getStart(), sourceFile.getEnd()); getThisReferencesInFile(sourceFile, sourceFile, possiblePositions, result); @@ -26514,30 +26700,30 @@ var ts; ts.forEach(possiblePositions, function (position) { cancellationToken.throwIfCancellationRequested(); var node = ts.getTouchingWord(sourceFile, position); - if (!node || node.kind !== 92 /* ThisKeyword */) { + if (!node || node.kind !== 92) { return; } var container = ts.getThisContainer(node, false); switch (searchSpaceNode.kind) { - case 156 /* FunctionExpression */: - case 190 /* FunctionDeclaration */: + case 156: + case 190: if (searchSpaceNode.symbol === container.symbol) { result.push(getReferenceEntryFromNode(node)); } break; - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: + case 128: + case 127: if (ts.isObjectLiteralMethod(searchSpaceNode) && searchSpaceNode.symbol === container.symbol) { result.push(getReferenceEntryFromNode(node)); } break; - case 191 /* ClassDeclaration */: - if (container.parent && searchSpaceNode.symbol === container.parent.symbol && (container.flags & 128 /* Static */) === staticFlag) { + case 191: + if (container.parent && searchSpaceNode.symbol === container.parent.symbol && (container.flags & 128) === staticFlag) { result.push(getReferenceEntryFromNode(node)); } break; - case 207 /* SourceFile */: - if (container.kind === 207 /* SourceFile */ && !ts.isExternalModule(container)) { + case 207: + if (container.kind === 207 && !ts.isExternalModule(container)) { result.push(getReferenceEntryFromNode(node)); } break; @@ -26560,20 +26746,20 @@ var ts; if (rootSymbol !== symbol) { result.push(rootSymbol); } - if (rootSymbol.parent && rootSymbol.parent.flags & (32 /* Class */ | 64 /* Interface */)) { + if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); } }); return result; } function getPropertySymbolsFromBaseTypes(symbol, propertyName, result) { - if (symbol && symbol.flags & (32 /* Class */ | 64 /* Interface */)) { + if (symbol && symbol.flags & (32 | 64)) { ts.forEach(symbol.getDeclarations(), function (declaration) { - if (declaration.kind === 191 /* ClassDeclaration */) { + if (declaration.kind === 191) { getPropertySymbolFromTypeReference(ts.getClassBaseTypeNode(declaration)); ts.forEach(ts.getClassImplementedTypeNodes(declaration), getPropertySymbolFromTypeReference); } - else if (declaration.kind === 192 /* InterfaceDeclaration */) { + else if (declaration.kind === 192) { ts.forEach(ts.getInterfaceBaseTypeNodes(declaration), getPropertySymbolFromTypeReference); } }); @@ -26605,7 +26791,7 @@ var ts; if (searchSymbols.indexOf(rootSymbol) >= 0) { return true; } - if (rootSymbol.parent && rootSymbol.parent.flags & (32 /* Class */ | 64 /* Interface */)) { + if (rootSymbol.parent && rootSymbol.parent.flags & (32 | 64)) { var result = []; getPropertySymbolsFromBaseTypes(rootSymbol.parent, rootSymbol.getName(), result); return ts.forEach(result, function (s) { return searchSymbols.indexOf(s) >= 0; }); @@ -26619,7 +26805,7 @@ var ts; var contextualType = typeInfoResolver.getContextualType(objectLiteral); var name = node.text; if (contextualType) { - if (contextualType.flags & 16384 /* Union */) { + if (contextualType.flags & 16384) { var unionProperty = contextualType.getProperty(name); if (unionProperty) { return [unionProperty]; @@ -26663,28 +26849,28 @@ var ts; function getReferenceEntryFromNode(node) { var start = node.getStart(); var end = node.getEnd(); - if (node.kind === 8 /* StringLiteral */) { + if (node.kind === 8) { start += 1; end -= 1; } return { - fileName: node.getSourceFile().filename, + fileName: node.getSourceFile().fileName, textSpan: ts.createTextSpanFromBounds(start, end), isWriteAccess: isWriteAccess(node) }; } function isWriteAccess(node) { - if (node.kind === 64 /* Identifier */ && ts.isDeclarationOrFunctionExpressionOrCatchVariableName(node)) { + if (node.kind === 64 && ts.isDeclarationOrFunctionExpressionOrCatchVariableName(node)) { return true; } var parent = node.parent; if (parent) { - if (parent.kind === 162 /* PostfixUnaryExpression */ || parent.kind === 161 /* PrefixUnaryExpression */) { + if (parent.kind === 162 || parent.kind === 161) { return true; } - else if (parent.kind === 163 /* BinaryExpression */ && parent.left === node) { + else if (parent.kind === 163 && parent.left === node) { var operator = parent.operator; - return 52 /* FirstAssignment */ <= operator && operator <= 63 /* LastAssignment */; + return 52 <= operator && operator <= 63; } } return false; @@ -26696,20 +26882,20 @@ var ts; var items = []; ts.forEach(program.getSourceFiles(), function (sourceFile) { cancellationToken.throwIfCancellationRequested(); - var filename = sourceFile.filename; + var fileName = sourceFile.fileName; var declarations = sourceFile.getNamedDeclarations(); for (var i = 0, n = declarations.length; i < n; i++) { var declaration = declarations[i]; var name = declaration.name.text; var matchKind = getMatchKind(searchTerms, name); - if (matchKind !== 0 /* none */) { + if (matchKind !== 0) { var container = getContainerNode(declaration); items.push({ name: name, kind: getNodeKind(declaration), kindModifiers: ts.getNodeModifiers(declaration), matchKind: MatchKind[matchKind], - fileName: filename, + fileName: fileName, textSpan: ts.createTextSpanFromBounds(declaration.getStart(), declaration.getEnd()), containerName: container && container.name ? container.name.text : "", containerKind: container && container.name ? getNodeKind(container) : "" @@ -26721,27 +26907,27 @@ var ts; function hasAnyUpperCaseCharacter(s) { for (var i = 0, n = s.length; i < n; i++) { var c = s.charCodeAt(i); - if ((65 /* A */ <= c && c <= 90 /* Z */) || (c >= 127 /* maxAsciiCharacter */ && s.charAt(i).toLocaleLowerCase() !== s.charAt(i))) { + if ((65 <= c && c <= 90) || (c >= 127 && s.charAt(i).toLocaleLowerCase() !== s.charAt(i))) { return true; } } return false; } function getMatchKind(searchTerms, name) { - var matchKind = 0 /* none */; + var matchKind = 0; if (name) { for (var j = 0, n = searchTerms.length; j < n; j++) { var searchTerm = searchTerms[j]; var nameToSearch = searchTerm.caseSensitive ? name : name.toLocaleLowerCase(); var index = nameToSearch.indexOf(searchTerm.term); if (index < 0) { - return 0 /* none */; + return 0; } - var termKind = 2 /* substring */; + var termKind = 2; if (index === 0) { - termKind = name.length === searchTerm.term.length ? 1 /* exact */ : 3 /* prefix */; + termKind = name.length === searchTerm.term.length ? 1 : 3; } - if (matchKind === 0 /* none */ || termKind < matchKind) { + if (matchKind === 0 || termKind < matchKind) { matchKind = termKind; } } @@ -26750,70 +26936,68 @@ var ts; } } function containErrors(diagnostics) { - return ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === 1 /* Error */; }); + return ts.forEach(diagnostics, function (diagnostic) { return diagnostic.category === 1; }); } - function getEmitOutput(filename) { + function getEmitOutput(fileName) { synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getValidSourceFile(fileName); var outputFiles = []; - function writeFile(filename, data, writeByteOrderMark) { + function writeFile(fileName, data, writeByteOrderMark) { outputFiles.push({ - name: filename, + name: fileName, writeByteOrderMark: writeByteOrderMark, text: data }); } - var emitHost = ts.createEmitHostFromProgram(program); - emitHost.writeFile = writeFile; - var emitOutput = ts.emitFiles(getDiagnosticsProducingTypeChecker().getEmitResolver(), emitHost, sourceFile); + var emitOutput = program.emit(sourceFile, writeFile); return { outputFiles: outputFiles, - emitOutputStatus: emitOutput.emitResultStatus + emitSkipped: emitOutput.emitSkipped }; } function getMeaningFromDeclaration(node) { switch (node.kind) { - case 124 /* Parameter */: - case 188 /* VariableDeclaration */: - case 146 /* BindingElement */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: - case 204 /* PropertyAssignment */: - case 205 /* ShorthandPropertyAssignment */: - case 206 /* EnumMember */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 129 /* Constructor */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 190 /* FunctionDeclaration */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: - case 203 /* CatchClause */: - return 1 /* Value */; - case 123 /* TypeParameter */: - case 192 /* InterfaceDeclaration */: - case 193 /* TypeAliasDeclaration */: - case 139 /* TypeLiteral */: - return 2 /* Type */; - case 191 /* ClassDeclaration */: - case 194 /* EnumDeclaration */: - return 1 /* Value */ | 2 /* Type */; - case 195 /* ModuleDeclaration */: - if (node.name.kind === 8 /* StringLiteral */) { - return 4 /* Namespace */ | 1 /* Value */; + case 124: + case 188: + case 146: + case 126: + case 125: + case 204: + case 205: + case 206: + case 128: + case 127: + case 129: + case 130: + case 131: + case 190: + case 156: + case 157: + case 203: + return 1; + case 123: + case 192: + case 193: + case 139: + return 2; + case 191: + case 194: + return 1 | 2; + case 195: + if (node.name.kind === 8) { + return 4 | 1; } - else if (ts.getModuleInstanceState(node) === 1 /* Instantiated */) { - return 4 /* Namespace */ | 1 /* Value */; + else if (ts.getModuleInstanceState(node) === 1) { + return 4 | 1; } else { - return 4 /* Namespace */; + return 4; } - case 197 /* ImportDeclaration */: - return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; - case 207 /* SourceFile */: - return 4 /* Namespace */ | 1 /* Value */; + case 197: + return 1 | 2 | 4; + case 207: + return 4 | 1; } ts.Debug.fail("Unknown declaration type"); } @@ -26821,34 +27005,34 @@ var ts; if (isRightSideOfQualifiedName(node)) { node = node.parent; } - return node.parent.kind === 135 /* TypeReference */; + return node.parent.kind === 135; } function isNamespaceReference(node) { var root = node; var isLastClause = true; - if (root.parent.kind === 121 /* QualifiedName */) { - while (root.parent && root.parent.kind === 121 /* QualifiedName */) + if (root.parent.kind === 121) { + while (root.parent && root.parent.kind === 121) root = root.parent; isLastClause = root.right === node; } - return root.parent.kind === 135 /* TypeReference */ && !isLastClause; + return root.parent.kind === 135 && !isLastClause; } function isInRightSideOfImport(node) { - while (node.parent.kind === 121 /* QualifiedName */) { + while (node.parent.kind === 121) { node = node.parent; } return ts.isInternalModuleImportDeclaration(node.parent) && node.parent.moduleReference === node; } function getMeaningFromRightHandSideOfImport(node) { - ts.Debug.assert(node.kind === 64 /* Identifier */); - if (node.parent.kind === 121 /* QualifiedName */ && node.parent.right === node && node.parent.parent.kind === 197 /* ImportDeclaration */) { - return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; + ts.Debug.assert(node.kind === 64); + if (node.parent.kind === 121 && node.parent.right === node && node.parent.parent.kind === 197) { + return 1 | 2 | 4; } - return 4 /* Namespace */; + return 4; } function getMeaningFromLocation(node) { - if (node.parent.kind === 198 /* ExportAssignment */) { - return 1 /* Value */ | 2 /* Type */ | 4 /* Namespace */; + if (node.parent.kind === 198) { + return 1 | 2 | 4; } else if (isInRightSideOfImport(node)) { return getMeaningFromRightHandSideOfImport(node); @@ -26857,42 +27041,42 @@ var ts; return getMeaningFromDeclaration(node.parent); } else if (isTypeReference(node)) { - return 2 /* Type */; + return 2; } else if (isNamespaceReference(node)) { - return 4 /* Namespace */; + return 4; } else { - return 1 /* Value */; + return 1; } } function getSignatureHelpItems(fileName, position) { synchronizeHostData(); fileName = ts.normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); + var sourceFile = getValidSourceFile(fileName); return ts.SignatureHelp.getSignatureHelpItems(sourceFile, position, typeInfoResolver, cancellationToken); } - function getCurrentSourceFile(filename) { - filename = ts.normalizeSlashes(filename); - var currentSourceFile = syntaxTreeCache.getCurrentSourceFile(filename); + function getCurrentSourceFile(fileName) { + fileName = ts.normalizeSlashes(fileName); + var currentSourceFile = syntaxTreeCache.getCurrentSourceFile(fileName); return currentSourceFile; } - function getNameOrDottedNameSpan(filename, startPos, endPos) { - filename = ts.normalizeSlashes(filename); - var node = ts.getTouchingPropertyName(getCurrentSourceFile(filename), startPos); + function getNameOrDottedNameSpan(fileName, startPos, endPos) { + fileName = ts.normalizeSlashes(fileName); + var node = ts.getTouchingPropertyName(getCurrentSourceFile(fileName), startPos); if (!node) { return; } switch (node.kind) { - case 149 /* PropertyAccessExpression */: - case 121 /* QualifiedName */: - case 8 /* StringLiteral */: - case 79 /* FalseKeyword */: - case 94 /* TrueKeyword */: - case 88 /* NullKeyword */: - case 90 /* SuperKeyword */: - case 92 /* ThisKeyword */: - case 64 /* Identifier */: + case 149: + case 121: + case 8: + case 79: + case 94: + case 88: + case 90: + case 92: + case 64: break; default: return; @@ -26903,7 +27087,7 @@ var ts; nodeForStartPos = nodeForStartPos.parent; } else if (isNameOfModuleDeclaration(nodeForStartPos)) { - if (nodeForStartPos.parent.parent.kind === 195 /* ModuleDeclaration */ && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { + if (nodeForStartPos.parent.parent.kind === 195 && nodeForStartPos.parent.parent.body === nodeForStartPos.parent) { nodeForStartPos = nodeForStartPos.parent.parent.name; } else { @@ -26916,55 +27100,55 @@ var ts; } return ts.createTextSpanFromBounds(nodeForStartPos.getStart(), node.getEnd()); } - function getBreakpointStatementAtPosition(filename, position) { - filename = ts.normalizeSlashes(filename); - return ts.BreakpointResolver.spanInSourceFileAtLocation(getCurrentSourceFile(filename), position); + function getBreakpointStatementAtPosition(fileName, position) { + fileName = ts.normalizeSlashes(fileName); + return ts.BreakpointResolver.spanInSourceFileAtLocation(getCurrentSourceFile(fileName), position); } - function getNavigationBarItems(filename) { - filename = ts.normalizeSlashes(filename); - return ts.NavigationBar.getNavigationBarItems(getCurrentSourceFile(filename)); + function getNavigationBarItems(fileName) { + fileName = ts.normalizeSlashes(fileName); + return ts.NavigationBar.getNavigationBarItems(getCurrentSourceFile(fileName)); } function getSemanticClassifications(fileName, span) { synchronizeHostData(); fileName = ts.normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); + var sourceFile = getValidSourceFile(fileName); var result = []; processNode(sourceFile); return result; function classifySymbol(symbol, meaningAtPosition) { var flags = symbol.getFlags(); - if (flags & 32 /* Class */) { + if (flags & 32) { return ClassificationTypeNames.className; } - else if (flags & 384 /* Enum */) { + else if (flags & 384) { return ClassificationTypeNames.enumName; } - else if (flags & 524288 /* TypeAlias */) { + else if (flags & 524288) { return ClassificationTypeNames.typeAlias; } - else if (meaningAtPosition & 2 /* Type */) { - if (flags & 64 /* Interface */) { + else if (meaningAtPosition & 2) { + if (flags & 64) { return ClassificationTypeNames.interfaceName; } - else if (flags & 262144 /* TypeParameter */) { + else if (flags & 262144) { return ClassificationTypeNames.typeParameterName; } } - else if (flags & 1536 /* Module */) { - if (meaningAtPosition & 4 /* Namespace */ || (meaningAtPosition & 1 /* Value */ && hasValueSideModule(symbol))) { + else if (flags & 1536) { + if (meaningAtPosition & 4 || (meaningAtPosition & 1 && hasValueSideModule(symbol))) { return ClassificationTypeNames.moduleName; } } return undefined; function hasValueSideModule(symbol) { return ts.forEach(symbol.declarations, function (declaration) { - return declaration.kind === 195 /* ModuleDeclaration */ && ts.getModuleInstanceState(declaration) == 1 /* Instantiated */; + return declaration.kind === 195 && ts.getModuleInstanceState(declaration) == 1; }); } } function processNode(node) { if (node && ts.textSpanIntersectsWith(span, node.getStart(), node.getWidth())) { - if (node.kind === 64 /* Identifier */ && node.getWidth() > 0) { + if (node.kind === 64 && node.getWidth() > 0) { var symbol = typeInfoResolver.getSymbolAtLocation(node); if (symbol) { var type = classifySymbol(symbol, getMeaningFromLocation(node)); @@ -26983,8 +27167,8 @@ var ts; function getSyntacticClassifications(fileName, span) { fileName = ts.normalizeSlashes(fileName); var sourceFile = getCurrentSourceFile(fileName); - var triviaScanner = ts.createScanner(2 /* Latest */, false, sourceFile.text); - var mergeConflictScanner = ts.createScanner(2 /* Latest */, false, sourceFile.text); + var triviaScanner = ts.createScanner(2, false, sourceFile.text); + var mergeConflictScanner = ts.createScanner(2, false, sourceFile.text); var result = []; processElement(sourceFile); return result; @@ -27010,17 +27194,17 @@ var ts; }); continue; } - if (kind === 6 /* ConflictMarkerTrivia */) { + if (kind === 6) { var text = sourceFile.text; var ch = text.charCodeAt(start); - if (ch === 60 /* lessThan */ || ch === 62 /* greaterThan */) { + if (ch === 60 || ch === 62) { result.push({ textSpan: ts.createTextSpan(start, width), classificationType: ClassificationTypeNames.comment }); continue; } - ts.Debug.assert(ch === 61 /* equals */); + ts.Debug.assert(ch === 61); classifyDisabledMergeCode(text, start, end); } } @@ -27069,60 +27253,60 @@ var ts; if (ts.isKeyword(tokenKind)) { return ClassificationTypeNames.keyword; } - if (tokenKind === 24 /* LessThanToken */ || tokenKind === 25 /* GreaterThanToken */) { + if (tokenKind === 24 || tokenKind === 25) { if (token && ts.getTypeArgumentOrTypeParameterList(token.parent)) { return ClassificationTypeNames.punctuation; } } if (ts.isPunctuation(tokenKind)) { if (token) { - if (tokenKind === 52 /* EqualsToken */) { - if (token.parent.kind === 188 /* VariableDeclaration */ || token.parent.kind === 126 /* PropertyDeclaration */ || token.parent.kind === 124 /* Parameter */) { + if (tokenKind === 52) { + if (token.parent.kind === 188 || token.parent.kind === 126 || token.parent.kind === 124) { return ClassificationTypeNames.operator; } } - if (token.parent.kind === 163 /* BinaryExpression */ || token.parent.kind === 161 /* PrefixUnaryExpression */ || token.parent.kind === 162 /* PostfixUnaryExpression */ || token.parent.kind === 164 /* ConditionalExpression */) { + if (token.parent.kind === 163 || token.parent.kind === 161 || token.parent.kind === 162 || token.parent.kind === 164) { return ClassificationTypeNames.operator; } } return ClassificationTypeNames.punctuation; } - else if (tokenKind === 7 /* NumericLiteral */) { + else if (tokenKind === 7) { return ClassificationTypeNames.numericLiteral; } - else if (tokenKind === 8 /* StringLiteral */) { + else if (tokenKind === 8) { return ClassificationTypeNames.stringLiteral; } - else if (tokenKind === 9 /* RegularExpressionLiteral */) { + else if (tokenKind === 9) { return ClassificationTypeNames.stringLiteral; } else if (ts.isTemplateLiteralKind(tokenKind)) { return ClassificationTypeNames.stringLiteral; } - else if (tokenKind === 64 /* Identifier */) { + else if (tokenKind === 64) { if (token) { switch (token.parent.kind) { - case 191 /* ClassDeclaration */: + case 191: if (token.parent.name === token) { return ClassificationTypeNames.className; } return; - case 123 /* TypeParameter */: + case 123: if (token.parent.name === token) { return ClassificationTypeNames.typeParameterName; } return; - case 192 /* InterfaceDeclaration */: + case 192: if (token.parent.name === token) { return ClassificationTypeNames.interfaceName; } return; - case 194 /* EnumDeclaration */: + case 194: if (token.parent.name === token) { return ClassificationTypeNames.enumName; } return; - case 195 /* ModuleDeclaration */: + case 195: if (token.parent.name === token) { return ClassificationTypeNames.moduleName; } @@ -27147,13 +27331,13 @@ var ts; } } } - function getOutliningSpans(filename) { - filename = ts.normalizeSlashes(filename); - var sourceFile = getCurrentSourceFile(filename); + function getOutliningSpans(fileName) { + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getCurrentSourceFile(fileName); return ts.OutliningElementsCollector.collectElements(sourceFile); } - function getBraceMatchingAtPosition(filename, position) { - var sourceFile = getCurrentSourceFile(filename); + function getBraceMatchingAtPosition(fileName, position) { + var sourceFile = getCurrentSourceFile(fileName); var result = []; var token = ts.getTouchingToken(sourceFile, position); if (token.getStart(sourceFile) === position) { @@ -27162,7 +27346,6 @@ var ts; var parentElement = token.parent; var childNodes = parentElement.getChildren(sourceFile); for (var i = 0, n = childNodes.length; i < n; i++) { - 33; var current = childNodes[i]; if (current.kind === matchKind) { var range1 = ts.createTextSpan(token.getStart(sourceFile), token.getWidth(sourceFile)); @@ -27181,26 +27364,26 @@ var ts; return result; function getMatchingTokenKind(token) { switch (token.kind) { - case 14 /* OpenBraceToken */: return 15 /* CloseBraceToken */; - case 16 /* OpenParenToken */: return 17 /* CloseParenToken */; - case 18 /* OpenBracketToken */: return 19 /* CloseBracketToken */; - case 24 /* LessThanToken */: return 25 /* GreaterThanToken */; - case 15 /* CloseBraceToken */: return 14 /* OpenBraceToken */; - case 17 /* CloseParenToken */: return 16 /* OpenParenToken */; - case 19 /* CloseBracketToken */: return 18 /* OpenBracketToken */; - case 25 /* GreaterThanToken */: return 24 /* LessThanToken */; + case 14: return 15; + case 16: return 17; + case 18: return 19; + case 24: return 25; + case 15: return 14; + case 17: return 16; + case 19: return 18; + case 25: return 24; } return undefined; } } - function getIndentationAtPosition(filename, position, editorOptions) { - filename = ts.normalizeSlashes(filename); + function getIndentationAtPosition(fileName, position, editorOptions) { + fileName = ts.normalizeSlashes(fileName); var start = new Date().getTime(); - var sourceFile = getCurrentSourceFile(filename); - host.log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); + var sourceFile = getCurrentSourceFile(fileName); + log("getIndentationAtPosition: getCurrentSourceFile: " + (new Date().getTime() - start)); var start = new Date().getTime(); var result = ts.formatting.SmartIndenter.getIndentation(position, sourceFile, editorOptions); - host.log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); + log("getIndentationAtPosition: computeIndentation : " + (new Date().getTime() - start)); return result; } function getFormattingEditsForRange(fileName, start, end, options) { @@ -27227,10 +27410,10 @@ var ts; } return []; } - function getTodoComments(filename, descriptors) { + function getTodoComments(fileName, descriptors) { synchronizeHostData(); - filename = ts.normalizeSlashes(filename); - var sourceFile = getSourceFile(filename); + fileName = ts.normalizeSlashes(fileName); + var sourceFile = getValidSourceFile(fileName); cancellationToken.throwIfCancellationRequested(); var fileContents = sourceFile.text; cancellationToken.throwIfCancellationRequested(); @@ -27283,28 +27466,49 @@ var ts; return new RegExp(regExpString, "gim"); } function isLetterOrDigit(char) { - return (char >= 97 /* a */ && char <= 122 /* z */) || (char >= 65 /* A */ && char <= 90 /* Z */) || (char >= 48 /* _0 */ && char <= 57 /* _9 */); + return (char >= 97 && char <= 122) || (char >= 65 && char <= 90) || (char >= 48 && char <= 57); } } function getRenameInfo(fileName, position) { synchronizeHostData(); fileName = ts.normalizeSlashes(fileName); - var sourceFile = getSourceFile(fileName); + var sourceFile = getValidSourceFile(fileName); var node = ts.getTouchingWord(sourceFile, position); - if (node && node.kind === 64 /* Identifier */) { + if (node && node.kind === 64) { var symbol = typeInfoResolver.getSymbolAtLocation(node); - if (symbol && symbol.getDeclarations() && symbol.getDeclarations().length > 0) { - var kind = getSymbolKind(symbol, typeInfoResolver, node); - if (kind) { - return getRenameInfo(symbol.name, typeInfoResolver.getFullyQualifiedName(symbol), kind, getSymbolModifiers(symbol), ts.createTextSpan(node.getStart(), node.getWidth())); + if (symbol) { + var declarations = symbol.getDeclarations(); + if (declarations && declarations.length > 0) { + var defaultLibFile = ts.getDefaultLibFileName(host.getCompilationSettings()); + for (var i = 0; i < declarations.length; i++) { + var sourceFile = declarations[i].getSourceFile(); + if (sourceFile && endsWith(sourceFile.fileName, defaultLibFile)) { + return getRenameInfoError(ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_elements_that_are_defined_in_the_standard_TypeScript_library.key)); + } + } + var kind = getSymbolKind(symbol, typeInfoResolver, node); + if (kind) { + return { + canRename: true, + localizedErrorMessage: undefined, + displayName: symbol.name, + fullDisplayName: typeInfoResolver.getFullyQualifiedName(symbol), + kind: kind, + kindModifiers: getSymbolModifiers(symbol), + triggerSpan: ts.createTextSpan(node.getStart(), node.getWidth()) + }; + } } } } return getRenameInfoError(ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_this_element.key)); + function endsWith(string, value) { + return string.lastIndexOf(value) + value.length === string.length; + } function getRenameInfoError(localizedErrorMessage) { return { canRename: false, - localizedErrorMessage: ts.getLocaleSpecificMessage(ts.Diagnostics.You_cannot_rename_this_element.key), + localizedErrorMessage: localizedErrorMessage, displayName: undefined, fullDisplayName: undefined, kind: undefined, @@ -27312,17 +27516,6 @@ var ts; triggerSpan: undefined }; } - function getRenameInfo(displayName, fullDisplayName, kind, kindModifiers, triggerSpan) { - return { - canRename: true, - localizedErrorMessage: undefined, - displayName: displayName, - fullDisplayName: fullDisplayName, - kind: kind, - kindModifiers: kindModifiers, - triggerSpan: triggerSpan - }; - } } return { dispose: dispose, @@ -27353,37 +27546,38 @@ var ts; getFormattingEditsForDocument: getFormattingEditsForDocument, getFormattingEditsAfterKeystroke: getFormattingEditsAfterKeystroke, getEmitOutput: getEmitOutput, - getSourceFile: getCurrentSourceFile + getSourceFile: getCurrentSourceFile, + getProgram: getProgram }; } ts.createLanguageService = createLanguageService; - function createClassifier(host) { - var scanner = ts.createScanner(2 /* Latest */, false); + function createClassifier() { + var scanner = ts.createScanner(2, false); var noRegexTable = []; - noRegexTable[64 /* Identifier */] = true; - noRegexTable[8 /* StringLiteral */] = true; - noRegexTable[7 /* NumericLiteral */] = true; - noRegexTable[9 /* RegularExpressionLiteral */] = true; - noRegexTable[92 /* ThisKeyword */] = true; - noRegexTable[38 /* PlusPlusToken */] = true; - noRegexTable[39 /* MinusMinusToken */] = true; - noRegexTable[17 /* CloseParenToken */] = true; - noRegexTable[19 /* CloseBracketToken */] = true; - noRegexTable[15 /* CloseBraceToken */] = true; - noRegexTable[94 /* TrueKeyword */] = true; - noRegexTable[79 /* FalseKeyword */] = true; + noRegexTable[64] = true; + noRegexTable[8] = true; + noRegexTable[7] = true; + noRegexTable[9] = true; + noRegexTable[92] = true; + noRegexTable[38] = true; + noRegexTable[39] = true; + noRegexTable[17] = true; + noRegexTable[19] = true; + noRegexTable[15] = true; + noRegexTable[94] = true; + noRegexTable[79] = true; function isAccessibilityModifier(kind) { switch (kind) { - case 107 /* PublicKeyword */: - case 105 /* PrivateKeyword */: - case 106 /* ProtectedKeyword */: + case 107: + case 105: + case 106: return true; } return false; } function canFollow(keyword1, keyword2) { if (isAccessibilityModifier(keyword1)) { - if (keyword2 === 114 /* GetKeyword */ || keyword2 === 118 /* SetKeyword */ || keyword2 === 112 /* ConstructorKeyword */ || keyword2 === 108 /* StaticKeyword */) { + if (keyword2 === 114 || keyword2 === 118 || keyword2 === 112 || keyword2 === 108) { return true; } return false; @@ -27392,80 +27586,80 @@ var ts; } function getClassificationsForLine(text, lexState, classifyKeywordsInGenerics) { var offset = 0; - var token = 0 /* Unknown */; - var lastNonTriviaToken = 0 /* Unknown */; + var token = 0; + var lastNonTriviaToken = 0; switch (lexState) { - case 3 /* InDoubleQuoteStringLiteral */: + case 3: text = '"\\\n' + text; offset = 3; break; - case 2 /* InSingleQuoteStringLiteral */: + case 2: text = "'\\\n" + text; offset = 3; break; - case 1 /* InMultiLineCommentTrivia */: + case 1: text = "/*\n" + text; offset = 3; break; } scanner.setText(text); var result = { - finalLexState: 0 /* Start */, + finalLexState: 0, entries: [] }; var angleBracketStack = 0; do { token = scanner.scan(); if (!ts.isTrivia(token)) { - if ((token === 36 /* SlashToken */ || token === 56 /* SlashEqualsToken */) && !noRegexTable[lastNonTriviaToken]) { - if (scanner.reScanSlashToken() === 9 /* RegularExpressionLiteral */) { - token = 9 /* RegularExpressionLiteral */; + if ((token === 36 || token === 56) && !noRegexTable[lastNonTriviaToken]) { + if (scanner.reScanSlashToken() === 9) { + token = 9; } } - else if (lastNonTriviaToken === 20 /* DotToken */ && isKeyword(token)) { - token = 64 /* Identifier */; + else if (lastNonTriviaToken === 20 && isKeyword(token)) { + token = 64; } else if (isKeyword(lastNonTriviaToken) && isKeyword(token) && !canFollow(lastNonTriviaToken, token)) { - token = 64 /* Identifier */; + token = 64; } - else if (lastNonTriviaToken === 64 /* Identifier */ && token === 24 /* LessThanToken */) { + else if (lastNonTriviaToken === 64 && token === 24) { angleBracketStack++; } - else if (token === 25 /* GreaterThanToken */ && angleBracketStack > 0) { + else if (token === 25 && angleBracketStack > 0) { angleBracketStack--; } - else if (token === 110 /* AnyKeyword */ || token === 119 /* StringKeyword */ || token === 117 /* NumberKeyword */ || token === 111 /* BooleanKeyword */) { + else if (token === 110 || token === 119 || token === 117 || token === 111) { if (angleBracketStack > 0 && !classifyKeywordsInGenerics) { - token = 64 /* Identifier */; + token = 64; } } lastNonTriviaToken = token; } processToken(); - } while (token !== 1 /* EndOfFileToken */); + } while (token !== 1); return result; function processToken() { var start = scanner.getTokenPos(); var end = scanner.getTextPos(); addResult(end - start, classFromKind(token)); if (end >= text.length) { - if (token === 8 /* StringLiteral */) { + if (token === 8) { var tokenText = scanner.getTokenText(); if (scanner.isUnterminated()) { var lastCharIndex = tokenText.length - 1; var numBackslashes = 0; - while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === 92 /* backslash */) { + while (tokenText.charCodeAt(lastCharIndex - numBackslashes) === 92) { numBackslashes++; } if (numBackslashes & 1) { var quoteChar = tokenText.charCodeAt(0); - result.finalLexState = quoteChar === 34 /* doubleQuote */ ? 3 /* InDoubleQuoteStringLiteral */ : 2 /* InSingleQuoteStringLiteral */; + result.finalLexState = quoteChar === 34 ? 3 : 2; } } } - else if (token === 3 /* MultiLineCommentTrivia */) { + else if (token === 3) { if (scanner.isUnterminated()) { - result.finalLexState = 1 /* InMultiLineCommentTrivia */; + result.finalLexState = 1; } } } @@ -27481,99 +27675,106 @@ var ts; } function isBinaryExpressionOperatorToken(token) { switch (token) { - case 35 /* AsteriskToken */: - case 36 /* SlashToken */: - case 37 /* PercentToken */: - case 33 /* PlusToken */: - case 34 /* MinusToken */: - case 40 /* LessThanLessThanToken */: - case 41 /* GreaterThanGreaterThanToken */: - case 42 /* GreaterThanGreaterThanGreaterThanToken */: - case 24 /* LessThanToken */: - case 25 /* GreaterThanToken */: - case 26 /* LessThanEqualsToken */: - case 27 /* GreaterThanEqualsToken */: - case 86 /* InstanceOfKeyword */: - case 85 /* InKeyword */: - case 28 /* EqualsEqualsToken */: - case 29 /* ExclamationEqualsToken */: - case 30 /* EqualsEqualsEqualsToken */: - case 31 /* ExclamationEqualsEqualsToken */: - case 43 /* AmpersandToken */: - case 45 /* CaretToken */: - case 44 /* BarToken */: - case 48 /* AmpersandAmpersandToken */: - case 49 /* BarBarToken */: - case 62 /* BarEqualsToken */: - case 61 /* AmpersandEqualsToken */: - case 63 /* CaretEqualsToken */: - case 58 /* LessThanLessThanEqualsToken */: - case 59 /* GreaterThanGreaterThanEqualsToken */: - case 60 /* GreaterThanGreaterThanGreaterThanEqualsToken */: - case 53 /* PlusEqualsToken */: - case 54 /* MinusEqualsToken */: - case 55 /* AsteriskEqualsToken */: - case 56 /* SlashEqualsToken */: - case 57 /* PercentEqualsToken */: - case 52 /* EqualsToken */: - case 23 /* CommaToken */: + case 35: + case 36: + case 37: + case 33: + case 34: + case 40: + case 41: + case 42: + case 24: + case 25: + case 26: + case 27: + case 86: + case 85: + case 28: + case 29: + case 30: + case 31: + case 43: + case 45: + case 44: + case 48: + case 49: + case 62: + case 61: + case 63: + case 58: + case 59: + case 60: + case 53: + case 54: + case 55: + case 56: + case 57: + case 52: + case 23: return true; default: return false; } } function isPrefixUnaryExpressionOperatorToken(token) { switch (token) { - case 33 /* PlusToken */: - case 34 /* MinusToken */: - case 47 /* TildeToken */: - case 46 /* ExclamationToken */: - case 38 /* PlusPlusToken */: - case 39 /* MinusMinusToken */: + case 33: + case 34: + case 47: + case 46: + case 38: + case 39: return true; default: return false; } } function isKeyword(token) { - return token >= 65 /* FirstKeyword */ && token <= 120 /* LastKeyword */; + return token >= 65 && token <= 120; } function classFromKind(token) { if (isKeyword(token)) { - return 1 /* Keyword */; + return 1; } else if (isBinaryExpressionOperatorToken(token) || isPrefixUnaryExpressionOperatorToken(token)) { - return 2 /* Operator */; + return 2; } - else if (token >= 14 /* FirstPunctuation */ && token <= 63 /* LastPunctuation */) { - return 0 /* Punctuation */; + else if (token >= 14 && token <= 63) { + return 0; } switch (token) { - case 7 /* NumericLiteral */: - return 6 /* NumberLiteral */; - case 8 /* StringLiteral */: - return 7 /* StringLiteral */; - case 9 /* RegularExpressionLiteral */: - return 8 /* RegExpLiteral */; - case 6 /* ConflictMarkerTrivia */: - case 3 /* MultiLineCommentTrivia */: - case 2 /* SingleLineCommentTrivia */: - return 3 /* Comment */; - case 5 /* WhitespaceTrivia */: - return 4 /* Whitespace */; - case 64 /* Identifier */: + case 7: + return 6; + case 8: + return 7; + case 9: + return 8; + case 6: + case 3: + case 2: + return 3; + case 5: + return 4; + case 64: default: - return 5 /* Identifier */; + return 5; } } return { getClassificationsForLine: getClassificationsForLine }; } ts.createClassifier = createClassifier; + function getDefaultLibFilePath(options) { + if (typeof __dirname !== "undefined") { + return __dirname + ts.directorySeparator + ts.getDefaultLibFileName(options); + } + throw new Error("getDefaultLibFilePath is only supported when consumed as a node module. "); + } + ts.getDefaultLibFilePath = getDefaultLibFilePath; function initializeServices() { ts.objectAllocator = { getNodeConstructor: function (kind) { function Node() { } - var proto = kind === 207 /* SourceFile */ ? new SourceFileObject() : new NodeObject(); + var proto = kind === 207 ? new SourceFileObject() : new NodeObject(); proto.kind = kind; proto.pos = 0; proto.end = 0; @@ -27594,7 +27795,7 @@ var ts; var BreakpointResolver; (function (BreakpointResolver) { function spanInSourceFileAtLocation(sourceFile, position) { - if (sourceFile.flags & 1024 /* DeclarationFile */) { + if (sourceFile.flags & 1024) { return undefined; } var tokenAtLocation = ts.getTokenAtPosition(sourceFile, position); @@ -27627,123 +27828,123 @@ var ts; function spanInNode(node) { if (node) { if (ts.isExpression(node)) { - if (node.parent.kind === 175 /* DoStatement */) { + if (node.parent.kind === 175) { return spanInPreviousNode(node); } - if (node.parent.kind === 177 /* ForStatement */) { + if (node.parent.kind === 177) { return textSpan(node); } - if (node.parent.kind === 163 /* BinaryExpression */ && node.parent.operator === 23 /* CommaToken */) { + if (node.parent.kind === 163 && node.parent.operator === 23) { return textSpan(node); } - if (node.parent.kind == 157 /* ArrowFunction */ && node.parent.body == node) { + if (node.parent.kind == 157 && node.parent.body == node) { return textSpan(node); } } switch (node.kind) { - case 171 /* VariableStatement */: + case 171: return spanInVariableDeclaration(node.declarationList.declarations[0]); - case 188 /* VariableDeclaration */: - case 126 /* PropertyDeclaration */: - case 125 /* PropertySignature */: + case 188: + case 126: + case 125: return spanInVariableDeclaration(node); - case 124 /* Parameter */: + case 124: return spanInParameterDeclaration(node); - case 190 /* FunctionDeclaration */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 129 /* Constructor */: - case 156 /* FunctionExpression */: - case 157 /* ArrowFunction */: + case 190: + case 128: + case 127: + case 130: + case 131: + case 129: + case 156: + case 157: return spanInFunctionDeclaration(node); - case 170 /* Block */: + case 170: if (ts.isFunctionBlock(node)) { return spanInFunctionBlock(node); } - case 196 /* ModuleBlock */: + case 196: return spanInBlock(node); - case 203 /* CatchClause */: + case 203: return spanInBlock(node.block); - case 173 /* ExpressionStatement */: + case 173: return textSpan(node.expression); - case 181 /* ReturnStatement */: + case 181: return textSpan(node.getChildAt(0), node.expression); - case 176 /* WhileStatement */: + case 176: return textSpan(node, ts.findNextToken(node.expression, node)); - case 175 /* DoStatement */: + case 175: return spanInNode(node.statement); - case 187 /* DebuggerStatement */: + case 187: return textSpan(node.getChildAt(0)); - case 174 /* IfStatement */: + case 174: return textSpan(node, ts.findNextToken(node.expression, node)); - case 184 /* LabeledStatement */: + case 184: return spanInNode(node.statement); - case 180 /* BreakStatement */: - case 179 /* ContinueStatement */: + case 180: + case 179: return textSpan(node.getChildAt(0), node.label); - case 177 /* ForStatement */: + case 177: return spanInForStatement(node); - case 178 /* ForInStatement */: + case 178: return textSpan(node, ts.findNextToken(node.expression, node)); - case 183 /* SwitchStatement */: + case 183: return textSpan(node, ts.findNextToken(node.expression, node)); - case 200 /* CaseClause */: - case 201 /* DefaultClause */: + case 200: + case 201: return spanInNode(node.statements[0]); - case 186 /* TryStatement */: + case 186: return spanInBlock(node.tryBlock); - case 185 /* ThrowStatement */: + case 185: return textSpan(node, node.expression); - case 198 /* ExportAssignment */: + case 198: return textSpan(node, node.exportName); - case 197 /* ImportDeclaration */: + case 197: return textSpan(node, node.moduleReference); - case 195 /* ModuleDeclaration */: - if (ts.getModuleInstanceState(node) !== 1 /* Instantiated */) { + case 195: + if (ts.getModuleInstanceState(node) !== 1) { return undefined; } - case 191 /* ClassDeclaration */: - case 194 /* EnumDeclaration */: - case 206 /* EnumMember */: - case 151 /* CallExpression */: - case 152 /* NewExpression */: + case 191: + case 194: + case 206: + case 151: + case 152: return textSpan(node); - case 182 /* WithStatement */: + case 182: return spanInNode(node.statement); - case 192 /* InterfaceDeclaration */: - case 193 /* TypeAliasDeclaration */: + case 192: + case 193: return undefined; - case 22 /* SemicolonToken */: - case 1 /* EndOfFileToken */: + case 22: + case 1: return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile)); - case 23 /* CommaToken */: + case 23: return spanInPreviousNode(node); - case 14 /* OpenBraceToken */: + case 14: return spanInOpenBraceToken(node); - case 15 /* CloseBraceToken */: + case 15: return spanInCloseBraceToken(node); - case 16 /* OpenParenToken */: + case 16: return spanInOpenParenToken(node); - case 17 /* CloseParenToken */: + case 17: return spanInCloseParenToken(node); - case 51 /* ColonToken */: + case 51: return spanInColonToken(node); - case 25 /* GreaterThanToken */: - case 24 /* LessThanToken */: + case 25: + case 24: return spanInGreaterThanOrLessThanToken(node); - case 99 /* WhileKeyword */: + case 99: return spanInWhileKeyword(node); - case 75 /* ElseKeyword */: - case 67 /* CatchKeyword */: - case 80 /* FinallyKeyword */: + case 75: + case 67: + case 80: return spanInNextNode(node); default: - if (node.parent.kind === 204 /* PropertyAssignment */ && node.parent.name === node) { + if (node.parent.kind === 204 && node.parent.name === node) { return spanInNode(node.parent.initializer); } - if (node.parent.kind === 154 /* TypeAssertionExpression */ && node.parent.type === node) { + if (node.parent.kind === 154 && node.parent.type === node) { return spanInNode(node.parent.expression); } if (ts.isAnyFunction(node.parent) && node.parent.type === node) { @@ -27753,13 +27954,13 @@ var ts; } } function spanInVariableDeclaration(variableDeclaration) { - if (variableDeclaration.parent.parent.kind === 178 /* ForInStatement */) { + if (variableDeclaration.parent.parent.kind === 178) { return spanInNode(variableDeclaration.parent.parent); } - var isParentVariableStatement = variableDeclaration.parent.parent.kind === 171 /* VariableStatement */; - var isDeclarationOfForStatement = variableDeclaration.parent.parent.kind === 177 /* ForStatement */ && ts.contains(variableDeclaration.parent.parent.initializer.declarations, variableDeclaration); + var isParentVariableStatement = variableDeclaration.parent.parent.kind === 171; + var isDeclarationOfForStatement = variableDeclaration.parent.parent.kind === 177 && ts.contains(variableDeclaration.parent.parent.initializer.declarations, variableDeclaration); var declarations = isParentVariableStatement ? variableDeclaration.parent.parent.declarationList.declarations : isDeclarationOfForStatement ? variableDeclaration.parent.parent.initializer.declarations : undefined; - if (variableDeclaration.initializer || (variableDeclaration.flags & 1 /* Export */)) { + if (variableDeclaration.initializer || (variableDeclaration.flags & 1)) { if (declarations && declarations[0] === variableDeclaration) { if (isParentVariableStatement) { return textSpan(variableDeclaration.parent, variableDeclaration); @@ -27779,7 +27980,7 @@ var ts; } } function canHaveSpanInParameterDeclaration(parameter) { - return !!parameter.initializer || parameter.dotDotDotToken !== undefined || !!(parameter.flags & 16 /* Public */) || !!(parameter.flags & 32 /* Private */); + return !!parameter.initializer || parameter.dotDotDotToken !== undefined || !!(parameter.flags & 16) || !!(parameter.flags & 32); } function spanInParameterDeclaration(parameter) { if (canHaveSpanInParameterDeclaration(parameter)) { @@ -27797,7 +27998,7 @@ var ts; } } function canFunctionHaveSpanInWholeDeclaration(functionDeclaration) { - return !!(functionDeclaration.flags & 1 /* Export */) || (functionDeclaration.parent.kind === 191 /* ClassDeclaration */ && functionDeclaration.kind !== 129 /* Constructor */); + return !!(functionDeclaration.flags & 1) || (functionDeclaration.parent.kind === 191 && functionDeclaration.kind !== 129); } function spanInFunctionDeclaration(functionDeclaration) { if (!functionDeclaration.body) { @@ -27817,22 +28018,22 @@ var ts; } function spanInBlock(block) { switch (block.parent.kind) { - case 195 /* ModuleDeclaration */: - if (ts.getModuleInstanceState(block.parent) !== 1 /* Instantiated */) { + case 195: + if (ts.getModuleInstanceState(block.parent) !== 1) { return undefined; } - case 176 /* WhileStatement */: - case 174 /* IfStatement */: - case 178 /* ForInStatement */: + case 176: + case 174: + case 178: return spanInNodeIfStartsOnSameLine(block.parent, block.statements[0]); - case 177 /* ForStatement */: + case 177: return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(block.pos, sourceFile, block.parent), block.statements[0]); } return spanInNode(block.statements[0]); } function spanInForStatement(forStatement) { if (forStatement.initializer) { - if (forStatement.initializer.kind === 189 /* VariableDeclarationList */) { + if (forStatement.initializer.kind === 189) { var variableDeclarationList = forStatement.initializer; if (variableDeclarationList.declarations.length > 0) { return spanInNode(variableDeclarationList.declarations[0]); @@ -27851,34 +28052,34 @@ var ts; } function spanInOpenBraceToken(node) { switch (node.parent.kind) { - case 194 /* EnumDeclaration */: + case 194: var enumDeclaration = node.parent; return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile, node.parent), enumDeclaration.members.length ? enumDeclaration.members[0] : enumDeclaration.getLastToken(sourceFile)); - case 191 /* ClassDeclaration */: + case 191: var classDeclaration = node.parent; return spanInNodeIfStartsOnSameLine(ts.findPrecedingToken(node.pos, sourceFile, node.parent), classDeclaration.members.length ? classDeclaration.members[0] : classDeclaration.getLastToken(sourceFile)); - case 183 /* SwitchStatement */: + case 183: return spanInNodeIfStartsOnSameLine(node.parent, node.parent.clauses[0]); } return spanInNode(node.parent); } function spanInCloseBraceToken(node) { switch (node.parent.kind) { - case 196 /* ModuleBlock */: - if (ts.getModuleInstanceState(node.parent.parent) !== 1 /* Instantiated */) { + case 196: + if (ts.getModuleInstanceState(node.parent.parent) !== 1) { return undefined; } - case 194 /* EnumDeclaration */: - case 191 /* ClassDeclaration */: + case 194: + case 191: return textSpan(node); - case 170 /* Block */: + case 170: if (ts.isFunctionBlock(node.parent)) { return textSpan(node); } - case 203 /* CatchClause */: + case 203: return spanInNode(node.parent.statements[node.parent.statements.length - 1]); ; - case 183 /* SwitchStatement */: + case 183: var switchStatement = node.parent; var lastClause = switchStatement.clauses[switchStatement.clauses.length - 1]; if (lastClause) { @@ -27890,24 +28091,24 @@ var ts; } } function spanInOpenParenToken(node) { - if (node.parent.kind === 175 /* DoStatement */) { + if (node.parent.kind === 175) { return spanInPreviousNode(node); } return spanInNode(node.parent); } function spanInCloseParenToken(node) { switch (node.parent.kind) { - case 156 /* FunctionExpression */: - case 190 /* FunctionDeclaration */: - case 157 /* ArrowFunction */: - case 128 /* MethodDeclaration */: - case 127 /* MethodSignature */: - case 130 /* GetAccessor */: - case 131 /* SetAccessor */: - case 129 /* Constructor */: - case 176 /* WhileStatement */: - case 175 /* DoStatement */: - case 177 /* ForStatement */: + case 156: + case 190: + case 157: + case 128: + case 127: + case 130: + case 131: + case 129: + case 176: + case 175: + case 177: return spanInPreviousNode(node); default: return spanInNode(node.parent); @@ -27915,19 +28116,19 @@ var ts; return spanInNode(node.parent); } function spanInColonToken(node) { - if (ts.isAnyFunction(node.parent) || node.parent.kind === 204 /* PropertyAssignment */) { + if (ts.isAnyFunction(node.parent) || node.parent.kind === 204) { return spanInPreviousNode(node); } return spanInNode(node.parent); } function spanInGreaterThanOrLessThanToken(node) { - if (node.parent.kind === 154 /* TypeAssertionExpression */) { + if (node.parent.kind === 154) { return spanInNode(node.parent.expression); } return spanInNode(node.parent); } function spanInWhileKeyword(node) { - if (node.parent.kind === 175 /* DoStatement */) { + if (node.parent.kind === 175) { return textSpan(node, ts.findNextToken(node.parent.expression, node.parent)); } return spanInNode(node.parent); @@ -27954,12 +28155,6 @@ var ts; ScriptSnapshotShimAdapter.prototype.getLength = function () { return this.scriptSnapshotShim.getLength(); }; - ScriptSnapshotShimAdapter.prototype.getLineStartPositions = function () { - if (this.lineStartPositions == null) { - this.lineStartPositions = JSON.parse(this.scriptSnapshotShim.getLineStartPositions()); - } - return this.lineStartPositions; - }; ScriptSnapshotShimAdapter.prototype.getChangeRange = function (oldSnapshot) { var oldSnapshotShim = oldSnapshot; var encoded = this.scriptSnapshotShim.getChangeRange(oldSnapshotShim.scriptSnapshotShim); @@ -27994,17 +28189,18 @@ var ts; }; LanguageServiceShimHostAdapter.prototype.getScriptFileNames = function () { var encoded = this.shimHost.getScriptFileNames(); - return JSON.parse(encoded); + return this.files = JSON.parse(encoded); }; LanguageServiceShimHostAdapter.prototype.getScriptSnapshot = function (fileName) { - return new ScriptSnapshotShimAdapter(this.shimHost.getScriptSnapshot(fileName)); + if (this.files && this.files.indexOf(fileName) < 0) { + return undefined; + } + var scriptSnapshot = this.shimHost.getScriptSnapshot(fileName); + return scriptSnapshot && new ScriptSnapshotShimAdapter(scriptSnapshot); }; LanguageServiceShimHostAdapter.prototype.getScriptVersion = function (fileName) { return this.shimHost.getScriptVersion(fileName); }; - LanguageServiceShimHostAdapter.prototype.getScriptIsOpen = function (fileName) { - return this.shimHost.getScriptIsOpen(fileName); - }; LanguageServiceShimHostAdapter.prototype.getLocalizedDiagnosticMessages = function () { var diagnosticMessagesJson = this.shimHost.getLocalizedDiagnosticMessages(); if (diagnosticMessagesJson == null || diagnosticMessagesJson == "") { @@ -28021,12 +28217,12 @@ var ts; LanguageServiceShimHostAdapter.prototype.getCancellationToken = function () { return this.shimHost.getCancellationToken(); }; - LanguageServiceShimHostAdapter.prototype.getDefaultLibFilename = function (options) { - return this.shimHost.getDefaultLibFilename(JSON.stringify(options)); - }; LanguageServiceShimHostAdapter.prototype.getCurrentDirectory = function () { return this.shimHost.getCurrentDirectory(); }; + LanguageServiceShimHostAdapter.prototype.getDefaultLibFileName = function (options) { + return ""; + }; return LanguageServiceShimHostAdapter; })(); ts.LanguageServiceShimHostAdapter = LanguageServiceShimHostAdapter; @@ -28103,9 +28299,14 @@ var ts; return null; }); }; - LanguageServiceShimObject.realizeDiagnostic = function (diagnostic) { + LanguageServiceShimObject.prototype.realizeDiagnostics = function (diagnostics) { + var _this = this; + var newLine = this.getNewLine(); + return diagnostics.map(function (d) { return _this.realizeDiagnostic(d, newLine); }); + }; + LanguageServiceShimObject.prototype.realizeDiagnostic = function (diagnostic, newLine) { return { - message: diagnostic.messageText, + message: ts.flattenDiagnosticMessageText(diagnostic.messageText, newLine), start: diagnostic.start, length: diagnostic.length, category: ts.DiagnosticCategory[diagnostic.category].toLowerCase(), @@ -28126,25 +28327,28 @@ var ts; return classifications; }); }; + LanguageServiceShimObject.prototype.getNewLine = function () { + return this.host.getNewLine ? this.host.getNewLine() : "\r\n"; + }; LanguageServiceShimObject.prototype.getSyntacticDiagnostics = function (fileName) { var _this = this; return this.forwardJSONCall("getSyntacticDiagnostics('" + fileName + "')", function () { - var errors = _this.languageService.getSyntacticDiagnostics(fileName); - return errors.map(LanguageServiceShimObject.realizeDiagnostic); + var diagnostics = _this.languageService.getSyntacticDiagnostics(fileName); + return _this.realizeDiagnostics(diagnostics); }); }; LanguageServiceShimObject.prototype.getSemanticDiagnostics = function (fileName) { var _this = this; return this.forwardJSONCall("getSemanticDiagnostics('" + fileName + "')", function () { - var errors = _this.languageService.getSemanticDiagnostics(fileName); - return errors.map(LanguageServiceShimObject.realizeDiagnostic); + var diagnostics = _this.languageService.getSemanticDiagnostics(fileName); + return _this.realizeDiagnostics(diagnostics); }); }; LanguageServiceShimObject.prototype.getCompilerOptionsDiagnostics = function () { var _this = this; return this.forwardJSONCall("getCompilerOptionsDiagnostics()", function () { - var errors = _this.languageService.getCompilerOptionsDiagnostics(); - return errors.map(LanguageServiceShimObject.realizeDiagnostic); + var diagnostics = _this.languageService.getCompilerOptionsDiagnostics(); + return _this.realizeDiagnostics(diagnostics); }); }; LanguageServiceShimObject.prototype.getQuickInfoAtPosition = function (fileName, position) { @@ -28289,6 +28493,7 @@ var ts; var _this = this; return this.forwardJSONCall("getEmitOutput('" + fileName + "')", function () { var output = _this.languageService.getEmitOutput(fileName); + output.emitOutputStatus = output.emitSkipped ? 1 : 0; return output; }); }; @@ -28296,10 +28501,9 @@ var ts; })(ShimBase); var ClassifierShimObject = (function (_super) { __extends(ClassifierShimObject, _super); - function ClassifierShimObject(factory, logger) { + function ClassifierShimObject(factory) { _super.call(this, factory); - this.logger = logger; - this.classifier = ts.createClassifier(this.logger); + this.classifier = ts.createClassifier(); } ClassifierShimObject.prototype.getClassificationsForLine = function (text, lexState, classifyKeywordsInGenerics) { var classification = this.classifier.getClassificationsForLine(text, lexState, classifyKeywordsInGenerics); @@ -28333,14 +28537,14 @@ var ts; }; ts.forEach(result.referencedFiles, function (refFile) { convertResult.referencedFiles.push({ - path: ts.normalizePath(refFile.filename), + path: ts.normalizePath(refFile.fileName), position: refFile.pos, length: refFile.end - refFile.pos }); }); ts.forEach(result.importedFiles, function (importedFile) { convertResult.importedFiles.push({ - path: ts.normalizeSlashes(importedFile.filename), + path: ts.normalizeSlashes(importedFile.fileName), position: importedFile.pos, length: importedFile.end - importedFile.pos }); @@ -28376,7 +28580,7 @@ var ts; }; TypeScriptServicesFactory.prototype.createClassifierShim = function (logger) { try { - return new ClassifierShimObject(this, logger); + return new ClassifierShimObject(this); } catch (err) { logInternalError(logger, err); diff --git a/bin/typescriptServices_internal.d.ts b/bin/typescriptServices_internal.d.ts index 82f5e606758..c6ba4f561f0 100644 --- a/bin/typescriptServices_internal.d.ts +++ b/bin/typescriptServices_internal.d.ts @@ -35,6 +35,7 @@ declare module ts { function concatenate(array1: T[], array2: T[]): T[]; function deduplicate(array: T[]): T[]; function sum(array: any[], prop: string): number; + function addRange(to: T[], from: T[]): void; /** * Returns the last element of an array if non-empty, undefined otherwise. */ @@ -67,9 +68,9 @@ declare module ts { function createCompilerDiagnostic(message: DiagnosticMessage, ...args: any[]): Diagnostic; function chainDiagnosticMessages(details: DiagnosticMessageChain, message: DiagnosticMessage, ...args: any[]): DiagnosticMessageChain; function concatenateDiagnosticMessageChains(headChain: DiagnosticMessageChain, tailChain: DiagnosticMessageChain): DiagnosticMessageChain; - function flattenDiagnosticChain(file: SourceFile, start: number, length: number, diagnosticChain: DiagnosticMessageChain, newLine: string): Diagnostic; function compareValues(a: T, b: T): Comparison; - function compareDiagnostics(d1: Diagnostic, d2: Diagnostic): number; + function compareDiagnostics(d1: Diagnostic, d2: Diagnostic): Comparison; + function sortAndDeduplicateDiagnostics(diagnostics: Diagnostic[]): Diagnostic[]; function deduplicateSortedDiagnostics(diagnostics: Diagnostic[]): Diagnostic[]; function normalizeSlashes(path: string): string; function getRootLength(path: string): number; @@ -79,10 +80,10 @@ declare module ts { function isUrl(path: string): boolean; function isRootedDiskPath(path: string): boolean; function getNormalizedPathComponents(path: string, currentDirectory: string): string[]; - function getNormalizedAbsolutePath(filename: string, currentDirectory: string): string; + function getNormalizedAbsolutePath(fileName: string, currentDirectory: string): string; function getNormalizedPathFromPathComponents(pathComponents: string[]): string; function getRelativePathToDirectoryOrUrl(directoryPathOrUrl: string, relativeOrAbsolutePath: string, currentDirectory: string, getCanonicalFileName: (fileName: string) => string, isAbsolutePathAnUrl: boolean): string; - function getBaseFilename(path: string): string; + function getBaseFileName(path: string): string; function combinePaths(path1: string, path2: string): string; function fileExtensionIs(path: string, extension: string): boolean; function removeFileExtension(path: string): string; @@ -92,6 +93,7 @@ declare module ts { * Note that this doesn't actually wrap the input in double quotes. */ function escapeString(s: string): string; + function getDefaultLibFileName(options: CompilerOptions): string; interface ObjectAllocator { getNodeConstructor(kind: SyntaxKind): new () => Node; getSymbolConstructor(): new (flags: SymbolFlags, name: string) => Symbol; @@ -147,11 +149,10 @@ declare module ts { } interface EmitHost extends ScriptReferenceHost { getSourceFiles(): SourceFile[]; - isEmitBlocked(sourceFile?: SourceFile): boolean; getCommonSourceDirectory(): string; getCanonicalFileName(fileName: string): string; getNewLine(): string; - writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; + writeFile: WriteFileCallback; } function getSingleLineStringWriter(): StringSymbolWriter; function releaseStringWriter(writer: StringSymbolWriter): void; @@ -170,7 +171,7 @@ declare module ts { function unescapeIdentifier(identifier: string): string; function declarationNameToString(name: DeclarationName): string; function createDiagnosticForNode(node: Node, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): Diagnostic; - function createDiagnosticForNodeFromMessageChain(node: Node, messageChain: DiagnosticMessageChain, newLine: string): Diagnostic; + function createDiagnosticForNodeFromMessageChain(node: Node, messageChain: DiagnosticMessageChain): Diagnostic; function getErrorSpanForNode(node: Node): Node; function isExternalModule(file: SourceFile): boolean; function isDeclarationFile(file: SourceFile): boolean; @@ -216,7 +217,6 @@ declare module ts { function isKeyword(token: SyntaxKind): boolean; function isTrivia(token: SyntaxKind): boolean; function isModifier(token: SyntaxKind): boolean; - function createEmitHostFromProgram(program: Program): EmitHost; function textSpanEnd(span: TextSpan): number; function textSpanIsEmpty(span: TextSpan): boolean; function textSpanContainsPosition(span: TextSpan, position: number): boolean; @@ -246,7 +246,7 @@ declare module ts { declare module ts { var optionDeclarations: CommandLineOption[]; function parseCommandLine(commandLine: string[]): ParsedCommandLine; - function readConfigFile(filename: string): any; + function readConfigFile(fileName: string): any; function parseConfigFile(json: any, basePath?: string): ParsedCommandLine; } declare module ts { diff --git a/bin/typescript_internal.d.ts b/bin/typescript_internal.d.ts index 2758ab3c212..b7def7258d9 100644 --- a/bin/typescript_internal.d.ts +++ b/bin/typescript_internal.d.ts @@ -35,6 +35,7 @@ declare module "typescript" { function concatenate(array1: T[], array2: T[]): T[]; function deduplicate(array: T[]): T[]; function sum(array: any[], prop: string): number; + function addRange(to: T[], from: T[]): void; /** * Returns the last element of an array if non-empty, undefined otherwise. */ @@ -67,9 +68,9 @@ declare module "typescript" { function createCompilerDiagnostic(message: DiagnosticMessage, ...args: any[]): Diagnostic; function chainDiagnosticMessages(details: DiagnosticMessageChain, message: DiagnosticMessage, ...args: any[]): DiagnosticMessageChain; function concatenateDiagnosticMessageChains(headChain: DiagnosticMessageChain, tailChain: DiagnosticMessageChain): DiagnosticMessageChain; - function flattenDiagnosticChain(file: SourceFile, start: number, length: number, diagnosticChain: DiagnosticMessageChain, newLine: string): Diagnostic; function compareValues(a: T, b: T): Comparison; - function compareDiagnostics(d1: Diagnostic, d2: Diagnostic): number; + function compareDiagnostics(d1: Diagnostic, d2: Diagnostic): Comparison; + function sortAndDeduplicateDiagnostics(diagnostics: Diagnostic[]): Diagnostic[]; function deduplicateSortedDiagnostics(diagnostics: Diagnostic[]): Diagnostic[]; function normalizeSlashes(path: string): string; function getRootLength(path: string): number; @@ -79,10 +80,10 @@ declare module "typescript" { function isUrl(path: string): boolean; function isRootedDiskPath(path: string): boolean; function getNormalizedPathComponents(path: string, currentDirectory: string): string[]; - function getNormalizedAbsolutePath(filename: string, currentDirectory: string): string; + function getNormalizedAbsolutePath(fileName: string, currentDirectory: string): string; function getNormalizedPathFromPathComponents(pathComponents: string[]): string; function getRelativePathToDirectoryOrUrl(directoryPathOrUrl: string, relativeOrAbsolutePath: string, currentDirectory: string, getCanonicalFileName: (fileName: string) => string, isAbsolutePathAnUrl: boolean): string; - function getBaseFilename(path: string): string; + function getBaseFileName(path: string): string; function combinePaths(path1: string, path2: string): string; function fileExtensionIs(path: string, extension: string): boolean; function removeFileExtension(path: string): string; @@ -92,6 +93,7 @@ declare module "typescript" { * Note that this doesn't actually wrap the input in double quotes. */ function escapeString(s: string): string; + function getDefaultLibFileName(options: CompilerOptions): string; interface ObjectAllocator { getNodeConstructor(kind: SyntaxKind): new () => Node; getSymbolConstructor(): new (flags: SymbolFlags, name: string) => Symbol; @@ -147,11 +149,10 @@ declare module "typescript" { } interface EmitHost extends ScriptReferenceHost { getSourceFiles(): SourceFile[]; - isEmitBlocked(sourceFile?: SourceFile): boolean; getCommonSourceDirectory(): string; getCanonicalFileName(fileName: string): string; getNewLine(): string; - writeFile(filename: string, data: string, writeByteOrderMark: boolean, onError?: (message: string) => void): void; + writeFile: WriteFileCallback; } function getSingleLineStringWriter(): StringSymbolWriter; function releaseStringWriter(writer: StringSymbolWriter): void; @@ -170,7 +171,7 @@ declare module "typescript" { function unescapeIdentifier(identifier: string): string; function declarationNameToString(name: DeclarationName): string; function createDiagnosticForNode(node: Node, message: DiagnosticMessage, arg0?: any, arg1?: any, arg2?: any): Diagnostic; - function createDiagnosticForNodeFromMessageChain(node: Node, messageChain: DiagnosticMessageChain, newLine: string): Diagnostic; + function createDiagnosticForNodeFromMessageChain(node: Node, messageChain: DiagnosticMessageChain): Diagnostic; function getErrorSpanForNode(node: Node): Node; function isExternalModule(file: SourceFile): boolean; function isDeclarationFile(file: SourceFile): boolean; @@ -216,7 +217,6 @@ declare module "typescript" { function isKeyword(token: SyntaxKind): boolean; function isTrivia(token: SyntaxKind): boolean; function isModifier(token: SyntaxKind): boolean; - function createEmitHostFromProgram(program: Program): EmitHost; function textSpanEnd(span: TextSpan): number; function textSpanIsEmpty(span: TextSpan): boolean; function textSpanContainsPosition(span: TextSpan, position: number): boolean; @@ -246,7 +246,7 @@ declare module "typescript" { declare module "typescript" { var optionDeclarations: CommandLineOption[]; function parseCommandLine(commandLine: string[]): ParsedCommandLine; - function readConfigFile(filename: string): any; + function readConfigFile(fileName: string): any; function parseConfigFile(json: any, basePath?: string): ParsedCommandLine; } declare module "typescript" { From 449f4a4f37d58ce0c48dbc4904f0f8e521f78c33 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Fri, 6 Feb 2015 17:30:29 -0800 Subject: [PATCH 19/39] Have better error recovery for whne a user uses semicolons instead of commas to delimit an object literal. --- src/compiler/parser.ts | 17 +++++++++++++++-- .../fatarrowfunctionsErrors.errors.txt | 8 +------- .../reference/fatarrowfunctionsErrors.js | 1 - .../incompleteObjectLiteral1.errors.txt | 5 +---- .../objectLiteralWithSemicolons1.errors.txt | 13 +++++++++++++ .../reference/objectLiteralWithSemicolons1.js | 5 +++++ .../objectLiteralWithSemicolons2.errors.txt | 17 +++++++++++++++++ .../reference/objectLiteralWithSemicolons2.js | 13 +++++++++++++ .../objectLiteralWithSemicolons3.errors.txt | 17 +++++++++++++++++ .../reference/objectLiteralWithSemicolons3.js | 13 +++++++++++++ .../objectLiteralWithSemicolons4.errors.txt | 9 +++++++++ .../reference/objectLiteralWithSemicolons4.js | 9 +++++++++ .../objectLiteralWithSemicolons5.errors.txt | 19 +++++++++++++++++++ .../reference/objectLiteralWithSemicolons5.js | 7 +++++++ .../reference/parser512097.errors.txt | 5 +---- tests/baselines/reference/parser512097.js | 2 +- ...serErrorRecovery_ObjectLiteral2.errors.txt | 7 +++++-- ...serErrorRecovery_ObjectLiteral3.errors.txt | 7 +++++-- ...serErrorRecovery_ObjectLiteral4.errors.txt | 7 +++++-- ...serErrorRecovery_ObjectLiteral5.errors.txt | 7 +++++-- .../reference/privateIndexer2.errors.txt | 5 +---- .../compiler/objectLiteralWithSemicolons1.ts | 1 + .../compiler/objectLiteralWithSemicolons2.ts | 5 +++++ .../compiler/objectLiteralWithSemicolons3.ts | 5 +++++ .../compiler/objectLiteralWithSemicolons4.ts | 3 +++ .../compiler/objectLiteralWithSemicolons5.ts | 1 + 26 files changed, 177 insertions(+), 31 deletions(-) create mode 100644 tests/baselines/reference/objectLiteralWithSemicolons1.errors.txt create mode 100644 tests/baselines/reference/objectLiteralWithSemicolons1.js create mode 100644 tests/baselines/reference/objectLiteralWithSemicolons2.errors.txt create mode 100644 tests/baselines/reference/objectLiteralWithSemicolons2.js create mode 100644 tests/baselines/reference/objectLiteralWithSemicolons3.errors.txt create mode 100644 tests/baselines/reference/objectLiteralWithSemicolons3.js create mode 100644 tests/baselines/reference/objectLiteralWithSemicolons4.errors.txt create mode 100644 tests/baselines/reference/objectLiteralWithSemicolons4.js create mode 100644 tests/baselines/reference/objectLiteralWithSemicolons5.errors.txt create mode 100644 tests/baselines/reference/objectLiteralWithSemicolons5.js create mode 100644 tests/cases/compiler/objectLiteralWithSemicolons1.ts create mode 100644 tests/cases/compiler/objectLiteralWithSemicolons2.ts create mode 100644 tests/cases/compiler/objectLiteralWithSemicolons3.ts create mode 100644 tests/cases/compiler/objectLiteralWithSemicolons4.ts create mode 100644 tests/cases/compiler/objectLiteralWithSemicolons5.ts diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index cd08e592be8..6942be3cf13 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1878,7 +1878,7 @@ module ts { } // Parses a comma-delimited list of elements - function parseDelimitedList(kind: ParsingContext, parseElement: () => T): NodeArray { + function parseDelimitedList(kind: ParsingContext, parseElement: () => T, considerSemicolonAsDelimeter?: boolean): NodeArray { var saveParsingContext = parsingContext; parsingContext |= 1 << kind; var result = >[]; @@ -1892,11 +1892,24 @@ module ts { if (parseOptional(SyntaxKind.CommaToken)) { continue; } + commaStart = -1; // Back to the state where the last token was not a comma if (isListTerminator(kind)) { break; } + + // We didn't get a comma, and the list wasn't terminated, explicitly parse + // out a comma so we give a good error message. parseExpected(SyntaxKind.CommaToken); + + // If the token was a semicolon, and the caller allows that, then skip it and + // continue. This ensures we get back on track and don't result in tons of + // parse errors. For example, this can happen when people do things like use + // a semicolon to delimit object literal members. Note: we'll have already + // reported an error when we called parseExpected above. + if (considerSemicolonAsDelimeter && token === SyntaxKind.SemicolonToken && !scanner.hasPrecedingLineBreak()) { + nextToken(); + } continue; } @@ -3598,7 +3611,7 @@ module ts { node.flags |= NodeFlags.MultiLine; } - node.properties = parseDelimitedList(ParsingContext.ObjectLiteralMembers, parseObjectLiteralElement); + node.properties = parseDelimitedList(ParsingContext.ObjectLiteralMembers, parseObjectLiteralElement, /*considerSemicolonAsDelimeter:*/ true); parseExpected(SyntaxKind.CloseBraceToken); return finishNode(node); } diff --git a/tests/baselines/reference/fatarrowfunctionsErrors.errors.txt b/tests/baselines/reference/fatarrowfunctionsErrors.errors.txt index 35df1a5f397..196041b951a 100644 --- a/tests/baselines/reference/fatarrowfunctionsErrors.errors.txt +++ b/tests/baselines/reference/fatarrowfunctionsErrors.errors.txt @@ -3,8 +3,6 @@ tests/cases/compiler/fatarrowfunctionsErrors.ts(2,1): error TS2304: Cannot find tests/cases/compiler/fatarrowfunctionsErrors.ts(2,8): error TS1005: ',' expected. tests/cases/compiler/fatarrowfunctionsErrors.ts(2,18): error TS1005: ':' expected. tests/cases/compiler/fatarrowfunctionsErrors.ts(2,19): error TS1005: ',' expected. -tests/cases/compiler/fatarrowfunctionsErrors.ts(2,20): error TS1128: Declaration or statement expected. -tests/cases/compiler/fatarrowfunctionsErrors.ts(2,21): error TS1128: Declaration or statement expected. tests/cases/compiler/fatarrowfunctionsErrors.ts(3,1): error TS2304: Cannot find name 'foo'. tests/cases/compiler/fatarrowfunctionsErrors.ts(4,1): error TS2304: Cannot find name 'foo'. tests/cases/compiler/fatarrowfunctionsErrors.ts(5,9): error TS2304: Cannot find name 'x'. @@ -18,7 +16,7 @@ tests/cases/compiler/fatarrowfunctionsErrors.ts(11,21): error TS1005: '=>' expec tests/cases/compiler/fatarrowfunctionsErrors.ts(12,23): error TS1005: '=>' expected. -==== tests/cases/compiler/fatarrowfunctionsErrors.ts (18 errors) ==== +==== tests/cases/compiler/fatarrowfunctionsErrors.ts (16 errors) ==== foo((...Far:any[])=>{return 0;}) ~~~ !!! error TS2304: Cannot find name 'foo'. @@ -31,10 +29,6 @@ tests/cases/compiler/fatarrowfunctionsErrors.ts(12,23): error TS1005: '=>' expec !!! error TS1005: ':' expected. ~ !!! error TS1005: ',' expected. - ~ -!!! error TS1128: Declaration or statement expected. - ~ -!!! error TS1128: Declaration or statement expected. foo((x?)=>{return x;}) ~~~ !!! error TS2304: Cannot find name 'foo'. diff --git a/tests/baselines/reference/fatarrowfunctionsErrors.js b/tests/baselines/reference/fatarrowfunctionsErrors.js index fd47f60b6a0..649a66a9e85 100644 --- a/tests/baselines/reference/fatarrowfunctionsErrors.js +++ b/tests/baselines/reference/fatarrowfunctionsErrors.js @@ -21,7 +21,6 @@ foo(function () { return 0; }); foo((1), { return: 0 }); -; foo(function (x) { return x; }); diff --git a/tests/baselines/reference/incompleteObjectLiteral1.errors.txt b/tests/baselines/reference/incompleteObjectLiteral1.errors.txt index 2e363de591e..903f83b3229 100644 --- a/tests/baselines/reference/incompleteObjectLiteral1.errors.txt +++ b/tests/baselines/reference/incompleteObjectLiteral1.errors.txt @@ -1,11 +1,8 @@ tests/cases/compiler/incompleteObjectLiteral1.ts(1,14): error TS1005: ':' expected. -tests/cases/compiler/incompleteObjectLiteral1.ts(1,16): error TS1128: Declaration or statement expected. -==== tests/cases/compiler/incompleteObjectLiteral1.ts (2 errors) ==== +==== tests/cases/compiler/incompleteObjectLiteral1.ts (1 errors) ==== var tt = { aa; } ~ !!! error TS1005: ':' expected. - ~ -!!! error TS1128: Declaration or statement expected. var x = tt; \ No newline at end of file diff --git a/tests/baselines/reference/objectLiteralWithSemicolons1.errors.txt b/tests/baselines/reference/objectLiteralWithSemicolons1.errors.txt new file mode 100644 index 00000000000..077d807af2c --- /dev/null +++ b/tests/baselines/reference/objectLiteralWithSemicolons1.errors.txt @@ -0,0 +1,13 @@ +tests/cases/compiler/objectLiteralWithSemicolons1.ts(1,12): error TS1005: ':' expected. +tests/cases/compiler/objectLiteralWithSemicolons1.ts(1,15): error TS1005: ':' expected. +tests/cases/compiler/objectLiteralWithSemicolons1.ts(1,17): error TS2304: Cannot find name 'c'. + + +==== tests/cases/compiler/objectLiteralWithSemicolons1.ts (3 errors) ==== + var v = { a; b; c } + ~ +!!! error TS1005: ':' expected. + ~ +!!! error TS1005: ':' expected. + ~ +!!! error TS2304: Cannot find name 'c'. \ No newline at end of file diff --git a/tests/baselines/reference/objectLiteralWithSemicolons1.js b/tests/baselines/reference/objectLiteralWithSemicolons1.js new file mode 100644 index 00000000000..b820b14428c --- /dev/null +++ b/tests/baselines/reference/objectLiteralWithSemicolons1.js @@ -0,0 +1,5 @@ +//// [objectLiteralWithSemicolons1.ts] +var v = { a; b; c } + +//// [objectLiteralWithSemicolons1.js] +var v = { a: , b: , c: c }; diff --git a/tests/baselines/reference/objectLiteralWithSemicolons2.errors.txt b/tests/baselines/reference/objectLiteralWithSemicolons2.errors.txt new file mode 100644 index 00000000000..d5594f66fb3 --- /dev/null +++ b/tests/baselines/reference/objectLiteralWithSemicolons2.errors.txt @@ -0,0 +1,17 @@ +tests/cases/compiler/objectLiteralWithSemicolons2.ts(2,4): error TS1005: ':' expected. +tests/cases/compiler/objectLiteralWithSemicolons2.ts(3,4): error TS1005: ':' expected. +tests/cases/compiler/objectLiteralWithSemicolons2.ts(4,3): error TS2304: Cannot find name 'c'. + + +==== tests/cases/compiler/objectLiteralWithSemicolons2.ts (3 errors) ==== + var v = { + a; + ~ +!!! error TS1005: ':' expected. + b; + ~ +!!! error TS1005: ':' expected. + c + ~ +!!! error TS2304: Cannot find name 'c'. + } \ No newline at end of file diff --git a/tests/baselines/reference/objectLiteralWithSemicolons2.js b/tests/baselines/reference/objectLiteralWithSemicolons2.js new file mode 100644 index 00000000000..2b46267465d --- /dev/null +++ b/tests/baselines/reference/objectLiteralWithSemicolons2.js @@ -0,0 +1,13 @@ +//// [objectLiteralWithSemicolons2.ts] +var v = { + a; + b; + c +} + +//// [objectLiteralWithSemicolons2.js] +var v = { + a: , + b: , + c: c +}; diff --git a/tests/baselines/reference/objectLiteralWithSemicolons3.errors.txt b/tests/baselines/reference/objectLiteralWithSemicolons3.errors.txt new file mode 100644 index 00000000000..dc638922e7b --- /dev/null +++ b/tests/baselines/reference/objectLiteralWithSemicolons3.errors.txt @@ -0,0 +1,17 @@ +tests/cases/compiler/objectLiteralWithSemicolons3.ts(2,4): error TS1005: ':' expected. +tests/cases/compiler/objectLiteralWithSemicolons3.ts(3,4): error TS1005: ':' expected. +tests/cases/compiler/objectLiteralWithSemicolons3.ts(4,4): error TS1005: ':' expected. + + +==== tests/cases/compiler/objectLiteralWithSemicolons3.ts (3 errors) ==== + var v = { + a; + ~ +!!! error TS1005: ':' expected. + b; + ~ +!!! error TS1005: ':' expected. + c; + ~ +!!! error TS1005: ':' expected. + } \ No newline at end of file diff --git a/tests/baselines/reference/objectLiteralWithSemicolons3.js b/tests/baselines/reference/objectLiteralWithSemicolons3.js new file mode 100644 index 00000000000..d9d6d9bc842 --- /dev/null +++ b/tests/baselines/reference/objectLiteralWithSemicolons3.js @@ -0,0 +1,13 @@ +//// [objectLiteralWithSemicolons3.ts] +var v = { + a; + b; + c; +} + +//// [objectLiteralWithSemicolons3.js] +var v = { + a: , + b: , + c: +}; diff --git a/tests/baselines/reference/objectLiteralWithSemicolons4.errors.txt b/tests/baselines/reference/objectLiteralWithSemicolons4.errors.txt new file mode 100644 index 00000000000..9938f1629b8 --- /dev/null +++ b/tests/baselines/reference/objectLiteralWithSemicolons4.errors.txt @@ -0,0 +1,9 @@ +tests/cases/compiler/objectLiteralWithSemicolons4.ts(3,1): error TS1005: ':' expected. + + +==== tests/cases/compiler/objectLiteralWithSemicolons4.ts (1 errors) ==== + var v = { + a + ; + ~ +!!! error TS1005: ':' expected. \ No newline at end of file diff --git a/tests/baselines/reference/objectLiteralWithSemicolons4.js b/tests/baselines/reference/objectLiteralWithSemicolons4.js new file mode 100644 index 00000000000..9e1e3dea4b9 --- /dev/null +++ b/tests/baselines/reference/objectLiteralWithSemicolons4.js @@ -0,0 +1,9 @@ +//// [objectLiteralWithSemicolons4.ts] +var v = { + a +; + +//// [objectLiteralWithSemicolons4.js] +var v = { + a: +}; diff --git a/tests/baselines/reference/objectLiteralWithSemicolons5.errors.txt b/tests/baselines/reference/objectLiteralWithSemicolons5.errors.txt new file mode 100644 index 00000000000..7373c3d535d --- /dev/null +++ b/tests/baselines/reference/objectLiteralWithSemicolons5.errors.txt @@ -0,0 +1,19 @@ +tests/cases/compiler/objectLiteralWithSemicolons5.ts(1,20): error TS1005: ',' expected. +tests/cases/compiler/objectLiteralWithSemicolons5.ts(1,25): error TS2304: Cannot find name 'b'. +tests/cases/compiler/objectLiteralWithSemicolons5.ts(1,26): error TS1005: ',' expected. +tests/cases/compiler/objectLiteralWithSemicolons5.ts(1,32): error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. +tests/cases/compiler/objectLiteralWithSemicolons5.ts(1,41): error TS1005: ',' expected. + + +==== tests/cases/compiler/objectLiteralWithSemicolons5.ts (5 errors) ==== + var v = { foo() { }; a: b; get baz() { }; } + ~ +!!! error TS1005: ',' expected. + ~ +!!! error TS2304: Cannot find name 'b'. + ~ +!!! error TS1005: ',' expected. + ~~~ +!!! error TS2378: A 'get' accessor must return a value or consist of a single 'throw' statement. + ~ +!!! error TS1005: ',' expected. \ No newline at end of file diff --git a/tests/baselines/reference/objectLiteralWithSemicolons5.js b/tests/baselines/reference/objectLiteralWithSemicolons5.js new file mode 100644 index 00000000000..082ca6829a0 --- /dev/null +++ b/tests/baselines/reference/objectLiteralWithSemicolons5.js @@ -0,0 +1,7 @@ +//// [objectLiteralWithSemicolons5.ts] +var v = { foo() { }; a: b; get baz() { }; } + +//// [objectLiteralWithSemicolons5.js] +var v = { foo: function () { +}, a: b, get baz() { +} }; diff --git a/tests/baselines/reference/parser512097.errors.txt b/tests/baselines/reference/parser512097.errors.txt index 3963d969c34..87f8a5af151 100644 --- a/tests/baselines/reference/parser512097.errors.txt +++ b/tests/baselines/reference/parser512097.errors.txt @@ -1,13 +1,10 @@ tests/cases/conformance/parser/ecmascript5/RegressionTests/parser512097.ts(1,14): error TS1005: ':' expected. -tests/cases/conformance/parser/ecmascript5/RegressionTests/parser512097.ts(1,16): error TS1128: Declaration or statement expected. -==== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser512097.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/RegressionTests/parser512097.ts (1 errors) ==== var tt = { aa; } // After this point, no useful parsing occurs in the entire file ~ !!! error TS1005: ':' expected. - ~ -!!! error TS1128: Declaration or statement expected. if (true) { } \ No newline at end of file diff --git a/tests/baselines/reference/parser512097.js b/tests/baselines/reference/parser512097.js index f507b86ccd7..ce73dadf3bc 100644 --- a/tests/baselines/reference/parser512097.js +++ b/tests/baselines/reference/parser512097.js @@ -5,6 +5,6 @@ if (true) { } //// [parser512097.js] -var tt = { aa: }; +var tt = { aa: }; // After this point, no useful parsing occurs in the entire file if (true) { } diff --git a/tests/baselines/reference/parserErrorRecovery_ObjectLiteral2.errors.txt b/tests/baselines/reference/parserErrorRecovery_ObjectLiteral2.errors.txt index 55667d42de5..770fee897d3 100644 --- a/tests/baselines/reference/parserErrorRecovery_ObjectLiteral2.errors.txt +++ b/tests/baselines/reference/parserErrorRecovery_ObjectLiteral2.errors.txt @@ -1,11 +1,14 @@ tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral2.ts(2,1): error TS1005: ':' expected. tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral2.ts(2,7): error TS1005: ':' expected. +tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral2.ts(2,8): error TS1005: '}' expected. -==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral2.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral2.ts (3 errors) ==== var v = { a return; ~~~~~~ !!! error TS1005: ':' expected. ~ -!!! error TS1005: ':' expected. \ No newline at end of file +!!! error TS1005: ':' expected. + +!!! error TS1005: '}' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserErrorRecovery_ObjectLiteral3.errors.txt b/tests/baselines/reference/parserErrorRecovery_ObjectLiteral3.errors.txt index 30bd3048d21..8f319f6dcd7 100644 --- a/tests/baselines/reference/parserErrorRecovery_ObjectLiteral3.errors.txt +++ b/tests/baselines/reference/parserErrorRecovery_ObjectLiteral3.errors.txt @@ -1,11 +1,14 @@ tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral3.ts(2,1): error TS1109: Expression expected. tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral3.ts(2,7): error TS1005: ':' expected. +tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral3.ts(2,8): error TS1005: '}' expected. -==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral3.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral3.ts (3 errors) ==== var v = { a: return; ~~~~~~ !!! error TS1109: Expression expected. ~ -!!! error TS1005: ':' expected. \ No newline at end of file +!!! error TS1005: ':' expected. + +!!! error TS1005: '}' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserErrorRecovery_ObjectLiteral4.errors.txt b/tests/baselines/reference/parserErrorRecovery_ObjectLiteral4.errors.txt index bc8ec098f49..0f8415e9015 100644 --- a/tests/baselines/reference/parserErrorRecovery_ObjectLiteral4.errors.txt +++ b/tests/baselines/reference/parserErrorRecovery_ObjectLiteral4.errors.txt @@ -1,11 +1,14 @@ tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral4.ts(2,1): error TS1005: ',' expected. tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral4.ts(2,7): error TS1005: ':' expected. +tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral4.ts(2,8): error TS1005: '}' expected. -==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral4.ts (2 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral4.ts (3 errors) ==== var v = { a: 1 return; ~~~~~~ !!! error TS1005: ',' expected. ~ -!!! error TS1005: ':' expected. \ No newline at end of file +!!! error TS1005: ':' expected. + +!!! error TS1005: '}' expected. \ No newline at end of file diff --git a/tests/baselines/reference/parserErrorRecovery_ObjectLiteral5.errors.txt b/tests/baselines/reference/parserErrorRecovery_ObjectLiteral5.errors.txt index fad6af4cfa9..7f1f15d7c6d 100644 --- a/tests/baselines/reference/parserErrorRecovery_ObjectLiteral5.errors.txt +++ b/tests/baselines/reference/parserErrorRecovery_ObjectLiteral5.errors.txt @@ -1,8 +1,11 @@ tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral5.ts(2,7): error TS1005: ':' expected. +tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral5.ts(2,8): error TS1005: '}' expected. -==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral5.ts (1 errors) ==== +==== tests/cases/conformance/parser/ecmascript5/ErrorRecovery/ObjectLiterals/parserErrorRecovery_ObjectLiteral5.ts (2 errors) ==== var v = { a: 1, return; ~ -!!! error TS1005: ':' expected. \ No newline at end of file +!!! error TS1005: ':' expected. + +!!! error TS1005: '}' expected. \ No newline at end of file diff --git a/tests/baselines/reference/privateIndexer2.errors.txt b/tests/baselines/reference/privateIndexer2.errors.txt index 405167d68f8..9f087b22379 100644 --- a/tests/baselines/reference/privateIndexer2.errors.txt +++ b/tests/baselines/reference/privateIndexer2.errors.txt @@ -3,10 +3,9 @@ tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(4,17) tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(4,23): error TS1005: ',' expected. tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(4,24): error TS1136: Property assignment expected. tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(4,32): error TS1005: ':' expected. -tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(5,1): error TS1128: Declaration or statement expected. -==== tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts (6 errors) ==== +==== tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts (5 errors) ==== // private indexers not allowed var x = { @@ -22,8 +21,6 @@ tests/cases/conformance/classes/indexMemberDeclarations/privateIndexer2.ts(5,1): ~ !!! error TS1005: ':' expected. } - ~ -!!! error TS1128: Declaration or statement expected. var y: { private[x: string]: string; diff --git a/tests/cases/compiler/objectLiteralWithSemicolons1.ts b/tests/cases/compiler/objectLiteralWithSemicolons1.ts new file mode 100644 index 00000000000..d9b83bd84c1 --- /dev/null +++ b/tests/cases/compiler/objectLiteralWithSemicolons1.ts @@ -0,0 +1 @@ +var v = { a; b; c } \ No newline at end of file diff --git a/tests/cases/compiler/objectLiteralWithSemicolons2.ts b/tests/cases/compiler/objectLiteralWithSemicolons2.ts new file mode 100644 index 00000000000..83fe8fbe00a --- /dev/null +++ b/tests/cases/compiler/objectLiteralWithSemicolons2.ts @@ -0,0 +1,5 @@ +var v = { + a; + b; + c +} \ No newline at end of file diff --git a/tests/cases/compiler/objectLiteralWithSemicolons3.ts b/tests/cases/compiler/objectLiteralWithSemicolons3.ts new file mode 100644 index 00000000000..96b4c10b5e0 --- /dev/null +++ b/tests/cases/compiler/objectLiteralWithSemicolons3.ts @@ -0,0 +1,5 @@ +var v = { + a; + b; + c; +} \ No newline at end of file diff --git a/tests/cases/compiler/objectLiteralWithSemicolons4.ts b/tests/cases/compiler/objectLiteralWithSemicolons4.ts new file mode 100644 index 00000000000..a216bb84912 --- /dev/null +++ b/tests/cases/compiler/objectLiteralWithSemicolons4.ts @@ -0,0 +1,3 @@ +var v = { + a +; \ No newline at end of file diff --git a/tests/cases/compiler/objectLiteralWithSemicolons5.ts b/tests/cases/compiler/objectLiteralWithSemicolons5.ts new file mode 100644 index 00000000000..894c26d69c9 --- /dev/null +++ b/tests/cases/compiler/objectLiteralWithSemicolons5.ts @@ -0,0 +1 @@ +var v = { foo() { }; a: b; get baz() { }; } \ No newline at end of file From 36b6f4e1b724765ed8e7ec6364f216456189c7ad Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Fri, 6 Feb 2015 18:45:09 -0800 Subject: [PATCH 20/39] Preserve single line blocks when emitting. --- src/compiler/emitter.ts | 125 ++- .../reference/ArrowFunctionExpression1.js | 3 +- ...hModuleMemberThatUsesClassTypeParameter.js | 3 +- ...GenericClassStaticFunctionOfTheSameName.js | 3 +- ...GenericClassStaticFunctionOfTheSameName.js | 3 +- .../baselines/reference/ClassDeclaration11.js | 3 +- .../baselines/reference/ClassDeclaration13.js | 3 +- .../baselines/reference/ClassDeclaration21.js | 3 +- .../baselines/reference/ClassDeclaration22.js | 3 +- .../reference/FunctionDeclaration12_es6.js | 3 +- .../reference/FunctionDeclaration4.js | 3 +- .../reference/FunctionDeclaration6.js | 3 +- .../reference/FunctionExpression1_es6.js | 3 +- .../reference/FunctionExpression2_es6.js | 3 +- .../FunctionPropertyAssignments1_es6.js | 3 +- .../FunctionPropertyAssignments2_es6.js | 3 +- .../FunctionPropertyAssignments3_es6.js | 3 +- .../FunctionPropertyAssignments5_es6.js | 3 +- .../FunctionPropertyAssignments6_es6.js | 3 +- .../reference/MemberAccessorDeclaration15.js | 3 +- .../MemberFunctionDeclaration1_es6.js | 3 +- .../MemberFunctionDeclaration2_es6.js | 3 +- .../MemberFunctionDeclaration3_es6.js | 3 +- .../MemberFunctionDeclaration4_es6.js | 3 +- .../MemberFunctionDeclaration7_es6.js | 3 +- tests/baselines/reference/Protected4.js | 3 +- tests/baselines/reference/Protected5.js | 3 +- tests/baselines/reference/Protected6.js | 3 +- tests/baselines/reference/Protected7.js | 3 +- .../reference/accessibilityModifiers.js | 42 +- .../accessorParameterAccessibilityModifier.js | 6 +- tests/baselines/reference/accessorWithES3.js | 3 +- tests/baselines/reference/accessorWithES5.js | 3 +- .../reference/accessorWithInitializer.js | 8 +- .../reference/accessorWithRestParam.js | 14 +- .../accessors_spec_section-4.5_error-cases.js | 6 +- .../accessors_spec_section-4.5_inference.js | 18 +- .../additionOperatorWithAnyAndEveryType.js | 6 +- .../additionOperatorWithInvalidOperands.js | 6 +- ...OperatorWithNullValueAndInvalidOperator.js | 3 +- .../additionOperatorWithTypeParameter.js | 3 +- ...torWithUndefinedValueAndInvalidOperands.js | 3 +- .../anyAssignabilityInInheritance.js | 3 +- .../reference/anyAssignableToEveryType2.js | 3 +- tests/baselines/reference/anyDeclare.js | 3 +- .../reference/anyIdenticalToItself.js | 3 +- .../reference/arrayLiteralContextualType.js | 6 +- .../arrayLiteralInNonVarArgParameter.js | 7 +- .../reference/arrayOfFunctionTypes3.js | 3 +- .../arrayReferenceWithoutTypeArgs.js | 3 +- .../reference/arrowFunctionExpressions.js | 3 +- .../reference/arrowFunctionsMissingTokens.js | 30 +- .../assignLambdaToNominalSubtypeOfFunction.js | 3 +- .../reference/assignmentCompatBug3.js | 3 +- .../reference/assignmentCompatBug5.js | 12 +- ...CompatInterfaceWithStringIndexSignature.js | 6 +- .../reference/assignmentCompatOnNew.js | 3 +- ...-apply-member-off-of-function-interface.js | 9 +- ...g-call-member-off-of-function-interface.js | 9 +- .../reference/assignmentLHSIsValue.js | 9 +- .../assignmentStricterConstraints.js | 3 +- .../reference/assignmentToFunction.js | 3 +- .../assignmentToObjectAndFunction.js | 12 +- .../assignmentToParenthesizedIdentifiers.js | 3 +- .../reference/assignmentToReferenceTypes.js | 3 +- tests/baselines/reference/assignments.js | 3 +- ...entedTypeAssignmentCompatIndexSignature.js | 3 +- ...ugmentedTypeBracketAccessIndexSignature.js | 3 +- ...augmentedTypeBracketNamedPropertyAccess.js | 3 +- .../reference/augmentedTypesClass.js | 6 +- .../reference/augmentedTypesClass2a.js | 9 +- .../reference/augmentedTypesClass3.js | 12 +- .../reference/augmentedTypesClass4.js | 6 +- .../baselines/reference/augmentedTypesEnum.js | 9 +- .../augmentedTypesExternalModule1.js | 3 +- .../reference/augmentedTypesFunction.js | 39 +- .../reference/augmentedTypesModules.js | 39 +- .../reference/augmentedTypesModules2.js | 24 +- .../reference/augmentedTypesModules3.js | 3 +- .../reference/augmentedTypesModules3b.js | 9 +- .../reference/augmentedTypesModules4.js | 3 +- .../baselines/reference/augmentedTypesVar.js | 9 +- tests/baselines/reference/autolift3.js | 3 +- .../reference/baseTypeAfterDerivedType.js | 7 +- .../bestCommonTypeOfConditionalExpressions.js | 12 +- .../bitwiseNotOperatorWithAnyOtherType.js | 3 +- tests/baselines/reference/callOverloads1.js | 3 +- tests/baselines/reference/callOverloads2.js | 3 +- tests/baselines/reference/callOverloads3.js | 3 +- tests/baselines/reference/callOverloads4.js | 3 +- tests/baselines/reference/callOverloads5.js | 3 +- ...tureWithOptionalParameterAndInitializer.js | 28 +- .../callSignatureWithoutAnnotationsOrBody.js | 3 +- ...sWithAccessibilityModifiersOnParameters.js | 48 +- .../callSignaturesWithDuplicateParameters.js | 48 +- .../callSignaturesWithOptionalParameters.js | 21 +- .../callSignaturesWithOptionalParameters2.js | 12 +- ...callSignaturesWithParameterInitializers.js | 28 +- ...allSignaturesWithParameterInitializers2.js | 16 +- .../callWithWrongNumberOfTypeArguments.js | 3 +- .../reference/captureThisInSuperCall.js | 3 +- .../reference/castExpressionParentheses.js | 6 +- tests/baselines/reference/catch.js | 12 +- .../baselines/reference/chainedImportAlias.js | 3 +- .../reference/classBodyWithStatements.js | 3 +- .../reference/classExtendingClass.js | 12 +- .../reference/classExtendingPrimitive.js | 3 +- .../reference/classExtendingPrimitive2.js | 3 +- .../reference/classExtendsEveryObjectType.js | 9 +- .../reference/classExtendsEveryObjectType2.js | 6 +- .../classExtendsValidConstructorFunction.js | 3 +- .../classImplementsImportedInterface.js | 3 +- .../reference/classMethodWithKeywordName1.js | 3 +- tests/baselines/reference/classOrder2.js | 3 +- .../reference/classOverloadForFunction.js | 3 +- .../reference/classPropertyAsPrivate.js | 12 +- .../reference/classPropertyAsProtected.js | 12 +- .../classPropertyIsPublicByDefault.js | 12 +- .../baselines/reference/classWithEmptyBody.js | 6 +- .../reference/classWithMultipleBaseClasses.js | 12 +- ...hOnlyPublicMembersEquivalentToInterface.js | 3 +- ...OnlyPublicMembersEquivalentToInterface2.js | 3 +- .../reference/classWithOptionalParameter.js | 6 +- ...ssWithOverloadImplementationOfWrongName.js | 3 +- ...sWithOverloadImplementationOfWrongName2.js | 3 +- .../reference/classWithStaticMembers.js | 3 +- tests/baselines/reference/classdecl.js | 3 +- .../cloduleAcrossModuleDefinitions.js | 6 +- tests/baselines/reference/cloduleTest1.js | 3 +- .../reference/cloduleWithDuplicateMember1.js | 9 +- .../reference/cloduleWithDuplicateMember2.js | 9 +- ...lisionCodeGenModuleWithFunctionChildren.js | 4 +- ...ollisionCodeGenModuleWithMethodChildren.js | 4 +- .../reference/commentEmitAtEndOfFile1.js | 3 +- .../reference/commentInMethodCall.js | 3 +- .../reference/commentOnClassAccessor2.js | 3 +- .../reference/commentsOnObjectLiteral3.js | 3 +- .../reference/compoundAssignmentLHSIsValue.js | 18 +- .../reference/computedPropertyNames1.js | 3 +- .../reference/computedPropertyNames10.js | 33 +- .../reference/computedPropertyNames11.js | 15 +- .../reference/computedPropertyNames13.js | 33 +- .../reference/computedPropertyNames14.js | 18 +- .../reference/computedPropertyNames15.js | 9 +- .../reference/computedPropertyNames16.js | 15 +- .../reference/computedPropertyNames17.js | 9 +- .../reference/computedPropertyNames2.js | 18 +- .../reference/computedPropertyNames21.js | 3 +- .../reference/computedPropertyNames22.js | 3 +- .../reference/computedPropertyNames23.js | 3 +- .../reference/computedPropertyNames24.js | 3 +- .../reference/computedPropertyNames25.js | 3 +- .../reference/computedPropertyNames26.js | 3 +- .../reference/computedPropertyNames27.js | 3 +- .../reference/computedPropertyNames28.js | 3 +- .../reference/computedPropertyNames29.js | 3 +- .../reference/computedPropertyNames3.js | 19 +- .../reference/computedPropertyNames30.js | 3 +- .../reference/computedPropertyNames31.js | 3 +- .../reference/computedPropertyNames32.js | 3 +- .../reference/computedPropertyNames33.js | 3 +- .../reference/computedPropertyNames34.js | 3 +- .../reference/computedPropertyNames36.js | 3 +- .../reference/computedPropertyNames37.js | 3 +- .../reference/computedPropertyNames38.js | 3 +- .../reference/computedPropertyNames39.js | 3 +- .../reference/computedPropertyNames43.js | 3 +- .../reference/computedPropertyNames44.js | 3 +- .../reference/computedPropertyNames45.js | 3 +- .../reference/computedPropertyNames9.js | 3 +- .../computedPropertyNamesContextualType6.js | 3 +- .../computedPropertyNamesContextualType7.js | 3 +- .../computedPropertyNamesDeclarationEmit1.js | 6 +- .../computedPropertyNamesDeclarationEmit2.js | 6 +- .../computedPropertyNamesDeclarationEmit5.js | 6 +- .../computedPropertyNamesOnOverloads.js | 3 +- ...onditionalOperatorConditionIsObjectType.js | 3 +- ...cateOverloadsCausedByOverloadResolution.js | 3 +- .../reference/conflictMarkerTrivia2.js | 3 +- .../reference/conflictingTypeAnnotatedVar.js | 6 +- .../reference/constDeclarations-access2.js | 6 +- .../reference/constDeclarations-access3.js | 6 +- .../reference/constDeclarations-access4.js | 6 +- .../reference/constDeclarations-access5.js | 6 +- .../reference/constDeclarations-errors.js | 12 +- .../reference/constantOverloadFunction.js | 12 +- .../constantOverloadFunctionNoSubtypeError.js | 12 +- ...nstraintCheckInGenericBaseTypeReference.js | 3 +- .../baselines/reference/constraintErrors1.js | 3 +- .../constraintSatisfactionWithEmptyObject.js | 6 +- .../constructorArgWithGenericCallSignature.js | 3 +- .../reference/constructorOverloads1.js | 6 +- .../reference/constructorOverloads2.js | 6 +- .../reference/constructorOverloads3.js | 3 +- .../constructorReturnsInvalidType.js | 3 +- ...constructorWithIncompleteTypeAnnotation.js | 18 +- .../contextualTypeAppliedToVarArgs.js | 3 +- tests/baselines/reference/contextualTyping.js | 3 +- .../reference/contextualTyping.js.map | 2 +- .../reference/contextualTyping.sourcemap.txt | 882 +++++++++--------- .../baselines/reference/contextualTyping25.js | 3 +- .../baselines/reference/contextualTyping26.js | 3 +- .../baselines/reference/contextualTyping27.js | 3 +- .../baselines/reference/contextualTyping28.js | 3 +- .../baselines/reference/contextualTyping29.js | 3 +- .../baselines/reference/contextualTyping30.js | 3 +- .../baselines/reference/contextualTyping31.js | 3 +- .../baselines/reference/contextualTyping32.js | 3 +- .../baselines/reference/contextualTyping33.js | 3 +- .../contextualTypingArrayOfLambdas.js | 5 +- .../reference/contextualTypingOfAccessors.js | 3 +- ...ontextualTypingOfConditionalExpression2.js | 3 +- ...ontextualTypingOfLambdaReturnExpression.js | 3 +- ...ualTypingOfLambdaWithMultipleSignatures.js | 3 +- .../contextualTypingOfObjectLiterals.js | 3 +- .../contextualTypingOfObjectLiterals2.js | 3 +- .../baselines/reference/convertKeywordsYes.js | 3 +- tests/baselines/reference/covariance1.js | 3 +- .../declFileAliasUseBeforeDeclaration.js | 3 +- ...declFileForClassWithMultipleBaseClasses.js | 18 +- ...leForClassWithPrivateOverloadedFunction.js | 3 +- .../reference/declFileGenericType.js | 3 +- .../reference/declFilePrivateStatic.js | 12 +- .../reference/declFileRegressionTests.js | 3 +- ...RestParametersOfFunctionAndFunctionType.js | 19 +- tests/baselines/reference/declInput-2.js | 6 +- tests/baselines/reference/declInput4.js | 3 +- .../declarationEmit_nameConflicts.js | 18 +- .../declarationEmit_nameConflicts2.js | 3 +- .../declarationEmit_nameConflicts3.js | 12 +- .../declarationEmit_protectedMembers.js | 6 +- ...eratorWithAnyOtherTypeInvalidOperations.js | 3 +- .../defaultArgsInFunctionExpressions.js | 16 +- .../reference/defaultArgsInOverloads.js | 12 +- .../defaultValueInFunctionOverload1.js | 4 +- .../deleteOperatorWithAnyOtherType.js | 3 +- .../derivedClassIncludesInheritedMembers.js | 12 +- .../derivedClassOverridesProtectedMembers.js | 24 +- .../derivedClassOverridesProtectedMembers2.js | 24 +- .../derivedClassOverridesProtectedMembers3.js | 24 +- .../derivedClassOverridesPublicMembers.js | 24 +- .../reference/derivedClassTransitivity.js | 9 +- .../reference/derivedClassTransitivity2.js | 9 +- .../reference/derivedClassTransitivity3.js | 9 +- .../reference/derivedClassTransitivity4.js | 9 +- ...ivateInstanceShadowingProtectedInstance.js | 6 +- ...hPrivateInstanceShadowingPublicInstance.js | 6 +- ...thPrivateStaticShadowingProtectedStatic.js | 6 +- ...sWithPrivateStaticShadowingPublicStatic.js | 6 +- .../reference/doWhileBreakStatements.js | 3 +- .../reference/doWhileContinueStatements.js | 3 +- tests/baselines/reference/doWhileLoop.js | 3 +- .../reference/dottedSymbolResolution1.js | 3 +- .../duplicateIdentifierInCatchBlock.js | 21 +- ...ateIdentifiersAcrossContainerBoundaries.js | 9 +- .../duplicateObjectLiteralProperty.js | 3 +- .../reference/duplicatePropertyNames.js | 18 +- .../duplicateSymbolsExportMatching.js | 3 +- .../reference/duplicateTypeParameters1.js | 3 +- .../reference/duplicateTypeParameters2.js | 6 +- tests/baselines/reference/elaboratedErrors.js | 3 +- .../baselines/reference/emitArrowFunction.js | 20 +- .../reference/emitArrowFunctionAsIs.js | 9 +- .../reference/emitArrowFunctionAsIsES6.js | 9 +- .../reference/emitArrowFunctionES6.js | 15 +- .../emitArrowFunctionThisCapturing.js | 3 +- .../emitArrowFunctionThisCapturingES6.js | 3 +- .../emitArrowFunctionWhenUsingArguments.js | 3 +- .../emitArrowFunctionWhenUsingArgumentsES6.js | 3 +- .../reference/emitArrowFunctionsAsIs.js | 9 +- .../reference/emitArrowFunctionsAsIsES6.js | 9 +- .../emitDefaultParametersFunction.js | 24 +- .../emitDefaultParametersFunctionES6.js | 12 +- ...emitDefaultParametersFunctionExpression.js | 49 +- ...tDefaultParametersFunctionExpressionES6.js | 21 +- .../emitDefaultParametersFunctionProperty.js | 24 +- ...mitDefaultParametersFunctionPropertyES6.js | 12 +- .../reference/emitDefaultParametersMethod.js | 24 +- .../emitDefaultParametersMethodES6.js | 12 +- .../reference/emitRestParametersFunction.js | 14 +- .../emitRestParametersFunctionES6.js | 6 +- .../emitRestParametersFunctionExpression.js | 28 +- ...emitRestParametersFunctionExpressionES6.js | 12 +- .../emitRestParametersFunctionProperty.js | 7 +- .../emitRestParametersFunctionPropertyES6.js | 3 +- .../reference/emitRestParametersMethod.js | 28 +- .../reference/emitRestParametersMethodES6.js | 12 +- .../reference/emptyTypeArgumentList.js | 3 +- .../enumAssignabilityInInheritance.js | 3 +- .../enumIsNotASubtypeOfAnythingButNumber.js | 3 +- .../errorOnContextuallyTypedReturnType.js | 6 +- .../reference/errorSuperPropertyAccess.js | 12 +- .../reference/errorsInGenericTypeReference.js | 12 +- tests/baselines/reference/es6ClassTest2.js | 13 +- tests/baselines/reference/es6ClassTest3.js | 6 +- tests/baselines/reference/es6ClassTest9.js | 3 +- .../baselines/reference/exportAlreadySeen.js | 3 +- .../exportAssignmentMergedInterface.js | 3 +- tests/baselines/reference/exportCodeGen.js | 6 +- .../extendAndImplementTheSameBaseType.js | 6 +- .../extendAndImplementTheSameBaseType2.js | 3 +- tests/baselines/reference/extendArray.js | 3 +- .../reference/extendNonClassSymbol1.js | 3 +- .../reference/extendsClauseAlreadySeen.js | 3 +- .../reference/extendsClauseAlreadySeen2.js | 3 +- tests/baselines/reference/externModule.js | 3 +- ...ceOfImportDeclarationWithExportModifier.js | 3 +- ...ernceResolutionOrderInImportDeclaration.js | 3 +- .../reference/fatarrowfunctionsErrors.js | 16 +- .../fatarrowfunctionsOptionalArgs.js | 7 +- ...eParameterInSignatureWithRestParameters.js | 3 +- tests/baselines/reference/for-inStatements.js | 99 +- .../reference/for-inStatementsInvalid.js | 78 +- .../baselines/reference/forBreakStatements.js | 3 +- .../reference/forContinueStatements.js | 3 +- .../reference/forInBreakStatements.js | 3 +- .../reference/forInContinueStatements.js | 3 +- tests/baselines/reference/forStatements.js | 54 +- .../forStatementsMultipleInvalidDecl.js | 54 +- .../forStatementsMultipleValidDecl.js | 69 +- tests/baselines/reference/funClodule.js | 6 +- tests/baselines/reference/funcdecl.js | 3 +- .../functionAndInterfaceWithSeparateErrors.js | 3 +- .../functionAndPropertyNameConflict.js | 3 +- .../reference/functionArgShadowing.js | 6 +- .../baselines/reference/functionAssignment.js | 18 +- tests/baselines/reference/functionCall10.js | 7 +- tests/baselines/reference/functionCall11.js | 3 +- tests/baselines/reference/functionCall12.js | 3 +- tests/baselines/reference/functionCall13.js | 7 +- tests/baselines/reference/functionCall14.js | 7 +- tests/baselines/reference/functionCall15.js | 7 +- tests/baselines/reference/functionCall16.js | 7 +- tests/baselines/reference/functionCall17.js | 7 +- tests/baselines/reference/functionCall6.js | 3 +- tests/baselines/reference/functionCall8.js | 3 +- tests/baselines/reference/functionCall9.js | 3 +- .../functionConstraintSatisfaction2.js | 6 +- ...ctionExpressionAndLambdaMatchesFunction.js | 3 +- .../reference/functionImplementations.js | 3 +- .../reference/functionNameConflicts.js | 15 +- .../reference/functionOverloadAmbiguity1.js | 6 +- .../reference/functionOverloadErrors.js | 48 +- .../reference/functionOverloadErrorsSyntax.js | 9 +- ...nctionOverloadImplementationOfWrongName.js | 3 +- ...ctionOverloadImplementationOfWrongName2.js | 3 +- .../reference/functionOverloads10.js | 3 +- .../reference/functionOverloads24.js | 3 +- .../baselines/reference/functionOverloads5.js | 3 +- .../baselines/reference/functionOverloads6.js | 3 +- tests/baselines/reference/functionReturn.js | 6 +- tests/baselines/reference/functionType.js | 3 +- ...nWithAnyReturnTypeAndNoReturnExpression.js | 9 +- .../functionWithMultipleReturnStatements2.js | 12 +- .../functionsWithModifiersInBlocks1.js | 3 +- .../reference/funduleSplitAcrossFiles.js | 3 +- .../reference/generatedContextualTyping.js | 133 +-- .../generativeRecursionWithTypeOf.js | 3 +- ...icAssignmentCompatOfFunctionSignatures1.js | 6 +- .../genericCallWithFixedArguments.js | 9 +- .../genericCallWithNonGenericArgs1.js | 3 +- ...icCallWithObjectTypeArgsAndConstraints4.js | 7 +- ...icCallWithObjectTypeArgsAndConstraints5.js | 3 +- ...icCallWithObjectTypeArgsAndInitializers.js | 20 +- .../genericCallbacksAndClassHierarchy.js | 6 +- .../reference/genericCallsWithoutParens.js | 3 +- ...cClassPropertyInheritanceSpecialization.js | 3 +- ...nericClassWithStaticsUsingTypeArguments.js | 3 +- .../reference/genericCloduleInModule.js | 6 +- .../reference/genericCloduleInModule2.js | 6 +- .../genericFunctionHasFreshTypeArgs.js | 3 +- .../genericFunctionSpecializations1.js | 6 +- ...genericFunctionsWithOptionalParameters3.js | 3 +- .../reference/genericOfACloduleType1.js | 3 +- .../reference/genericOfACloduleType2.js | 3 +- .../reference/genericOverloadSignatures.js | 3 +- .../reference/genericTypeAssertions1.js | 3 +- .../reference/genericTypeAssertions2.js | 3 +- ...genericTypeReferenceWithoutTypeArgument.js | 6 +- ...enericTypeReferenceWithoutTypeArgument2.js | 6 +- .../genericTypeWithNonGenericBaseMisMatch.js | 3 +- .../genericWithIndexerOfTypeParameterType2.js | 3 +- .../genericsWithDuplicateTypeParameters1.js | 9 +- .../genericsWithoutTypeParameters1.js | 6 +- .../reference/getAndSetAsMemberNames.js | 3 +- .../reference/getAndSetNotIdenticalType.js | 3 +- .../reference/getterSetterNonAccessor.js | 3 +- .../baselines/reference/gettersAndSetters.js | 6 +- .../gettersAndSettersAccessibility.js | 3 +- .../reference/gettersAndSettersErrors.js | 9 +- .../reference/gettersAndSettersTypesAgree.js | 12 +- tests/baselines/reference/giant.js | 204 ++-- .../reference/grammarAmbiguities1.js | 6 +- .../heterogeneousArrayAndOverloads.js | 3 +- .../reference/ifDoWhileStatements.js | 243 ++--- .../reference/implementsClauseAlreadySeen.js | 3 +- ...AnyDeclareFunctionExprWithoutFormalType.js | 9 +- ...icitAnyDeclareFunctionWithoutFormalType.js | 29 +- .../implicitAnyDeclareMemberWithoutType2.js | 3 +- ...itAnyDeclareVariablesWithoutTypeAndInit.js | 3 +- ...tAnyFunctionInvocationWithAnyArguements.js | 18 +- .../baselines/reference/implicitAnyInCatch.js | 9 +- .../reference/implicitAnyWidenToAny.js | 3 +- ...sAnExternalModuleInsideAnInternalModule.js | 3 +- tests/baselines/reference/inOperator.js | 9 +- .../baselines/reference/incompatibleTypes.js | 3 +- ...eratorWithAnyOtherTypeInvalidOperations.js | 3 +- .../reference/inferSecondaryParameter.js | 3 +- ...eArgumentsInSignatureWithRestParameters.js | 24 +- .../inferenceFromParameterlessLambda.js | 3 +- tests/baselines/reference/inheritance1.js | 12 +- ...itanceGrandParentPrivateMemberCollision.js | 6 +- ...tPrivateMemberCollisionWithPublicMember.js | 6 +- ...tPublicMemberCollisionWithPrivateMember.js | 6 +- ...nheritedFunctionAssignmentCompatibility.js | 3 +- .../reference/innerBoundLambdaEmit.js | 3 +- .../instanceMemberAssignsToClassPrototype.js | 6 +- ...nstancePropertiesInheritedIntoClassType.js | 6 +- .../reference/instancePropertyInClassType.js | 6 +- .../instanceofOperatorWithInvalidOperands.js | 3 +- ...tantiateNonGenericTypeWithTypeArguments.js | 3 +- tests/baselines/reference/intTypeCheck.js | 24 +- .../reference/interfaceDeclaration2.js | 3 +- .../reference/interfaceDeclaration4.js | 3 +- .../reference/interfaceExtendingClass.js | 3 +- .../reference/interfaceExtendingClass2.js | 3 +- .../reference/interfaceExtendsClass1.js | 9 +- .../interfaceExtendsClassWithPrivate1.js | 3 +- .../interfaceExtendsClassWithPrivate2.js | 6 +- .../reference/interfaceImplementation1.js | 3 +- .../reference/interfaceImplementation3.js | 3 +- .../reference/interfaceImplementation4.js | 3 +- .../reference/interfaceImplementation5.js | 12 +- tests/baselines/reference/interfaceNaming1.js | 3 +- .../interfaceWithPropertyOfEveryType.js | 3 +- ...aceWithPropertyThatIsPrivateInBaseType2.js | 6 +- .../invalidDoWhileBreakStatements.js | 3 +- .../invalidDoWhileContinueStatements.js | 3 +- .../reference/invalidForBreakStatements.js | 3 +- .../reference/invalidForContinueStatements.js | 3 +- .../reference/invalidForInBreakStatements.js | 3 +- .../invalidForInContinueStatements.js | 3 +- .../invalidModuleWithVarStatements.js | 9 +- .../reference/invalidReturnStatements.js | 18 +- .../reference/invalidTryStatements.js | 18 +- .../reference/invalidTryStatements2.js | 12 +- .../reference/invalidTypeOfTarget.js | 3 +- .../reference/invalidUndefinedAssignments.js | 3 +- .../reference/invalidUndefinedValues.js | 3 +- .../reference/invalidVoidAssignments.js | 3 +- .../baselines/reference/invalidVoidValues.js | 3 +- .../reference/invalidWhileBreakStatements.js | 3 +- .../invalidWhileContinueStatements.js | 3 +- tests/baselines/reference/ipromise4.js | 3 +- .../reference/lastPropertyInLiteralWins.js | 12 +- .../reference/letDeclarations-access.js | 6 +- .../reference/letDeclarations-es5.js | 6 +- tests/baselines/reference/letDeclarations.js | 6 +- .../baselines/reference/literals-negative.js | 6 +- .../reference/localImportNameVsGlobalName.js | 3 +- .../logicalNotOperatorWithAnyOtherType.js | 3 +- .../matchingOfObjectLiteralConstraints.js | 3 +- .../memberFunctionsWithPrivateOverloads.js | 24 +- .../memberFunctionsWithPublicOverloads.js | 24 +- ...mberFunctionsWithPublicPrivateOverloads.js | 36 +- .../reference/mergedDeclarations4.js | 3 +- .../mergedModuleDeclarationCodeGen2.js | 3 +- .../mergedModuleDeclarationCodeGen3.js | 3 +- .../mergedModuleDeclarationCodeGen4.js | 3 +- .../mergedModuleDeclarationCodeGen5.js | 12 +- .../methodContainingLocalFunction.js | 18 +- tests/baselines/reference/missingSelf.js | 6 +- .../reference/missingTypeArguments2.js | 3 +- .../mixingFunctionAndAmbientModule1.js | 6 +- .../mixingStaticAndInstanceOverloads.js | 18 +- .../baselines/reference/moduleCodeGenTest5.js | 12 +- .../reference/moduleInTypePosition1.js | 3 +- .../reference/moduleKeywordRepeatError.js | 3 +- .../moduleMemberWithoutTypeAnnotation1.js | 3 +- .../baselines/reference/moduleNewExportBug.js | 3 +- .../baselines/reference/multiCallOverloads.js | 15 +- .../reference/multiModuleClodule1.js | 12 +- .../reference/multiModuleFundule1.js | 6 +- tests/baselines/reference/nameCollisions.js | 15 +- .../negateOperatorWithAnyOtherType.js | 3 +- .../reference/nestedClassDeclaration.js | 3 +- .../reference/newExpressionWithCast.js | 9 +- .../reference/newFunctionImplicitAny.js | 3 +- .../reference/newOperatorConformance.js | 3 +- .../noImplicitAnyForMethodParameters.js | 6 +- .../noImplicitAnyParametersInBareFunctions.js | 32 +- .../noImplicitAnyParametersInClass.js | 64 +- .../noImplicitAnyParametersInModule.js | 32 +- .../reference/noImplicitAnyWithOverloads.js | 3 +- tests/baselines/reference/noSelfOnVars.js | 3 +- .../nullIsSubtypeOfEverythingButUndefined.js | 9 +- ...icIndexerConstrainsPropertyDeclarations.js | 12 +- .../reference/numericIndexerConstraint1.js | 3 +- .../reference/numericIndexerConstraint2.js | 3 +- .../reference/objectLiteralErrors.js | 9 +- .../reference/objectLiteralErrorsES3.js | 6 +- ...bjectLiteralFunctionArgContextualTyping.js | 3 +- ...jectLiteralFunctionArgContextualTyping2.js | 3 +- .../objectLiteralGettersAndSetters.js | 24 +- .../objectLiteralMemberWithModifiers1.js | 3 +- .../objectLiteralMemberWithModifiers2.js | 3 +- .../objectLiteralMemberWithQuestionMark1.js | 3 +- .../objectLiteralShorthandProperties.js | 3 +- ...ectLiteralShorthandPropertiesAssignment.js | 3 +- ...LiteralShorthandPropertiesAssignmentES6.js | 3 +- ...teralShorthandPropertiesAssignmentError.js | 3 +- .../objectLiteralShorthandPropertiesES6.js | 3 +- ...ndPropertiesErrorFromNotUsingIdentifier.js | 6 +- ...eralShorthandPropertiesFunctionArgument.js | 3 +- ...ralShorthandPropertiesFunctionArgument2.js | 3 +- ...objectTypeHidingMembersOfExtendedObject.js | 6 +- .../objectTypeHidingMembersOfObject.js | 6 +- ...peHidingMembersOfObjectAssignmentCompat.js | 6 +- ...eHidingMembersOfObjectAssignmentCompat2.js | 3 +- .../reference/objectTypesIdentity.js | 51 +- .../reference/objectTypesIdentity2.js | 33 +- .../objectTypesIdentityWithCallSignatures.js | 57 +- .../objectTypesIdentityWithCallSignatures2.js | 57 +- .../objectTypesIdentityWithCallSignatures3.js | 21 +- ...yWithCallSignaturesDifferingParamCounts.js | 57 +- ...WithCallSignaturesDifferingParamCounts2.js | 24 +- ...IdentityWithCallSignaturesWithOverloads.js | 57 +- ...jectTypesIdentityWithComplexConstraints.js | 3 +- ...ectTypesIdentityWithConstructSignatures.js | 48 +- ...ctTypesIdentityWithConstructSignatures2.js | 42 +- ...ConstructSignaturesDifferingParamCounts.js | 42 +- ...tTypesIdentityWithGenericCallSignatures.js | 57 +- ...TypesIdentityWithGenericCallSignatures2.js | 57 +- ...ricCallSignaturesDifferingByConstraints.js | 57 +- ...icCallSignaturesDifferingByConstraints2.js | 63 +- ...icCallSignaturesDifferingByConstraints3.js | 63 +- ...ericCallSignaturesDifferingByReturnType.js | 57 +- ...ricCallSignaturesDifferingByReturnType2.js | 57 +- ...lSignaturesDifferingTypeParameterCounts.js | 57 +- ...SignaturesDifferingTypeParameterCounts2.js | 21 +- ...llSignaturesDifferingTypeParameterNames.js | 57 +- ...WithGenericCallSignaturesOptionalParams.js | 57 +- ...ithGenericCallSignaturesOptionalParams2.js | 57 +- ...ithGenericCallSignaturesOptionalParams3.js | 57 +- ...nstructSignaturesDifferingByConstraints.js | 39 +- ...structSignaturesDifferingByConstraints2.js | 45 +- ...structSignaturesDifferingByConstraints3.js | 45 +- ...onstructSignaturesDifferingByReturnType.js | 45 +- ...nstructSignaturesDifferingByReturnType2.js | 42 +- ...tSignaturesDifferingTypeParameterCounts.js | 39 +- ...ctSignaturesDifferingTypeParameterNames.js | 39 +- ...enericConstructSignaturesOptionalParams.js | 39 +- ...nericConstructSignaturesOptionalParams2.js | 39 +- ...nericConstructSignaturesOptionalParams3.js | 39 +- ...objectTypesIdentityWithNumericIndexers1.js | 69 +- ...objectTypesIdentityWithNumericIndexers2.js | 69 +- ...objectTypesIdentityWithNumericIndexers3.js | 69 +- .../objectTypesIdentityWithOptionality.js | 27 +- .../objectTypesIdentityWithPrivates.js | 69 +- .../objectTypesIdentityWithPrivates2.js | 18 +- .../objectTypesIdentityWithPublics.js | 51 +- .../objectTypesIdentityWithStringIndexers.js | 69 +- .../objectTypesIdentityWithStringIndexers2.js | 69 +- .../objectTypesWithOptionalProperties2.js | 3 +- .../optionalArgsWithDefaultValues.js | 15 +- .../optionalConstructorArgInSuper.js | 3 +- .../reference/optionalParamArgsTest.js | 8 +- .../reference/optionalParamInOverride.js | 6 +- .../reference/optionalPropertiesTest.js | 9 +- .../reference/optionalSetterParam.js | 3 +- .../reference/overloadModifiersMustAgree.js | 6 +- .../overloadOnConstConstraintChecks1.js | 12 +- .../overloadOnConstConstraintChecks2.js | 3 +- .../overloadOnConstConstraintChecks3.js | 3 +- .../overloadOnConstConstraintChecks4.js | 3 +- ...tInObjectLiteralImplementingAnInterface.js | 3 +- ...verloadOnConstNoNonSpecializedSignature.js | 3 +- .../overloadOnConstantsInvalidOverload1.js | 12 +- .../baselines/reference/overloadResolution.js | 3 +- .../overloadResolutionOverCTLambda.js | 3 +- ...CallbacksWithDifferingOptionalityOnArgs.js | 3 +- .../reference/overloadingOnConstants1.js | 12 +- .../overloadingStaticFunctionsInFunctions.js | 3 +- ...sInDifferentContainersDisagreeOnAmbient.js | 3 +- .../reference/overloadsWithinClasses.js | 9 +- ...parameterInitializersForwardReferencing.js | 17 +- tests/baselines/reference/parser509669.js | 3 +- tests/baselines/reference/parser521128.js | 3 +- tests/baselines/reference/parser553699.js | 3 +- .../parserAccessibilityAfterStatic10.js | 3 +- .../parserAccessibilityAfterStatic11.js | 3 +- .../parserAccessibilityAfterStatic14.js | 3 +- .../parserAccessibilityAfterStatic7.js | 3 +- tests/baselines/reference/parserAccessors1.js | 3 +- .../baselines/reference/parserAccessors10.js | 3 +- tests/baselines/reference/parserAccessors2.js | 3 +- tests/baselines/reference/parserAccessors3.js | 3 +- tests/baselines/reference/parserAccessors4.js | 3 +- tests/baselines/reference/parserAccessors7.js | 3 +- tests/baselines/reference/parserAccessors8.js | 3 +- tests/baselines/reference/parserAccessors9.js | 3 +- .../parserAmbiguityWithBinaryOperator1.js | 3 +- .../parserAmbiguityWithBinaryOperator2.js | 3 +- .../parserAmbiguityWithBinaryOperator3.js | 3 +- .../parserAmbiguityWithBinaryOperator4.js | 3 +- .../parserArrowFunctionExpression1.js | 3 +- .../parserArrowFunctionExpression2.js | 3 +- .../parserArrowFunctionExpression3.js | 3 +- .../parserArrowFunctionExpression4.js | 3 +- .../reference/parserClassDeclaration11.js | 3 +- .../reference/parserClassDeclaration13.js | 3 +- .../reference/parserClassDeclaration16.js | 3 +- .../reference/parserClassDeclaration19.js | 3 +- .../reference/parserClassDeclaration20.js | 3 +- .../reference/parserClassDeclaration21.js | 3 +- .../reference/parserClassDeclaration22.js | 3 +- .../reference/parserComputedPropertyName12.js | 3 +- .../reference/parserComputedPropertyName17.js | 3 +- .../reference/parserComputedPropertyName24.js | 3 +- .../reference/parserComputedPropertyName3.js | 3 +- .../reference/parserComputedPropertyName33.js | 3 +- .../reference/parserComputedPropertyName38.js | 3 +- .../reference/parserComputedPropertyName39.js | 3 +- .../reference/parserComputedPropertyName4.js | 3 +- .../reference/parserComputedPropertyName40.js | 3 +- .../reference/parserComputedPropertyName5.js | 3 +- .../reference/parserES3Accessors1.js | 3 +- .../reference/parserES3Accessors2.js | 3 +- .../reference/parserES3Accessors3.js | 3 +- .../reference/parserES3Accessors4.js | 3 +- .../parserES5ComputedPropertyName3.js | 3 +- .../parserES5ComputedPropertyName4.js | 3 +- .../parserErrantSemicolonInClass1.js | 3 +- .../reference/parserErrorRecovery_Block3.js | 3 +- .../parserErrorRecovery_ParameterList6.js | 3 +- .../reference/parserFunctionDeclaration4.js | 3 +- .../reference/parserFunctionDeclaration5.js | 3 +- .../reference/parserFunctionDeclaration6.js | 3 +- .../parserFunctionPropertyAssignment1.js | 3 +- .../parserFunctionPropertyAssignment2.js | 3 +- .../parserFunctionPropertyAssignment3.js | 3 +- .../parserFunctionPropertyAssignment4.js | 3 +- tests/baselines/reference/parserFuzz1.js | 6 +- .../parserGetAccessorWithTypeParameters1.js | 3 +- .../reference/parserMemberAccessor1.js | 6 +- .../parserMemberAccessorDeclaration1.js | 3 +- .../parserMemberAccessorDeclaration10.js | 3 +- .../parserMemberAccessorDeclaration11.js | 3 +- .../parserMemberAccessorDeclaration12.js | 3 +- .../parserMemberAccessorDeclaration13.js | 3 +- .../parserMemberAccessorDeclaration14.js | 3 +- .../parserMemberAccessorDeclaration15.js | 3 +- .../parserMemberAccessorDeclaration16.js | 4 +- .../parserMemberAccessorDeclaration17.js | 3 +- .../parserMemberAccessorDeclaration18.js | 7 +- .../parserMemberAccessorDeclaration2.js | 3 +- .../parserMemberAccessorDeclaration3.js | 3 +- .../parserMemberAccessorDeclaration4.js | 3 +- .../parserMemberAccessorDeclaration5.js | 3 +- .../parserMemberAccessorDeclaration6.js | 3 +- .../parserMemberAccessorDeclaration7.js | 3 +- .../parserMemberAccessorDeclaration8.js | 3 +- .../parserMemberAccessorDeclaration9.js | 3 +- .../parserMemberFunctionDeclaration1.js | 3 +- .../parserMemberFunctionDeclaration2.js | 3 +- .../parserMemberFunctionDeclaration3.js | 3 +- .../parserMemberFunctionDeclaration4.js | 3 +- .../parserMemberFunctionDeclaration5.js | 3 +- ...erMemberFunctionDeclarationAmbiguities1.js | 24 +- .../reference/parserMissingToken1.js | 6 +- ...rserNoASIOnCallAfterFunctionExpression1.js | 3 +- .../reference/parserParameterList1.js | 3 +- .../reference/parserParameterList10.js | 8 +- .../reference/parserParameterList15.js | 3 +- .../reference/parserParameterList16.js | 3 +- .../reference/parserParameterList2.js | 4 +- .../reference/parserParameterList3.js | 3 +- .../reference/parserParameterList9.js | 7 +- .../parserSetAccessorWithTypeParameters1.js | 3 +- .../parserShorthandPropertyAssignment1.js | 3 +- .../reference/parserSkippedTokens16.js | 9 +- .../baselines/reference/parserStrictMode12.js | 3 +- .../reference/parserUnaryExpression2.js | 3 +- .../parserUnicodeWhitespaceCharacter1.js | 3 +- .../parserUsingConstructorAsIdentifier.js | 9 +- tests/baselines/reference/parserharness.js | 54 +- ...sRecoversWhenHittingUnexpectedSemicolon.js | 3 +- .../reference/partiallyAmbientFundule.js | 3 +- .../reference/plusOperatorWithAnyOtherType.js | 4 +- .../reference/primitiveConstraints1.js | 6 +- tests/baselines/reference/primitiveMembers.js | 3 +- .../reference/primtiveTypesAreIdentical.js | 21 +- .../baselines/reference/privateVisibility.js | 3 +- .../project/nonRelative/amd/lib/bar/a.js | 3 +- .../project/nonRelative/amd/lib/foo/a.js | 3 +- .../project/nonRelative/amd/lib/foo/b.js | 3 +- .../project/nonRelative/node/lib/bar/a.js | 3 +- .../project/nonRelative/node/lib/foo/a.js | 3 +- .../project/nonRelative/node/lib/foo/b.js | 3 +- .../amd/li'b/class'A.js | 3 +- .../node/li'b/class'A.js | 3 +- tests/baselines/reference/propertyAccess.js | 3 +- .../propertyAndAccessorWithSameName.js | 6 +- .../propertyAndFunctionWithSameName.js | 3 +- .../reference/propertyWrappedInTry.js | 3 +- tests/baselines/reference/prototypes.js | 3 +- .../reference/qualifiedModuleLocals.js | 3 +- .../reference/quotedFunctionName1.js | 3 +- .../reference/quotedFunctionName2.js | 3 +- tests/baselines/reference/recur1.js | 6 +- .../recursiveBaseConstructorCreation1.js | 3 +- .../reference/recursiveFunctionTypes.js | 12 +- .../reference/recursiveFunctionTypes1.js | 3 +- .../reference/recursiveInferenceBug.js | 3 +- .../recursiveTypesUsedAsFunctionParameters.js | 6 +- .../reference/restArgAssignmentCompat.js | 3 +- .../baselines/reference/restArgMissingName.js | 7 +- .../reference/restParamAsOptional.js | 15 +- .../reference/restParameterNotLast.js | 3 +- ...estParameterWithoutAnnotationIsAnyArray.js | 49 +- tests/baselines/reference/restParameters.js | 28 +- .../restParametersOfNonArrayTypes.js | 49 +- .../restParametersOfNonArrayTypes2.js | 98 +- .../restParametersWithArrayTypeAnnotations.js | 98 +- .../reference/restParamsWithNonRestParams.js | 21 +- .../reference/returnInConstructor1.js | 18 +- tests/baselines/reference/returnStatements.js | 3 +- .../reference/returnTypeParameter.js | 3 +- .../reference/scopingInCatchBlocks.js | 15 +- tests/baselines/reference/separate1-2.js | 3 +- .../reference/shadowPrivateMembers.js | 6 +- ...MapValidationFunctionPropertyAssignment.js | 3 +- ...alidationFunctionPropertyAssignment.js.map | 2 +- ...onFunctionPropertyAssignment.sourcemap.txt | 27 +- .../specializedOverloadWithRestParameters.js | 6 +- ...reIsNotSubtypeOfNonSpecializedSignature.js | 12 +- ...atureIsSubtypeOfNonSpecializedSignature.js | 12 +- .../reference/staticAndMemberFunctions.js | 6 +- .../staticAndNonStaticPropertiesSameName.js | 6 +- tests/baselines/reference/staticClassProps.js | 3 +- .../reference/staticGetterAndSetter.js | 3 +- .../baselines/reference/staticInheritance.js | 3 +- .../reference/staticInstanceResolution4.js | 3 +- .../reference/staticInstanceResolution5.js | 9 +- ...mberAssignsToConstructorFunctionMembers.js | 6 +- ...AndPublicMemberOfAnotherClassAssignment.js | 6 +- .../staticMembersUsingClassTypeParameter.js | 9 +- .../reference/staticModifierAlreadySeen.js | 3 +- .../reference/staticOffOfInstance1.js | 3 +- .../reference/staticOffOfInstance2.js | 3 +- .../staticPropertyAndFunctionWithSameName.js | 3 +- .../reference/staticPropertyNotInClassType.js | 6 +- .../reference/staticPrototypeProperty.js | 3 +- .../baselines/reference/staticsInAFunction.js | 3 +- .../reference/staticsInConstructorBodies.js | 3 +- tests/baselines/reference/strictMode5.js | 3 +- .../reference/stringIndexerAndConstructor.js | 3 +- ...ngIndexerConstrainsPropertyDeclarations.js | 12 +- .../stringLiteralTypeIsSubtypeOfString.js | 48 +- ...gLiteralTypesInImplementationSignatures.js | 21 +- ...LiteralTypesInImplementationSignatures2.js | 12 +- .../baselines/reference/stringPropCodeGen.js | 3 +- tests/baselines/reference/stripInternal1.js | 6 +- tests/baselines/reference/subtypesOfAny.js | 3 +- .../reference/subtypesOfTypeParameter.js | 9 +- ...subtypesOfTypeParameterWithConstraints2.js | 9 +- tests/baselines/reference/subtypesOfUnion.js | 3 +- .../reference/subtypingWithCallSignatures2.js | 3 +- .../reference/subtypingWithCallSignatures4.js | 3 +- tests/baselines/reference/superAccess2.js | 6 +- .../reference/superCallOutsideConstructor.js | 3 +- tests/baselines/reference/superCalls.js | 3 +- .../reference/superCallsInConstructor.js | 9 +- .../baselines/reference/superInCatchBlock1.js | 3 +- .../reference/superPropertyAccess.js | 9 +- .../reference/superPropertyAccess1.js | 6 +- .../reference/superPropertyAccess2.js | 6 +- .../reference/superWithTypeArgument3.js | 3 +- .../reference/switchBreakStatements.js | 3 +- ...gedTemplateStringsTypeArgumentInference.js | 33 +- ...TemplateStringsTypeArgumentInferenceES6.js | 33 +- ...dTemplateStringsWithOverloadResolution3.js | 3 +- ...plateStringsWithOverloadResolution3_ES6.js | 3 +- .../reference/targetTypeBaseCalls.js | 3 +- ...thisInArrowFunctionInStaticInitializer1.js | 3 +- .../reference/thisInInvalidContexts.js | 3 +- .../thisInInvalidContextsExternalModule.js | 3 +- tests/baselines/reference/thisInLambda.js | 3 +- ...eferencedInFunctionInsideArrowFunction1.js | 3 +- .../reference/tooManyTypeParameters1.js | 6 +- tests/baselines/reference/topLevelLambda2.js | 3 +- ...railingCommaInHeterogenousArrayLiteral1.js | 3 +- tests/baselines/reference/tryCatchFinally.js | 21 +- tests/baselines/reference/tryStatements.js | 15 +- .../reference/twoAccessorsWithSameName.js | 9 +- .../reference/twoAccessorsWithSameName2.js | 6 +- .../reference/typeArgInferenceWithNull.js | 12 +- .../typeArgumentConstraintResolution1.js | 3 +- .../reference/typeArgumentInference.js | 30 +- .../reference/typeArgumentInferenceErrors.js | 12 +- .../typeArgumentInferenceWithConstraints.js | 30 +- .../typeArgumentInferenceWithObjectLiteral.js | 3 +- tests/baselines/reference/typeAssertions.js | 6 +- .../reference/typeCheckTypeArgument.js | 9 +- .../reference/typeIdentityConsidersBrands.js | 6 +- tests/baselines/reference/typeInfer1.js | 6 +- ...erAsTypeParameterConstraintTransitively.js | 5 +- ...rAsTypeParameterConstraintTransitively2.js | 5 +- .../reference/typeParameterConstraints1.js | 39 +- ...ypeParameterDirectlyConstrainedToItself.js | 12 +- ...eParameterIndirectlyConstrainedToItself.js | 12 +- .../reference/typeParameterOrderReversal.js | 6 +- .../typeParameterUsedAsConstraint.js | 36 +- .../typeParametersAreIdenticalToThemselves.js | 33 +- .../typeParametersInStaticAccessors.js | 3 +- tests/baselines/reference/typeQueryOnClass.js | 9 +- tests/baselines/reference/typeResolution.js | 15 +- .../baselines/reference/typeResolution.js.map | 2 +- .../reference/typeResolution.sourcemap.txt | 484 +++++----- .../reference/typedGenericPrototypeMember.js | 3 +- .../reference/typeofANonExportedType.js | 3 +- .../reference/typeofAnExportedType.js | 3 +- tests/baselines/reference/typeofClass2.js | 12 +- .../typeofOperatorWithAnyOtherType.js | 3 +- .../typesWithDuplicateTypeParameters.js | 6 +- tests/baselines/reference/undeclaredMethod.js | 3 +- .../reference/undeclaredModuleError.js | 10 +- .../undefinedIsSubtypeOfEverything.js | 3 +- tests/baselines/reference/underscoreTest1.js | 7 +- ...nSubtypeIfEveryConstituentTypeIsSubtype.js | 3 +- .../reference/unionTypeEquivalence.js | 3 +- .../reference/unionTypeFromArrayLiteral.js | 12 +- .../reference/unionTypesAssignability.js | 6 +- tests/baselines/reference/unknownSymbols1.js | 3 +- ...untypedFunctionCallsWithTypeParameters1.js | 3 +- .../validMultipleVariableDeclarations.js | 3 +- .../reference/varAndFunctionShareName.js | 3 +- .../reference/varArgWithNoParamName.js | 7 +- tests/baselines/reference/voidArrayLit.js | 12 +- .../reference/voidAsNonAmbiguousReturnType.js | 3 +- .../reference/voidFunctionAssignmentCompat.js | 12 +- .../reference/whileBreakStatements.js | 3 +- .../reference/whileContinueStatements.js | 3 +- tests/baselines/reference/widenedTypes.js | 6 +- tests/baselines/reference/withStatement.js | 3 +- .../reference/withStatementErrors.js | 3 +- 846 files changed, 3495 insertions(+), 6797 deletions(-) diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 95e46112d57..5acaf560273 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -2713,7 +2713,21 @@ module ts { emit(node.whenFalse); } + function isSingleLineBlock(node: Node) { + if (node && node.kind === SyntaxKind.Block) { + var block = node; + return block.statements.length === 0 && nodeEndIsOnSameLineAsNodeStart(block, block); + } + } + function emitBlock(node: Block) { + if (isSingleLineBlock(node)) { + emitToken(SyntaxKind.OpenBraceToken, node.pos); + write(" "); + emitToken(SyntaxKind.CloseBraceToken, node.statements.end); + return; + } + emitToken(SyntaxKind.OpenBraceToken, node.pos); increaseIndent(); scopeEmitStart(node.parent); @@ -2886,6 +2900,11 @@ module ts { getLineOfLocalPosition(currentSourceFile, skipTrivia(currentSourceFile.text, node2.pos)); } + function nodeEndIsOnSameLineAsNodeStart(node1: Node, node2: Node) { + return getLineOfLocalPosition(currentSourceFile, node1.end) === + getLineOfLocalPosition(currentSourceFile, skipTrivia(currentSourceFile.text, node2.pos)); + } + function emitCaseOrDefaultClause(node: CaseOrDefaultClause) { if (node.kind === SyntaxKind.CaseClause) { write("case "); @@ -3385,73 +3404,79 @@ module ts { emitSignatureParameters(node); } - write(" {"); - scopeEmitStart(node); - - if (!node.body) { - writeLine(); - write("}"); + if (isSingleLineBlock(node.body)) { + write(" { }"); } else { - increaseIndent(); + write(" {"); + scopeEmitStart(node); - emitDetachedComments(node.body.kind === SyntaxKind.Block ? (node.body).statements : node.body); - - var startIndex = 0; - if (node.body.kind === SyntaxKind.Block) { - startIndex = emitDirectivePrologues((node.body).statements, /*startWithNewLine*/ true); - } - var outPos = writer.getTextPos(); - - emitCaptureThisForNodeIfNecessary(node); - emitDefaultValueAssignments(node); - emitRestParameter(node); - if (node.body.kind !== SyntaxKind.Block && outPos === writer.getTextPos()) { - decreaseIndent(); - write(" "); - emitStart(node.body); - write("return "); - - // Don't emit comments on this body. We'll have already taken care of it above - // when we called emitDetachedComments. - emitNode(node.body, /*disableComments:*/ true); - emitEnd(node.body); - write(";"); - emitTempDeclarations(/*newLine*/ false); - write(" "); - emitStart(node.body); + if (!node.body) { + writeLine(); write("}"); - emitEnd(node.body); } else { + increaseIndent(); + + emitDetachedComments(node.body.kind === SyntaxKind.Block ? (node.body).statements : node.body); + + var startIndex = 0; if (node.body.kind === SyntaxKind.Block) { - emitLinesStartingAt((node.body).statements, startIndex); + startIndex = emitDirectivePrologues((node.body).statements, /*startWithNewLine*/ true); } - else { - writeLine(); - emitLeadingComments(node.body); + var outPos = writer.getTextPos(); + + emitCaptureThisForNodeIfNecessary(node); + emitDefaultValueAssignments(node); + emitRestParameter(node); + if (node.body.kind !== SyntaxKind.Block && outPos === writer.getTextPos()) { + decreaseIndent(); + write(" "); + emitStart(node.body); write("return "); - emit(node.body, /*disableComments:*/ true); + + // Don't emit comments on this body. We'll have already taken care of it above + // when we called emitDetachedComments. + emitNode(node.body, /*disableComments:*/ true); + emitEnd(node.body); write(";"); - emitTrailingComments(node.body); - } - emitTempDeclarations(/*newLine*/ true); - writeLine(); - if (node.body.kind === SyntaxKind.Block) { - emitLeadingCommentsOfPosition((node.body).statements.end); - decreaseIndent(); - emitToken(SyntaxKind.CloseBraceToken, (node.body).statements.end); - } - else { - decreaseIndent(); + emitTempDeclarations(/*newLine*/ false); + write(" "); emitStart(node.body); write("}"); emitEnd(node.body); } + else { + if (node.body.kind === SyntaxKind.Block) { + emitLinesStartingAt((node.body).statements, startIndex); + } + else { + writeLine(); + emitLeadingComments(node.body); + write("return "); + emit(node.body, /*disableComments:*/ true); + write(";"); + emitTrailingComments(node.body); + } + emitTempDeclarations(/*newLine*/ true); + writeLine(); + if (node.body.kind === SyntaxKind.Block) { + emitLeadingCommentsOfPosition((node.body).statements.end); + decreaseIndent(); + emitToken(SyntaxKind.CloseBraceToken, (node.body).statements.end); + } + else { + decreaseIndent(); + emitStart(node.body); + write("}"); + emitEnd(node.body); + } + } } + + scopeEmitEnd(); } - scopeEmitEnd(); if (node.flags & NodeFlags.Export) { writeLine(); emitStart(node); diff --git a/tests/baselines/reference/ArrowFunctionExpression1.js b/tests/baselines/reference/ArrowFunctionExpression1.js index baa75809f65..21c71af243c 100644 --- a/tests/baselines/reference/ArrowFunctionExpression1.js +++ b/tests/baselines/reference/ArrowFunctionExpression1.js @@ -2,5 +2,4 @@ var v = (public x: string) => { }; //// [ArrowFunctionExpression1.js] -var v = function (x) { -}; +var v = function (x) { }; diff --git a/tests/baselines/reference/ClassAndModuleThatMergeWithModuleMemberThatUsesClassTypeParameter.js b/tests/baselines/reference/ClassAndModuleThatMergeWithModuleMemberThatUsesClassTypeParameter.js index f9f2c571fd4..b27c2ce5a30 100644 --- a/tests/baselines/reference/ClassAndModuleThatMergeWithModuleMemberThatUsesClassTypeParameter.js +++ b/tests/baselines/reference/ClassAndModuleThatMergeWithModuleMemberThatUsesClassTypeParameter.js @@ -58,8 +58,7 @@ var clodule1 = (function () { })(); var clodule1; (function (clodule1) { - function f(x) { - } + function f(x) { } })(clodule1 || (clodule1 = {})); var clodule2 = (function () { function clodule2() { diff --git a/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndGenericClassStaticFunctionOfTheSameName.js b/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndGenericClassStaticFunctionOfTheSameName.js index cf39aa6c11b..255e74631a3 100644 --- a/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndGenericClassStaticFunctionOfTheSameName.js +++ b/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndGenericClassStaticFunctionOfTheSameName.js @@ -19,8 +19,7 @@ module clodule { var clodule = (function () { function clodule() { } - clodule.fn = function (id) { - }; + clodule.fn = function (id) { }; return clodule; })(); var clodule; diff --git a/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndNonGenericClassStaticFunctionOfTheSameName.js b/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndNonGenericClassStaticFunctionOfTheSameName.js index 69f72e3b4a7..76ba858306c 100644 --- a/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndNonGenericClassStaticFunctionOfTheSameName.js +++ b/tests/baselines/reference/ClassAndModuleThatMergeWithModulesExportedGenericFunctionAndNonGenericClassStaticFunctionOfTheSameName.js @@ -19,8 +19,7 @@ module clodule { var clodule = (function () { function clodule() { } - clodule.fn = function (id) { - }; + clodule.fn = function (id) { }; return clodule; })(); var clodule; diff --git a/tests/baselines/reference/ClassDeclaration11.js b/tests/baselines/reference/ClassDeclaration11.js index 6c4ba4ac6ec..6284af07676 100644 --- a/tests/baselines/reference/ClassDeclaration11.js +++ b/tests/baselines/reference/ClassDeclaration11.js @@ -8,7 +8,6 @@ class C { var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); diff --git a/tests/baselines/reference/ClassDeclaration13.js b/tests/baselines/reference/ClassDeclaration13.js index 4c4324eb1e1..7791b77eae6 100644 --- a/tests/baselines/reference/ClassDeclaration13.js +++ b/tests/baselines/reference/ClassDeclaration13.js @@ -8,7 +8,6 @@ class C { var C = (function () { function C() { } - C.prototype.bar = function () { - }; + C.prototype.bar = function () { }; return C; })(); diff --git a/tests/baselines/reference/ClassDeclaration21.js b/tests/baselines/reference/ClassDeclaration21.js index 94cf3587c8d..b5144b607d1 100644 --- a/tests/baselines/reference/ClassDeclaration21.js +++ b/tests/baselines/reference/ClassDeclaration21.js @@ -8,7 +8,6 @@ class C { var C = (function () { function C() { } - C.prototype[1] = function () { - }; + C.prototype[1] = function () { }; return C; })(); diff --git a/tests/baselines/reference/ClassDeclaration22.js b/tests/baselines/reference/ClassDeclaration22.js index c44ba4ba43b..0074813e77e 100644 --- a/tests/baselines/reference/ClassDeclaration22.js +++ b/tests/baselines/reference/ClassDeclaration22.js @@ -8,7 +8,6 @@ class C { var C = (function () { function C() { } - C.prototype["bar"] = function () { - }; + C.prototype["bar"] = function () { }; return C; })(); diff --git a/tests/baselines/reference/FunctionDeclaration12_es6.js b/tests/baselines/reference/FunctionDeclaration12_es6.js index da9cea3f9c6..d9c1739cb49 100644 --- a/tests/baselines/reference/FunctionDeclaration12_es6.js +++ b/tests/baselines/reference/FunctionDeclaration12_es6.js @@ -2,5 +2,4 @@ var v = function * yield() { } //// [FunctionDeclaration12_es6.js] -var v = , yield = function () { -}; +var v = , yield = function () { }; diff --git a/tests/baselines/reference/FunctionDeclaration4.js b/tests/baselines/reference/FunctionDeclaration4.js index 53e040b28fc..b50970965f0 100644 --- a/tests/baselines/reference/FunctionDeclaration4.js +++ b/tests/baselines/reference/FunctionDeclaration4.js @@ -3,5 +3,4 @@ function foo(); function bar() { } //// [FunctionDeclaration4.js] -function bar() { -} +function bar() { } diff --git a/tests/baselines/reference/FunctionDeclaration6.js b/tests/baselines/reference/FunctionDeclaration6.js index 093fac7ed7c..721d4d80b6d 100644 --- a/tests/baselines/reference/FunctionDeclaration6.js +++ b/tests/baselines/reference/FunctionDeclaration6.js @@ -6,6 +6,5 @@ //// [FunctionDeclaration6.js] { - function bar() { - } + function bar() { } } diff --git a/tests/baselines/reference/FunctionExpression1_es6.js b/tests/baselines/reference/FunctionExpression1_es6.js index 7c8d82f4ca8..97e5d28887d 100644 --- a/tests/baselines/reference/FunctionExpression1_es6.js +++ b/tests/baselines/reference/FunctionExpression1_es6.js @@ -2,5 +2,4 @@ var v = function * () { } //// [FunctionExpression1_es6.js] -var v = function () { -}; +var v = function () { }; diff --git a/tests/baselines/reference/FunctionExpression2_es6.js b/tests/baselines/reference/FunctionExpression2_es6.js index 0a2468bcb8c..87960e37128 100644 --- a/tests/baselines/reference/FunctionExpression2_es6.js +++ b/tests/baselines/reference/FunctionExpression2_es6.js @@ -2,5 +2,4 @@ var v = function * foo() { } //// [FunctionExpression2_es6.js] -var v = function foo() { -}; +var v = function foo() { }; diff --git a/tests/baselines/reference/FunctionPropertyAssignments1_es6.js b/tests/baselines/reference/FunctionPropertyAssignments1_es6.js index a451dcfb363..0176b412713 100644 --- a/tests/baselines/reference/FunctionPropertyAssignments1_es6.js +++ b/tests/baselines/reference/FunctionPropertyAssignments1_es6.js @@ -2,5 +2,4 @@ var v = { *foo() { } } //// [FunctionPropertyAssignments1_es6.js] -var v = { foo: function () { -} }; +var v = { foo: function () { } }; diff --git a/tests/baselines/reference/FunctionPropertyAssignments2_es6.js b/tests/baselines/reference/FunctionPropertyAssignments2_es6.js index 5338afeef39..fc86a6a48d6 100644 --- a/tests/baselines/reference/FunctionPropertyAssignments2_es6.js +++ b/tests/baselines/reference/FunctionPropertyAssignments2_es6.js @@ -2,5 +2,4 @@ var v = { *() { } } //// [FunctionPropertyAssignments2_es6.js] -var v = { : function () { -} }; +var v = { : function () { } }; diff --git a/tests/baselines/reference/FunctionPropertyAssignments3_es6.js b/tests/baselines/reference/FunctionPropertyAssignments3_es6.js index 7b3adb771f3..89963edbc6e 100644 --- a/tests/baselines/reference/FunctionPropertyAssignments3_es6.js +++ b/tests/baselines/reference/FunctionPropertyAssignments3_es6.js @@ -2,5 +2,4 @@ var v = { *{ } } //// [FunctionPropertyAssignments3_es6.js] -var v = { : function () { -} }; +var v = { : function () { } }; diff --git a/tests/baselines/reference/FunctionPropertyAssignments5_es6.js b/tests/baselines/reference/FunctionPropertyAssignments5_es6.js index 2bfc675acff..fbde587036d 100644 --- a/tests/baselines/reference/FunctionPropertyAssignments5_es6.js +++ b/tests/baselines/reference/FunctionPropertyAssignments5_es6.js @@ -2,5 +2,4 @@ var v = { *[foo()]() { } } //// [FunctionPropertyAssignments5_es6.js] -var v = { [foo()]: function () { -} }; +var v = { [foo()]: function () { } }; diff --git a/tests/baselines/reference/FunctionPropertyAssignments6_es6.js b/tests/baselines/reference/FunctionPropertyAssignments6_es6.js index 6bd636be73a..60f3677f108 100644 --- a/tests/baselines/reference/FunctionPropertyAssignments6_es6.js +++ b/tests/baselines/reference/FunctionPropertyAssignments6_es6.js @@ -2,5 +2,4 @@ var v = { *() { } } //// [FunctionPropertyAssignments6_es6.js] -var v = { : function () { -} }; +var v = { : function () { } }; diff --git a/tests/baselines/reference/MemberAccessorDeclaration15.js b/tests/baselines/reference/MemberAccessorDeclaration15.js index 41ed265a878..85bbfa62238 100644 --- a/tests/baselines/reference/MemberAccessorDeclaration15.js +++ b/tests/baselines/reference/MemberAccessorDeclaration15.js @@ -8,8 +8,7 @@ var C = (function () { function C() { } Object.defineProperty(C.prototype, "Foo", { - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/MemberFunctionDeclaration1_es6.js b/tests/baselines/reference/MemberFunctionDeclaration1_es6.js index 86e7c9d418a..121376d5265 100644 --- a/tests/baselines/reference/MemberFunctionDeclaration1_es6.js +++ b/tests/baselines/reference/MemberFunctionDeclaration1_es6.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); diff --git a/tests/baselines/reference/MemberFunctionDeclaration2_es6.js b/tests/baselines/reference/MemberFunctionDeclaration2_es6.js index efd60844dc7..dcb494b3d13 100644 --- a/tests/baselines/reference/MemberFunctionDeclaration2_es6.js +++ b/tests/baselines/reference/MemberFunctionDeclaration2_es6.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); diff --git a/tests/baselines/reference/MemberFunctionDeclaration3_es6.js b/tests/baselines/reference/MemberFunctionDeclaration3_es6.js index 357f9175b42..e858ab15582 100644 --- a/tests/baselines/reference/MemberFunctionDeclaration3_es6.js +++ b/tests/baselines/reference/MemberFunctionDeclaration3_es6.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.prototype[foo] = function () { - }; + C.prototype[foo] = function () { }; return C; })(); diff --git a/tests/baselines/reference/MemberFunctionDeclaration4_es6.js b/tests/baselines/reference/MemberFunctionDeclaration4_es6.js index 9c6d76bfca5..26b08681441 100644 --- a/tests/baselines/reference/MemberFunctionDeclaration4_es6.js +++ b/tests/baselines/reference/MemberFunctionDeclaration4_es6.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.prototype. = function () { - }; + C.prototype. = function () { }; return C; })(); diff --git a/tests/baselines/reference/MemberFunctionDeclaration7_es6.js b/tests/baselines/reference/MemberFunctionDeclaration7_es6.js index 211713c6e14..8f942d87f9f 100644 --- a/tests/baselines/reference/MemberFunctionDeclaration7_es6.js +++ b/tests/baselines/reference/MemberFunctionDeclaration7_es6.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); diff --git a/tests/baselines/reference/Protected4.js b/tests/baselines/reference/Protected4.js index 665a182ef33..9c23a1be884 100644 --- a/tests/baselines/reference/Protected4.js +++ b/tests/baselines/reference/Protected4.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.prototype.m = function () { - }; + C.prototype.m = function () { }; return C; })(); diff --git a/tests/baselines/reference/Protected5.js b/tests/baselines/reference/Protected5.js index 8834cc488cb..8426a8765d7 100644 --- a/tests/baselines/reference/Protected5.js +++ b/tests/baselines/reference/Protected5.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.m = function () { - }; + C.m = function () { }; return C; })(); diff --git a/tests/baselines/reference/Protected6.js b/tests/baselines/reference/Protected6.js index 004f30b27f8..10b59551737 100644 --- a/tests/baselines/reference/Protected6.js +++ b/tests/baselines/reference/Protected6.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.m = function () { - }; + C.m = function () { }; return C; })(); diff --git a/tests/baselines/reference/Protected7.js b/tests/baselines/reference/Protected7.js index 466f6909d67..16c24edb8cb 100644 --- a/tests/baselines/reference/Protected7.js +++ b/tests/baselines/reference/Protected7.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.prototype.m = function () { - }; + C.prototype.m = function () { }; return C; })(); diff --git a/tests/baselines/reference/accessibilityModifiers.js b/tests/baselines/reference/accessibilityModifiers.js index 901b3a29c2e..af1832d9340 100644 --- a/tests/baselines/reference/accessibilityModifiers.js +++ b/tests/baselines/reference/accessibilityModifiers.js @@ -50,8 +50,7 @@ class E { var C = (function () { function C() { } - C.privateMethod = function () { - }; + C.privateMethod = function () { }; Object.defineProperty(C, "privateGetter", { get: function () { return 0; @@ -60,13 +59,11 @@ var C = (function () { configurable: true }); Object.defineProperty(C, "privateSetter", { - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); - C.protectedMethod = function () { - }; + C.protectedMethod = function () { }; Object.defineProperty(C, "protectedGetter", { get: function () { return 0; @@ -75,13 +72,11 @@ var C = (function () { configurable: true }); Object.defineProperty(C, "protectedSetter", { - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); - C.publicMethod = function () { - }; + C.publicMethod = function () { }; Object.defineProperty(C, "publicGetter", { get: function () { return 0; @@ -90,8 +85,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C, "publicSetter", { - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); @@ -101,8 +95,7 @@ var C = (function () { var D = (function () { function D() { } - D.privateMethod = function () { - }; + D.privateMethod = function () { }; Object.defineProperty(D, "privateGetter", { get: function () { return 0; @@ -111,13 +104,11 @@ var D = (function () { configurable: true }); Object.defineProperty(D, "privateSetter", { - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); - D.protectedMethod = function () { - }; + D.protectedMethod = function () { }; Object.defineProperty(D, "protectedGetter", { get: function () { return 0; @@ -126,13 +117,11 @@ var D = (function () { configurable: true }); Object.defineProperty(D, "protectedSetter", { - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); - D.publicMethod = function () { - }; + D.publicMethod = function () { }; Object.defineProperty(D, "publicGetter", { get: function () { return 0; @@ -141,8 +130,7 @@ var D = (function () { configurable: true }); Object.defineProperty(D, "publicSetter", { - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); @@ -152,8 +140,7 @@ var D = (function () { var E = (function () { function E() { } - E.prototype.method = function () { - }; + E.prototype.method = function () { }; Object.defineProperty(E.prototype, "getter", { get: function () { return 0; @@ -162,8 +149,7 @@ var E = (function () { configurable: true }); Object.defineProperty(E.prototype, "setter", { - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/accessorParameterAccessibilityModifier.js b/tests/baselines/reference/accessorParameterAccessibilityModifier.js index 89a511e6c5c..8b5ee6196e0 100644 --- a/tests/baselines/reference/accessorParameterAccessibilityModifier.js +++ b/tests/baselines/reference/accessorParameterAccessibilityModifier.js @@ -10,14 +10,12 @@ var C = (function () { function C() { } Object.defineProperty(C.prototype, "X", { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); Object.defineProperty(C, "X", { - set: function (v2) { - }, + set: function (v2) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/accessorWithES3.js b/tests/baselines/reference/accessorWithES3.js index 6eba5238a91..8c0d353b310 100644 --- a/tests/baselines/reference/accessorWithES3.js +++ b/tests/baselines/reference/accessorWithES3.js @@ -52,6 +52,5 @@ var x = { } }; var y = { - set b(v) { - } + set b(v) { } }; diff --git a/tests/baselines/reference/accessorWithES5.js b/tests/baselines/reference/accessorWithES5.js index 1a3690556e0..d51f5e7713b 100644 --- a/tests/baselines/reference/accessorWithES5.js +++ b/tests/baselines/reference/accessorWithES5.js @@ -49,6 +49,5 @@ var x = { } }; var y = { - set b(v) { - } + set b(v) { } }; diff --git a/tests/baselines/reference/accessorWithInitializer.js b/tests/baselines/reference/accessorWithInitializer.js index 26e72fe7d7d..2b07ccc080f 100644 --- a/tests/baselines/reference/accessorWithInitializer.js +++ b/tests/baselines/reference/accessorWithInitializer.js @@ -10,16 +10,12 @@ var C = (function () { function C() { } Object.defineProperty(C.prototype, "X", { - set: function (v) { - if (v === void 0) { v = 0; } - }, + set: function (v) { }, enumerable: true, configurable: true }); Object.defineProperty(C, "X", { - set: function (v2) { - if (v2 === void 0) { v2 = 0; } - }, + set: function (v2) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/accessorWithRestParam.js b/tests/baselines/reference/accessorWithRestParam.js index 9feafe1904d..a0b7e849e51 100644 --- a/tests/baselines/reference/accessorWithRestParam.js +++ b/tests/baselines/reference/accessorWithRestParam.js @@ -10,22 +10,12 @@ var C = (function () { function C() { } Object.defineProperty(C.prototype, "X", { - set: function () { - var v = []; - for (var _i = 0; _i < arguments.length; _i++) { - v[_i - 0] = arguments[_i]; - } - }, + set: function () { }, enumerable: true, configurable: true }); Object.defineProperty(C, "X", { - set: function () { - var v2 = []; - for (var _i = 0; _i < arguments.length; _i++) { - v2[_i - 0] = arguments[_i]; - } - }, + set: function () { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/accessors_spec_section-4.5_error-cases.js b/tests/baselines/reference/accessors_spec_section-4.5_error-cases.js index 6a3b3773aa6..11590f6d068 100644 --- a/tests/baselines/reference/accessors_spec_section-4.5_error-cases.js +++ b/tests/baselines/reference/accessors_spec_section-4.5_error-cases.js @@ -21,8 +21,7 @@ var LanguageSpec_section_4_5_error_cases = (function () { get: function () { return ""; }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); @@ -30,8 +29,7 @@ var LanguageSpec_section_4_5_error_cases = (function () { get: function () { return ""; }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/accessors_spec_section-4.5_inference.js b/tests/baselines/reference/accessors_spec_section-4.5_inference.js index b140e565b29..6ad452f2a5a 100644 --- a/tests/baselines/reference/accessors_spec_section-4.5_inference.js +++ b/tests/baselines/reference/accessors_spec_section-4.5_inference.js @@ -50,8 +50,7 @@ var LanguageSpec_section_4_5_inference = (function () { get: function () { return new B(); }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); @@ -59,8 +58,7 @@ var LanguageSpec_section_4_5_inference = (function () { get: function () { return new B(); }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); @@ -68,8 +66,7 @@ var LanguageSpec_section_4_5_inference = (function () { get: function () { return new B(); }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); @@ -77,8 +74,7 @@ var LanguageSpec_section_4_5_inference = (function () { get: function () { return new B(); }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); @@ -86,8 +82,7 @@ var LanguageSpec_section_4_5_inference = (function () { get: function () { return new B(); }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); @@ -95,8 +90,7 @@ var LanguageSpec_section_4_5_inference = (function () { get: function () { return new B(); }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/additionOperatorWithAnyAndEveryType.js b/tests/baselines/reference/additionOperatorWithAnyAndEveryType.js index c4e30f95db2..49d4ea66ba8 100644 --- a/tests/baselines/reference/additionOperatorWithAnyAndEveryType.js +++ b/tests/baselines/reference/additionOperatorWithAnyAndEveryType.js @@ -40,13 +40,11 @@ var r19 = a + { a: '' }; var r20 = a + ((a: string) => { return a }); //// [additionOperatorWithAnyAndEveryType.js] -function foo() { -} +function foo() { } var C = (function () { function C() { } - C.foo = function () { - }; + C.foo = function () { }; return C; })(); var E; diff --git a/tests/baselines/reference/additionOperatorWithInvalidOperands.js b/tests/baselines/reference/additionOperatorWithInvalidOperands.js index baf4fadedb3..7bd31c7ae53 100644 --- a/tests/baselines/reference/additionOperatorWithInvalidOperands.js +++ b/tests/baselines/reference/additionOperatorWithInvalidOperands.js @@ -41,13 +41,11 @@ var r19 = E.a + C.foo(); var r20 = E.a + M; //// [additionOperatorWithInvalidOperands.js] -function foo() { -} +function foo() { } var C = (function () { function C() { } - C.foo = function () { - }; + C.foo = function () { }; return C; })(); var E; diff --git a/tests/baselines/reference/additionOperatorWithNullValueAndInvalidOperator.js b/tests/baselines/reference/additionOperatorWithNullValueAndInvalidOperator.js index 979d9a6cdb9..20ac1350ef3 100644 --- a/tests/baselines/reference/additionOperatorWithNullValueAndInvalidOperator.js +++ b/tests/baselines/reference/additionOperatorWithNullValueAndInvalidOperator.js @@ -44,5 +44,4 @@ var r7 = null + d; var r8 = null + true; var r9 = null + { a: '' }; var r10 = null + foo(); -var r11 = null + (function () { -}); +var r11 = null + (function () { }); diff --git a/tests/baselines/reference/additionOperatorWithTypeParameter.js b/tests/baselines/reference/additionOperatorWithTypeParameter.js index 23a6b95b147..a568f420a32 100644 --- a/tests/baselines/reference/additionOperatorWithTypeParameter.js +++ b/tests/baselines/reference/additionOperatorWithTypeParameter.js @@ -74,7 +74,6 @@ function foo(t, u) { var r16 = t + undefined; var r17 = t + t; var r18 = t + u; - var r19 = t + (function () { - }); + var r19 = t + (function () { }); var r20 = t + []; } diff --git a/tests/baselines/reference/additionOperatorWithUndefinedValueAndInvalidOperands.js b/tests/baselines/reference/additionOperatorWithUndefinedValueAndInvalidOperands.js index 2b7fd9a6c8c..2cf0ce22259 100644 --- a/tests/baselines/reference/additionOperatorWithUndefinedValueAndInvalidOperands.js +++ b/tests/baselines/reference/additionOperatorWithUndefinedValueAndInvalidOperands.js @@ -44,5 +44,4 @@ var r7 = undefined + d; var r8 = undefined + true; var r9 = undefined + { a: '' }; var r10 = undefined + foo(); -var r11 = undefined + (function () { -}); +var r11 = undefined + (function () { }); diff --git a/tests/baselines/reference/anyAssignabilityInInheritance.js b/tests/baselines/reference/anyAssignabilityInInheritance.js index bc9ebb02f42..04e3e91761d 100644 --- a/tests/baselines/reference/anyAssignabilityInInheritance.js +++ b/tests/baselines/reference/anyAssignabilityInInheritance.js @@ -118,8 +118,7 @@ var E; E[E["A"] = 0] = "A"; })(E || (E = {})); var r3 = foo3(a); // any -function f() { -} +function f() { } var f; (function (f) { f.bar = 1; diff --git a/tests/baselines/reference/anyAssignableToEveryType2.js b/tests/baselines/reference/anyAssignableToEveryType2.js index 41cedb73215..530d8eb0439 100644 --- a/tests/baselines/reference/anyAssignableToEveryType2.js +++ b/tests/baselines/reference/anyAssignableToEveryType2.js @@ -146,8 +146,7 @@ var E; (function (E) { E[E["A"] = 0] = "A"; })(E || (E = {})); -function f() { -} +function f() { } var f; (function (f) { f.bar = 1; diff --git a/tests/baselines/reference/anyDeclare.js b/tests/baselines/reference/anyDeclare.js index a46a2529491..8bb2f55eb84 100644 --- a/tests/baselines/reference/anyDeclare.js +++ b/tests/baselines/reference/anyDeclare.js @@ -10,6 +10,5 @@ module myMod { var myMod; (function (myMod) { var myFn; - function myFn() { - } + function myFn() { } })(myMod || (myMod = {})); diff --git a/tests/baselines/reference/anyIdenticalToItself.js b/tests/baselines/reference/anyIdenticalToItself.js index dc221b69aa7..b7b9b25e418 100644 --- a/tests/baselines/reference/anyIdenticalToItself.js +++ b/tests/baselines/reference/anyIdenticalToItself.js @@ -13,8 +13,7 @@ class C { } //// [anyIdenticalToItself.js] -function foo(x, y) { -} +function foo(x, y) { } var C = (function () { function C() { } diff --git a/tests/baselines/reference/arrayLiteralContextualType.js b/tests/baselines/reference/arrayLiteralContextualType.js index 65e4c135cba..0edf5c45164 100644 --- a/tests/baselines/reference/arrayLiteralContextualType.js +++ b/tests/baselines/reference/arrayLiteralContextualType.js @@ -44,10 +44,8 @@ var Elephant = (function () { } return Elephant; })(); -function foo(animals) { -} -function bar(animals) { -} +function foo(animals) { } +function bar(animals) { } foo([ new Giraffe(), new Elephant() diff --git a/tests/baselines/reference/arrayLiteralInNonVarArgParameter.js b/tests/baselines/reference/arrayLiteralInNonVarArgParameter.js index 57cba07d6bf..9edf545f8b4 100644 --- a/tests/baselines/reference/arrayLiteralInNonVarArgParameter.js +++ b/tests/baselines/reference/arrayLiteralInNonVarArgParameter.js @@ -5,10 +5,5 @@ panic([], 'one', 'two'); //// [arrayLiteralInNonVarArgParameter.js] -function panic(val) { - var opt = []; - for (var _i = 1; _i < arguments.length; _i++) { - opt[_i - 1] = arguments[_i]; - } -} +function panic(val) { } panic([], 'one', 'two'); diff --git a/tests/baselines/reference/arrayOfFunctionTypes3.js b/tests/baselines/reference/arrayOfFunctionTypes3.js index ab7c6778a71..c0829418dd7 100644 --- a/tests/baselines/reference/arrayOfFunctionTypes3.js +++ b/tests/baselines/reference/arrayOfFunctionTypes3.js @@ -28,8 +28,7 @@ var r7 = r6(''); // any not string //// [arrayOfFunctionTypes3.js] // valid uses of arrays of function types -var x = [function () { return 1; }, function () { -}]; +var x = [function () { return 1; }, function () { }]; var r2 = x[0](); var C = (function () { function C() { diff --git a/tests/baselines/reference/arrayReferenceWithoutTypeArgs.js b/tests/baselines/reference/arrayReferenceWithoutTypeArgs.js index 3b0f2c11aa7..6fcdae657e9 100644 --- a/tests/baselines/reference/arrayReferenceWithoutTypeArgs.js +++ b/tests/baselines/reference/arrayReferenceWithoutTypeArgs.js @@ -7,7 +7,6 @@ class X { var X = (function () { function X() { } - X.prototype.f = function (a) { - }; + X.prototype.f = function (a) { }; return X; })(); diff --git a/tests/baselines/reference/arrowFunctionExpressions.js b/tests/baselines/reference/arrowFunctionExpressions.js index 9aa049b9f6f..a828da6cffc 100644 --- a/tests/baselines/reference/arrowFunctionExpressions.js +++ b/tests/baselines/reference/arrowFunctionExpressions.js @@ -138,8 +138,7 @@ function someOtherFn() { // Arrow function used in nested function in function function outerFn() { function innerFn() { - var arrowFn = function () { - }; + var arrowFn = function () { }; var p = arrowFn(); var p; } diff --git a/tests/baselines/reference/arrowFunctionsMissingTokens.js b/tests/baselines/reference/arrowFunctionsMissingTokens.js index 7bd24f07577..3ea21232ac4 100644 --- a/tests/baselines/reference/arrowFunctionsMissingTokens.js +++ b/tests/baselines/reference/arrowFunctionsMissingTokens.js @@ -69,16 +69,11 @@ module okay { //// [arrowFunctionsMissingTokens.js] var missingArrowsWithCurly; (function (missingArrowsWithCurly) { - var a = function () { - }; - var b = function () { - }; - var c = function (x) { - }; - var d = function (x, y) { - }; - var e = function (x, y) { - }; + var a = function () { }; + var b = function () { }; + var c = function (x) { }; + var d = function (x, y) { }; + var e = function (x, y) { }; })(missingArrowsWithCurly || (missingArrowsWithCurly = {})); var missingCurliesWithArrow; (function (missingCurliesWithArrow) { @@ -127,14 +122,9 @@ var ce_nEst_pas_une_arrow_function; })(ce_nEst_pas_une_arrow_function || (ce_nEst_pas_une_arrow_function = {})); var okay; (function (okay) { - var a = function () { - }; - var b = function () { - }; - var c = function (x) { - }; - var d = function (x, y) { - }; - var e = function (x, y) { - }; + var a = function () { }; + var b = function () { }; + var c = function (x) { }; + var d = function (x, y) { }; + var e = function (x, y) { }; })(okay || (okay = {})); diff --git a/tests/baselines/reference/assignLambdaToNominalSubtypeOfFunction.js b/tests/baselines/reference/assignLambdaToNominalSubtypeOfFunction.js index dbfd4487ac1..513a2080dd4 100644 --- a/tests/baselines/reference/assignLambdaToNominalSubtypeOfFunction.js +++ b/tests/baselines/reference/assignLambdaToNominalSubtypeOfFunction.js @@ -10,8 +10,7 @@ fn(function (a, b) { return true; }) //// [assignLambdaToNominalSubtypeOfFunction.js] -function fn(cb) { -} +function fn(cb) { } fn(function (a, b) { return true; }); fn(function (a, b) { return true; diff --git a/tests/baselines/reference/assignmentCompatBug3.js b/tests/baselines/reference/assignmentCompatBug3.js index 6d3deedc5b8..da21ac17c9d 100644 --- a/tests/baselines/reference/assignmentCompatBug3.js +++ b/tests/baselines/reference/assignmentCompatBug3.js @@ -53,8 +53,7 @@ var C = (function () { }); return C; })(); -function foo(test) { -} +function foo(test) { } var x; var y; foo(x); diff --git a/tests/baselines/reference/assignmentCompatBug5.js b/tests/baselines/reference/assignmentCompatBug5.js index f4ec40dafae..d4f82584bec 100644 --- a/tests/baselines/reference/assignmentCompatBug5.js +++ b/tests/baselines/reference/assignmentCompatBug5.js @@ -12,17 +12,13 @@ foo3((n) => { return; }); //// [assignmentCompatBug5.js] -function foo1(x) { -} +function foo1(x) { } foo1({ b: 5 }); -function foo2(x) { -} +function foo2(x) { } foo2(["s", "t"]); -function foo3(x) { -} +function foo3(x) { } ; -foo3(function (s) { -}); +foo3(function (s) { }); foo3(function (n) { return; }); diff --git a/tests/baselines/reference/assignmentCompatInterfaceWithStringIndexSignature.js b/tests/baselines/reference/assignmentCompatInterfaceWithStringIndexSignature.js index 2eac9cdb476..bb6817bb60e 100644 --- a/tests/baselines/reference/assignmentCompatInterfaceWithStringIndexSignature.js +++ b/tests/baselines/reference/assignmentCompatInterfaceWithStringIndexSignature.js @@ -20,10 +20,8 @@ Biz(new Foo()); var Foo = (function () { function Foo() { } - Foo.prototype.Boz = function () { - }; + Foo.prototype.Boz = function () { }; return Foo; })(); -function Biz(map) { -} +function Biz(map) { } Biz(new Foo()); diff --git a/tests/baselines/reference/assignmentCompatOnNew.js b/tests/baselines/reference/assignmentCompatOnNew.js index bc3b7e6ba96..1b8cfdcc3bf 100644 --- a/tests/baselines/reference/assignmentCompatOnNew.js +++ b/tests/baselines/reference/assignmentCompatOnNew.js @@ -13,6 +13,5 @@ var Foo = (function () { return Foo; })(); ; -function bar(x) { -} +function bar(x) { } bar(Foo); // Error, but should be allowed diff --git a/tests/baselines/reference/assignmentCompatability_checking-apply-member-off-of-function-interface.js b/tests/baselines/reference/assignmentCompatability_checking-apply-member-off-of-function-interface.js index 637e26a82ce..760631ffbb5 100644 --- a/tests/baselines/reference/assignmentCompatability_checking-apply-member-off-of-function-interface.js +++ b/tests/baselines/reference/assignmentCompatability_checking-apply-member-off-of-function-interface.js @@ -39,17 +39,14 @@ x = ['']; x = 4; x = {}; // Should work -function f() { -} +function f() { } ; x = f; -function fn(c) { -} +function fn(c) { } // Should Fail fn(''); fn(['']); fn(4); fn({}); // Should work -fn(function (a) { -}); +fn(function (a) { }); diff --git a/tests/baselines/reference/assignmentCompatability_checking-call-member-off-of-function-interface.js b/tests/baselines/reference/assignmentCompatability_checking-call-member-off-of-function-interface.js index 07bb9862c80..2e61521eefb 100644 --- a/tests/baselines/reference/assignmentCompatability_checking-call-member-off-of-function-interface.js +++ b/tests/baselines/reference/assignmentCompatability_checking-call-member-off-of-function-interface.js @@ -39,17 +39,14 @@ x = ['']; x = 4; x = {}; // Should work -function f() { -} +function f() { } ; x = f; -function fn(c) { -} +function fn(c) { } // Should Fail fn(''); fn(['']); fn(4); fn({}); // Should work -fn(function (a) { -}); +fn(function (a) { }); diff --git a/tests/baselines/reference/assignmentLHSIsValue.js b/tests/baselines/reference/assignmentLHSIsValue.js index e6975e70146..15bc7b9acfd 100644 --- a/tests/baselines/reference/assignmentLHSIsValue.js +++ b/tests/baselines/reference/assignmentLHSIsValue.js @@ -138,11 +138,9 @@ var Derived = (function (_super) { return Derived; })(C); // function expression -function bar() { -} +function bar() { } value; -(function () { -}); +(function () { }); value; // function calls foo() = value; @@ -159,6 +157,5 @@ foo() = value; (/d+/) = value; ({}) = value; ([]) = value; -(function baz() { -}) = value; +(function baz() { }) = value; (foo()) = value; diff --git a/tests/baselines/reference/assignmentStricterConstraints.js b/tests/baselines/reference/assignmentStricterConstraints.js index f8f4ce6d1b6..a7f554ade7d 100644 --- a/tests/baselines/reference/assignmentStricterConstraints.js +++ b/tests/baselines/reference/assignmentStricterConstraints.js @@ -13,7 +13,6 @@ g(1, "") var f = function (x, y) { x = y; }; -var g = function (x, y) { -}; +var g = function (x, y) { }; g = f; g(1, ""); diff --git a/tests/baselines/reference/assignmentToFunction.js b/tests/baselines/reference/assignmentToFunction.js index a4e2d540a8d..7462fdfcf3f 100644 --- a/tests/baselines/reference/assignmentToFunction.js +++ b/tests/baselines/reference/assignmentToFunction.js @@ -11,8 +11,7 @@ module foo { } //// [assignmentToFunction.js] -function fn() { -} +function fn() { } fn = function () { return 3; }; var foo; (function (foo) { diff --git a/tests/baselines/reference/assignmentToObjectAndFunction.js b/tests/baselines/reference/assignmentToObjectAndFunction.js index b058765d5f8..a3c4785b18b 100644 --- a/tests/baselines/reference/assignmentToObjectAndFunction.js +++ b/tests/baselines/reference/assignmentToObjectAndFunction.js @@ -37,24 +37,20 @@ var goodObj = { } }; // Ok, because toString is a subtype of Object's toString var errFun = {}; // Error for no call signature -function foo() { -} +function foo() { } var foo; (function (foo) { foo.boom = 0; })(foo || (foo = {})); var goodFundule = foo; // ok -function bar() { -} +function bar() { } var bar; (function (bar) { - function apply(thisArg, argArray) { - } + function apply(thisArg, argArray) { } bar.apply = apply; })(bar || (bar = {})); var goodFundule2 = bar; // ok -function bad() { -} +function bad() { } var bad; (function (bad) { bad.apply = 0; diff --git a/tests/baselines/reference/assignmentToParenthesizedIdentifiers.js b/tests/baselines/reference/assignmentToParenthesizedIdentifiers.js index b0dbe782d08..9526cb08bef 100644 --- a/tests/baselines/reference/assignmentToParenthesizedIdentifiers.js +++ b/tests/baselines/reference/assignmentToParenthesizedIdentifiers.js @@ -103,8 +103,7 @@ M2.M3 = { x: 3 }; // OK M2.M3 = { x: '' }; // Error (M2).M3 = { x: '' }; // Error (M2.M3) = { x: '' }; // Error -function fn() { -} +function fn() { } fn = function () { return 3; }; // Bug 823548: Should be error (fn is not a reference) (fn) = function () { return 3; }; // Should be error function fn2(x, y) { diff --git a/tests/baselines/reference/assignmentToReferenceTypes.js b/tests/baselines/reference/assignmentToReferenceTypes.js index 214e10b9c6c..1aec3c2051d 100644 --- a/tests/baselines/reference/assignmentToReferenceTypes.js +++ b/tests/baselines/reference/assignmentToReferenceTypes.js @@ -36,8 +36,7 @@ var E; (function (E) { })(E || (E = {})); E = null; -function f() { -} +function f() { } f = null; var x = 1; x = null; diff --git a/tests/baselines/reference/assignments.js b/tests/baselines/reference/assignments.js index f9bb008ccac..363d2f2a017 100644 --- a/tests/baselines/reference/assignments.js +++ b/tests/baselines/reference/assignments.js @@ -53,8 +53,7 @@ var E; })(E || (E = {})); E = null; // Error 0 /* A */ = null; // OK per spec, Error per implementation (509581) -function fn() { -} +function fn() { } fn = null; // Should be error var v; v = null; // OK diff --git a/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.js b/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.js index 88996de1553..32fed237a2e 100644 --- a/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.js +++ b/tests/baselines/reference/augmentedTypeAssignmentCompatIndexSignature.js @@ -23,7 +23,6 @@ var v2: { //// [augmentedTypeAssignmentCompatIndexSignature.js] var o = {}; -var f = function () { -}; +var f = function () { }; var v1 = o; // Should be allowed var v2 = f; // Should be allowed diff --git a/tests/baselines/reference/augmentedTypeBracketAccessIndexSignature.js b/tests/baselines/reference/augmentedTypeBracketAccessIndexSignature.js index a1b6bf6805c..8d2c94899dc 100644 --- a/tests/baselines/reference/augmentedTypeBracketAccessIndexSignature.js +++ b/tests/baselines/reference/augmentedTypeBracketAccessIndexSignature.js @@ -15,5 +15,4 @@ var b = (() => { })[0]; // Should be Bar //// [augmentedTypeBracketAccessIndexSignature.js] var a = {}[0]; // Should be Foo -var b = (function () { -})[0]; // Should be Bar +var b = (function () { })[0]; // Should be Bar diff --git a/tests/baselines/reference/augmentedTypeBracketNamedPropertyAccess.js b/tests/baselines/reference/augmentedTypeBracketNamedPropertyAccess.js index 5bc184df667..6ec653c69b5 100644 --- a/tests/baselines/reference/augmentedTypeBracketNamedPropertyAccess.js +++ b/tests/baselines/reference/augmentedTypeBracketNamedPropertyAccess.js @@ -15,8 +15,7 @@ var r4 = f['data']; // Should be number //// [augmentedTypeBracketNamedPropertyAccess.js] var o = {}; -var f = function () { -}; +var f = function () { }; var r1 = o['data']; // Should be number var r2 = o['functionData']; // Should be any (no property found) var r3 = f['functionData']; // Should be string diff --git a/tests/baselines/reference/augmentedTypesClass.js b/tests/baselines/reference/augmentedTypesClass.js index 5d0d8ab75d6..30b75483d80 100644 --- a/tests/baselines/reference/augmentedTypesClass.js +++ b/tests/baselines/reference/augmentedTypesClass.js @@ -12,8 +12,7 @@ enum c4 { One } // error var c1 = (function () { function c1() { } - c1.prototype.foo = function () { - }; + c1.prototype.foo = function () { }; return c1; })(); var c1 = 1; // error @@ -21,8 +20,7 @@ var c1 = 1; // error var c4 = (function () { function c4() { } - c4.prototype.foo = function () { - }; + c4.prototype.foo = function () { }; return c4; })(); var c4; diff --git a/tests/baselines/reference/augmentedTypesClass2a.js b/tests/baselines/reference/augmentedTypesClass2a.js index fe31f0964c2..b2c6fa1e373 100644 --- a/tests/baselines/reference/augmentedTypesClass2a.js +++ b/tests/baselines/reference/augmentedTypesClass2a.js @@ -9,11 +9,8 @@ var c2 = () => { } var c2 = (function () { function c2() { } - c2.prototype.foo = function () { - }; + c2.prototype.foo = function () { }; return c2; })(); // error -function c2() { -} // error -var c2 = function () { -}; +function c2() { } // error +var c2 = function () { }; diff --git a/tests/baselines/reference/augmentedTypesClass3.js b/tests/baselines/reference/augmentedTypesClass3.js index b42d9dda356..11d3f0a0d9f 100644 --- a/tests/baselines/reference/augmentedTypesClass3.js +++ b/tests/baselines/reference/augmentedTypesClass3.js @@ -18,15 +18,13 @@ class c5c { public foo() { } } var c5 = (function () { function c5() { } - c5.prototype.foo = function () { - }; + c5.prototype.foo = function () { }; return c5; })(); var c5a = (function () { function c5a() { } - c5a.prototype.foo = function () { - }; + c5a.prototype.foo = function () { }; return c5a; })(); var c5a; @@ -36,8 +34,7 @@ var c5a; var c5b = (function () { function c5b() { } - c5b.prototype.foo = function () { - }; + c5b.prototype.foo = function () { }; return c5b; })(); var c5b; @@ -48,8 +45,7 @@ var c5b; var c5c = (function () { function c5c() { } - c5c.prototype.foo = function () { - }; + c5c.prototype.foo = function () { }; return c5c; })(); //import c5c = require(''); diff --git a/tests/baselines/reference/augmentedTypesClass4.js b/tests/baselines/reference/augmentedTypesClass4.js index 71fc61d6659..f178567d843 100644 --- a/tests/baselines/reference/augmentedTypesClass4.js +++ b/tests/baselines/reference/augmentedTypesClass4.js @@ -9,14 +9,12 @@ class c3 { public bar() { } } // error var c3 = (function () { function c3() { } - c3.prototype.foo = function () { - }; + c3.prototype.foo = function () { }; return c3; })(); // error var c3 = (function () { function c3() { } - c3.prototype.bar = function () { - }; + c3.prototype.bar = function () { }; return c3; })(); // error diff --git a/tests/baselines/reference/augmentedTypesEnum.js b/tests/baselines/reference/augmentedTypesEnum.js index 484b0addd58..cb1ec3e844f 100644 --- a/tests/baselines/reference/augmentedTypesEnum.js +++ b/tests/baselines/reference/augmentedTypesEnum.js @@ -47,14 +47,12 @@ var e2; (function (e2) { e2[e2["One"] = 0] = "One"; })(e2 || (e2 = {})); // error -function e2() { -} // error +function e2() { } // error var e3; (function (e3) { e3[e3["One"] = 0] = "One"; })(e3 || (e3 = {})); // error -var e3 = function () { -}; // error +var e3 = function () { }; // error // enum then class var e4; (function (e4) { @@ -63,8 +61,7 @@ var e4; var e4 = (function () { function e4() { } - e4.prototype.foo = function () { - }; + e4.prototype.foo = function () { }; return e4; })(); // error // enum then enum diff --git a/tests/baselines/reference/augmentedTypesExternalModule1.js b/tests/baselines/reference/augmentedTypesExternalModule1.js index 69cc810668c..104559396cc 100644 --- a/tests/baselines/reference/augmentedTypesExternalModule1.js +++ b/tests/baselines/reference/augmentedTypesExternalModule1.js @@ -9,8 +9,7 @@ define(["require", "exports"], function (require, exports) { var c5 = (function () { function c5() { } - c5.prototype.foo = function () { - }; + c5.prototype.foo = function () { }; return c5; })(); }); diff --git a/tests/baselines/reference/augmentedTypesFunction.js b/tests/baselines/reference/augmentedTypesFunction.js index 34567c77e8c..1cd1423b7c4 100644 --- a/tests/baselines/reference/augmentedTypesFunction.js +++ b/tests/baselines/reference/augmentedTypesFunction.js @@ -40,59 +40,46 @@ module y5c { export interface I { foo(): void } } // should be an error //// [augmentedTypesFunction.js] // function then var -function y1() { -} // error +function y1() { } // error var y1 = 1; // error // function then function -function y2() { -} // error -function y2() { -} // error -function y2a() { -} // error -var y2a = function () { -}; // error +function y2() { } // error +function y2() { } // error +function y2a() { } // error +var y2a = function () { }; // error // function then class -function y3() { -} // error +function y3() { } // error var y3 = (function () { function y3() { } return y3; })(); // error -function y3a() { -} // error +function y3a() { } // error var y3a = (function () { function y3a() { } - y3a.prototype.foo = function () { - }; + y3a.prototype.foo = function () { }; return y3a; })(); // error // function then enum -function y4() { -} // error +function y4() { } // error var y4; (function (y4) { y4[y4["One"] = 0] = "One"; })(y4 || (y4 = {})); // error // function then internal module -function y5() { -} -function y5a() { -} +function y5() { } +function y5a() { } var y5a; (function (y5a) { var y = 2; })(y5a || (y5a = {})); // should be an error -function y5b() { -} +function y5b() { } var y5b; (function (y5b) { y5b.y = 3; })(y5b || (y5b = {})); // should be an error -function y5c() { -} +function y5c() { } // function then import, messes with other errors //function y6() { } //import y6 = require(''); diff --git a/tests/baselines/reference/augmentedTypesModules.js b/tests/baselines/reference/augmentedTypesModules.js index 3b7544996a1..558ea6609f5 100644 --- a/tests/baselines/reference/augmentedTypesModules.js +++ b/tests/baselines/reference/augmentedTypesModules.js @@ -115,51 +115,43 @@ var m1d; var I = (function () { function I() { } - I.prototype.foo = function () { - }; + I.prototype.foo = function () { }; return I; })(); m1d.I = I; })(m1d || (m1d = {})); var m1d = 1; // error -function m2() { -} +function m2() { } ; // ok since the module is not instantiated var m2a; (function (m2a) { var y = 2; })(m2a || (m2a = {})); -function m2a() { -} +function m2a() { } ; // error since the module is instantiated var m2b; (function (m2b) { m2b.y = 2; })(m2b || (m2b = {})); -function m2b() { -} +function m2b() { } ; // error since the module is instantiated // should be errors to have function first -function m2c() { -} +function m2c() { } ; var m2c; (function (m2c) { m2c.y = 2; })(m2c || (m2c = {})); -function m2f() { -} +function m2f() { } ; -function m2g() { -} +function m2g() { } ; var m2g; (function (m2g) { var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); m2g.C = C; @@ -176,15 +168,13 @@ var m3a; var m3a = (function () { function m3a() { } - m3a.prototype.foo = function () { - }; + m3a.prototype.foo = function () { }; return m3a; })(); // error, class isn't ambient or declared before the module var m3b = (function () { function m3b() { } - m3b.prototype.foo = function () { - }; + m3b.prototype.foo = function () { }; return m3b; })(); var m3b; @@ -194,8 +184,7 @@ var m3b; var m3c = (function () { function m3c() { } - m3c.prototype.foo = function () { - }; + m3c.prototype.foo = function () { }; return m3c; })(); var m3c; @@ -215,8 +204,7 @@ var m3g; var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); m3g.C = C; @@ -249,8 +237,7 @@ var m4d; var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); })(m4d || (m4d = {})); diff --git a/tests/baselines/reference/augmentedTypesModules2.js b/tests/baselines/reference/augmentedTypesModules2.js index 70fd31f03e0..5cc805a848f 100644 --- a/tests/baselines/reference/augmentedTypesModules2.js +++ b/tests/baselines/reference/augmentedTypesModules2.js @@ -29,25 +29,21 @@ module m2g { export class C { foo() { } } } //// [augmentedTypesModules2.js] -function m2() { -} +function m2() { } ; // ok since the module is not instantiated var m2a; (function (m2a) { var y = 2; })(m2a || (m2a = {})); -function m2a() { -} +function m2a() { } ; // error since the module is instantiated var m2b; (function (m2b) { m2b.y = 2; })(m2b || (m2b = {})); -function m2b() { -} +function m2b() { } ; // error since the module is instantiated -function m2c() { -} +function m2c() { } ; var m2c; (function (m2c) { @@ -57,22 +53,18 @@ var m2cc; (function (m2cc) { m2cc.y = 2; })(m2cc || (m2cc = {})); -function m2cc() { -} +function m2cc() { } ; // error to have module first -function m2f() { -} +function m2f() { } ; -function m2g() { -} +function m2g() { } ; var m2g; (function (m2g) { var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); m2g.C = C; diff --git a/tests/baselines/reference/augmentedTypesModules3.js b/tests/baselines/reference/augmentedTypesModules3.js index 7f5c390ea3a..fb1c7ef6e70 100644 --- a/tests/baselines/reference/augmentedTypesModules3.js +++ b/tests/baselines/reference/augmentedTypesModules3.js @@ -19,7 +19,6 @@ var m3a; var m3a = (function () { function m3a() { } - m3a.prototype.foo = function () { - }; + m3a.prototype.foo = function () { }; return m3a; })(); // error, class isn't ambient or declared before the module diff --git a/tests/baselines/reference/augmentedTypesModules3b.js b/tests/baselines/reference/augmentedTypesModules3b.js index 2d250ab2822..080a5e72ada 100644 --- a/tests/baselines/reference/augmentedTypesModules3b.js +++ b/tests/baselines/reference/augmentedTypesModules3b.js @@ -22,8 +22,7 @@ module m3g { export class C { foo() { } } } var m3b = (function () { function m3b() { } - m3b.prototype.foo = function () { - }; + m3b.prototype.foo = function () { }; return m3b; })(); var m3b; @@ -33,8 +32,7 @@ var m3b; var m3c = (function () { function m3c() { } - m3c.prototype.foo = function () { - }; + m3c.prototype.foo = function () { }; return m3c; })(); var m3c; @@ -54,8 +52,7 @@ var m3g; var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); m3g.C = C; diff --git a/tests/baselines/reference/augmentedTypesModules4.js b/tests/baselines/reference/augmentedTypesModules4.js index f8407e2e36f..82f08851efd 100644 --- a/tests/baselines/reference/augmentedTypesModules4.js +++ b/tests/baselines/reference/augmentedTypesModules4.js @@ -51,8 +51,7 @@ var m4d; var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); })(m4d || (m4d = {})); diff --git a/tests/baselines/reference/augmentedTypesVar.js b/tests/baselines/reference/augmentedTypesVar.js index f4404cecb3d..b4e412acc05 100644 --- a/tests/baselines/reference/augmentedTypesVar.js +++ b/tests/baselines/reference/augmentedTypesVar.js @@ -42,11 +42,9 @@ var x1 = 1; var x1 = 2; // var then function var x2 = 1; // error -function x2() { -} // error +function x2() { } // error var x3 = 1; -var x3 = function () { -}; // error +var x3 = function () { }; // error // var then class var x4 = 1; // error var x4 = (function () { @@ -58,8 +56,7 @@ var x4a = 1; // error var x4a = (function () { function x4a() { } - x4a.prototype.foo = function () { - }; + x4a.prototype.foo = function () { }; return x4a; })(); // error // var then enum diff --git a/tests/baselines/reference/autolift3.js b/tests/baselines/reference/autolift3.js index cc3bcaaae97..e04501daf46 100644 --- a/tests/baselines/reference/autolift3.js +++ b/tests/baselines/reference/autolift3.js @@ -33,8 +33,7 @@ b.foo(); //// [autolift3.js] var B = (function () { function B() { - function foo() { - } + function foo() { } foo(); var a = 0; var inner = (function () { diff --git a/tests/baselines/reference/baseTypeAfterDerivedType.js b/tests/baselines/reference/baseTypeAfterDerivedType.js index c64239ac0c8..65b73a17542 100644 --- a/tests/baselines/reference/baseTypeAfterDerivedType.js +++ b/tests/baselines/reference/baseTypeAfterDerivedType.js @@ -20,11 +20,6 @@ interface Base2 { var Derived2 = (function () { function Derived2() { } - Derived2.prototype.method = function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i - 0] = arguments[_i]; - } - }; + Derived2.prototype.method = function () { }; return Derived2; })(); diff --git a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.js b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.js index 69fe778c047..49bc535dbfe 100644 --- a/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.js +++ b/tests/baselines/reference/bestCommonTypeOfConditionalExpressions.js @@ -63,15 +63,9 @@ var r = true ? 1 : 2; var r3 = true ? 1 : {}; var r4 = true ? a : b; // typeof a var r5 = true ? b : a; // typeof b -var r6 = true ? function (x) { -} : function (x) { -}; // returns number => void -var r7 = true ? function (x) { -} : function (x) { -}; -var r8 = true ? function (x) { -} : function (x) { -}; // returns Object => void +var r6 = true ? function (x) { } : function (x) { }; // returns number => void +var r7 = true ? function (x) { } : function (x) { }; +var r8 = true ? function (x) { } : function (x) { }; // returns Object => void var r10 = true ? derived : derived2; // no error since we use the contextual type in BCT var r11 = true ? base : derived2; function foo5(t, u) { diff --git a/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.js b/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.js index dafacc5cc50..3ee3f28ad9e 100644 --- a/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/bitwiseNotOperatorWithAnyOtherType.js @@ -68,8 +68,7 @@ var ANY; var ANY1; var ANY2 = ["", ""]; var obj; -var obj1 = { x: "", y: function () { -} }; +var obj1 = { x: "", y: function () { } }; function foo() { var a; return a; diff --git a/tests/baselines/reference/callOverloads1.js b/tests/baselines/reference/callOverloads1.js index 86cb951f853..94397c4ef8e 100644 --- a/tests/baselines/reference/callOverloads1.js +++ b/tests/baselines/reference/callOverloads1.js @@ -22,8 +22,7 @@ var Foo = (function () { function Foo(x) { // WScript.Echo("Constructor function has executed"); } - Foo.prototype.bar1 = function () { - }; + Foo.prototype.bar1 = function () { }; return Foo; })(); function F1(a) { diff --git a/tests/baselines/reference/callOverloads2.js b/tests/baselines/reference/callOverloads2.js index e3cbceb177a..ed1b9cfcac3 100644 --- a/tests/baselines/reference/callOverloads2.js +++ b/tests/baselines/reference/callOverloads2.js @@ -30,8 +30,7 @@ var Foo = (function () { function Foo(x) { // WScript.Echo("Constructor function has executed"); } - Foo.prototype.bar1 = function () { - }; + Foo.prototype.bar1 = function () { }; return Foo; })(); function F1(s) { diff --git a/tests/baselines/reference/callOverloads3.js b/tests/baselines/reference/callOverloads3.js index 85c16fe85a6..3b615438ccd 100644 --- a/tests/baselines/reference/callOverloads3.js +++ b/tests/baselines/reference/callOverloads3.js @@ -23,8 +23,7 @@ var Foo = (function () { function Foo(x) { // WScript.Echo("Constructor function has executed"); } - Foo.prototype.bar1 = function () { - }; + Foo.prototype.bar1 = function () { }; return Foo; })(); //class Foo(s: String); diff --git a/tests/baselines/reference/callOverloads4.js b/tests/baselines/reference/callOverloads4.js index 6aab555b721..529b63ad3b8 100644 --- a/tests/baselines/reference/callOverloads4.js +++ b/tests/baselines/reference/callOverloads4.js @@ -23,8 +23,7 @@ var Foo = (function () { function Foo(x) { // WScript.Echo("Constructor function has executed"); } - Foo.prototype.bar1 = function () { - }; + Foo.prototype.bar1 = function () { }; return Foo; })(); var f1 = new Foo("hey"); diff --git a/tests/baselines/reference/callOverloads5.js b/tests/baselines/reference/callOverloads5.js index 2220568e4c2..dc508b3b8ed 100644 --- a/tests/baselines/reference/callOverloads5.js +++ b/tests/baselines/reference/callOverloads5.js @@ -24,8 +24,7 @@ var Foo = (function () { function Foo(x) { // WScript.Echo("Constructor function has executed"); } - Foo.prototype.bar1 = function (a) { - }; + Foo.prototype.bar1 = function (a) { }; return Foo; })(); //class Foo(s: String); diff --git a/tests/baselines/reference/callSignatureWithOptionalParameterAndInitializer.js b/tests/baselines/reference/callSignatureWithOptionalParameterAndInitializer.js index 0f8a033067d..51afd6869d2 100644 --- a/tests/baselines/reference/callSignatureWithOptionalParameterAndInitializer.js +++ b/tests/baselines/reference/callSignatureWithOptionalParameterAndInitializer.js @@ -57,15 +57,9 @@ b.b(1); //// [callSignatureWithOptionalParameterAndInitializer.js] // Optional parameters cannot also have initializer expressions, these are all errors -function foo(x) { - if (x === void 0) { x = 1; } -} -var f = function foo(x) { - if (x === void 0) { x = 1; } -}; -var f2 = function (x, y) { - if (y === void 0) { y = 1; } -}; +function foo(x) { } +var f = function foo(x) { }; +var f2 = function (x, y) { }; foo(1); foo(); f(1); @@ -75,9 +69,7 @@ f2(1, 2); var C = (function () { function C() { } - C.prototype.foo = function (x) { - if (x === void 0) { x = 1; } - }; + C.prototype.foo = function (x) { }; return C; })(); var c; @@ -94,15 +86,9 @@ a(1); a.foo(); a.foo(1); var b = { - foo: function (x) { - if (x === void 0) { x = 1; } - }, - a: function foo(x, y) { - if (y === void 0) { y = ''; } - }, - b: function (x) { - if (x === void 0) { x = ''; } - } + foo: function (x) { }, + a: function foo(x, y) { }, + b: function (x) { } }; b.foo(); b.foo(1); diff --git a/tests/baselines/reference/callSignatureWithoutAnnotationsOrBody.js b/tests/baselines/reference/callSignatureWithoutAnnotationsOrBody.js index 6daa62f83a8..24c71c98505 100644 --- a/tests/baselines/reference/callSignatureWithoutAnnotationsOrBody.js +++ b/tests/baselines/reference/callSignatureWithoutAnnotationsOrBody.js @@ -21,8 +21,7 @@ var r5 = a.f(); //// [callSignatureWithoutAnnotationsOrBody.js] // Call signatures without a return type annotation and function body return 'any' -function foo(x) { -} +function foo(x) { } var r = foo(1); // void since there's a body var i; var r2 = i(); diff --git a/tests/baselines/reference/callSignaturesWithAccessibilityModifiersOnParameters.js b/tests/baselines/reference/callSignaturesWithAccessibilityModifiersOnParameters.js index 22b312e2570..5584dd7b216 100644 --- a/tests/baselines/reference/callSignaturesWithAccessibilityModifiersOnParameters.js +++ b/tests/baselines/reference/callSignaturesWithAccessibilityModifiersOnParameters.js @@ -40,43 +40,27 @@ var b = { //// [callSignaturesWithAccessibilityModifiersOnParameters.js] // Call signature parameters do not allow accessibility modifiers -function foo(x, y) { -} -var f = function foo(x, y) { -}; -var f2 = function (x, y) { -}; -var f3 = function (x, y) { -}; -var f4 = function (x, y) { -}; -function foo2(x, y) { -} -var f5 = function foo(x, y) { -}; -var f6 = function (x, y) { -}; -var f7 = function (x, y) { -}; -var f8 = function (x, y) { -}; +function foo(x, y) { } +var f = function foo(x, y) { }; +var f2 = function (x, y) { }; +var f3 = function (x, y) { }; +var f4 = function (x, y) { }; +function foo2(x, y) { } +var f5 = function foo(x, y) { }; +var f6 = function (x, y) { }; +var f7 = function (x, y) { }; +var f8 = function (x, y) { }; var C = (function () { function C() { } - C.prototype.foo = function (x, y) { - }; - C.prototype.foo2 = function (x, y) { - }; - C.prototype.foo3 = function (x, y) { - }; + C.prototype.foo = function (x, y) { }; + C.prototype.foo2 = function (x, y) { }; + C.prototype.foo3 = function (x, y) { }; return C; })(); var a; var b = { - foo: function (x, y) { - }, - a: function foo(x, y) { - }, - b: function (x, y) { - } + foo: function (x, y) { }, + a: function foo(x, y) { }, + b: function (x, y) { } }; diff --git a/tests/baselines/reference/callSignaturesWithDuplicateParameters.js b/tests/baselines/reference/callSignaturesWithDuplicateParameters.js index 49e20266dad..6ed7f6f7fe5 100644 --- a/tests/baselines/reference/callSignaturesWithDuplicateParameters.js +++ b/tests/baselines/reference/callSignaturesWithDuplicateParameters.js @@ -40,43 +40,27 @@ var b = { //// [callSignaturesWithDuplicateParameters.js] // Duplicate parameter names are always an error -function foo(x, x) { -} -var f = function foo(x, x) { -}; -var f2 = function (x, x) { -}; -var f3 = function (x, x) { -}; -var f4 = function (x, x) { -}; -function foo2(x, x) { -} -var f5 = function foo(x, x) { -}; -var f6 = function (x, x) { -}; -var f7 = function (x, x) { -}; -var f8 = function (x, y) { -}; +function foo(x, x) { } +var f = function foo(x, x) { }; +var f2 = function (x, x) { }; +var f3 = function (x, x) { }; +var f4 = function (x, x) { }; +function foo2(x, x) { } +var f5 = function foo(x, x) { }; +var f6 = function (x, x) { }; +var f7 = function (x, x) { }; +var f8 = function (x, y) { }; var C = (function () { function C() { } - C.prototype.foo = function (x, x) { - }; - C.prototype.foo2 = function (x, x) { - }; - C.prototype.foo3 = function (x, x) { - }; + C.prototype.foo = function (x, x) { }; + C.prototype.foo2 = function (x, x) { }; + C.prototype.foo3 = function (x, x) { }; return C; })(); var a; var b = { - foo: function (x, x) { - }, - a: function foo(x, x) { - }, - b: function (x, x) { - } + foo: function (x, x) { }, + a: function foo(x, x) { }, + b: function (x, x) { } }; diff --git a/tests/baselines/reference/callSignaturesWithOptionalParameters.js b/tests/baselines/reference/callSignaturesWithOptionalParameters.js index fa2126fb6c5..2f4876fb2de 100644 --- a/tests/baselines/reference/callSignaturesWithOptionalParameters.js +++ b/tests/baselines/reference/callSignaturesWithOptionalParameters.js @@ -57,12 +57,9 @@ b.b(1); //// [callSignaturesWithOptionalParameters.js] // Optional parameters should be valid in all the below casts -function foo(x) { -} -var f = function foo(x) { -}; -var f2 = function (x, y) { -}; +function foo(x) { } +var f = function foo(x) { }; +var f2 = function (x, y) { }; foo(1); foo(); f(1); @@ -72,8 +69,7 @@ f2(1, 2); var C = (function () { function C() { } - C.prototype.foo = function (x) { - }; + C.prototype.foo = function (x) { }; return C; })(); var c; @@ -90,12 +86,9 @@ a(1); a.foo(); a.foo(1); var b = { - foo: function (x) { - }, - a: function foo(x, y) { - }, - b: function (x) { - } + foo: function (x) { }, + a: function foo(x, y) { }, + b: function (x) { } }; b.foo(); b.foo(1); diff --git a/tests/baselines/reference/callSignaturesWithOptionalParameters2.js b/tests/baselines/reference/callSignaturesWithOptionalParameters2.js index 95ecb3a0e9c..a3fb2fe7a85 100644 --- a/tests/baselines/reference/callSignaturesWithOptionalParameters2.js +++ b/tests/baselines/reference/callSignaturesWithOptionalParameters2.js @@ -61,21 +61,17 @@ a.foo(1, 2, 3); //// [callSignaturesWithOptionalParameters2.js] // Optional parameters should be valid in all the below casts -function foo(x) { -} +function foo(x) { } foo(1); foo(); -function foo2(x, y) { -} +function foo2(x, y) { } foo2(1); foo2(1, 2); var C = (function () { function C() { } - C.prototype.foo = function (x) { - }; - C.prototype.foo2 = function (x, y) { - }; + C.prototype.foo = function (x) { }; + C.prototype.foo2 = function (x, y) { }; return C; })(); var c; diff --git a/tests/baselines/reference/callSignaturesWithParameterInitializers.js b/tests/baselines/reference/callSignaturesWithParameterInitializers.js index c95a558e4c8..ee51890a7b1 100644 --- a/tests/baselines/reference/callSignaturesWithParameterInitializers.js +++ b/tests/baselines/reference/callSignaturesWithParameterInitializers.js @@ -59,15 +59,9 @@ b.b(1); //// [callSignaturesWithParameterInitializers.js] // Optional parameters allow initializers only in implementation signatures -function foo(x) { - if (x === void 0) { x = 1; } -} -var f = function foo(x) { - if (x === void 0) { x = 1; } -}; -var f2 = function (x, y) { - if (y === void 0) { y = 1; } -}; +function foo(x) { } +var f = function foo(x) { }; +var f2 = function (x, y) { }; foo(1); foo(); f(1); @@ -77,9 +71,7 @@ f2(1, 2); var C = (function () { function C() { } - C.prototype.foo = function (x) { - if (x === void 0) { x = 1; } - }; + C.prototype.foo = function (x) { }; return C; })(); var c; @@ -97,15 +89,9 @@ a(1); a.foo(); a.foo(1); var b = { - foo: function (x) { - if (x === void 0) { x = 1; } - }, - a: function foo(x, y) { - if (y === void 0) { y = 1; } - }, - b: function (x) { - if (x === void 0) { x = 1; } - } + foo: function (x) { }, + a: function foo(x, y) { }, + b: function (x) { } }; b.foo(); b.foo(1); diff --git a/tests/baselines/reference/callSignaturesWithParameterInitializers2.js b/tests/baselines/reference/callSignaturesWithParameterInitializers2.js index 0524db42f65..5c812d5ecfb 100644 --- a/tests/baselines/reference/callSignaturesWithParameterInitializers2.js +++ b/tests/baselines/reference/callSignaturesWithParameterInitializers2.js @@ -28,29 +28,21 @@ b.foo(1); //// [callSignaturesWithParameterInitializers2.js] // Optional parameters allow initializers only in implementation signatures // All the below declarations are errors -function foo(x) { - if (x === void 0) { x = 1; } -} +function foo(x) { } foo(1); foo(); var C = (function () { function C() { } - C.prototype.foo = function (x) { - if (x === void 0) { x = 1; } - }; + C.prototype.foo = function (x) { }; return C; })(); var c; c.foo(); c.foo(1); var b = { - foo: function (x) { - if (x === void 0) { x = 1; } - }, - foo: function (x) { - if (x === void 0) { x = 1; } - } + foo: function (x) { }, + foo: function (x) { } }; b.foo(); b.foo(1); diff --git a/tests/baselines/reference/callWithWrongNumberOfTypeArguments.js b/tests/baselines/reference/callWithWrongNumberOfTypeArguments.js index f7bc46a7724..74ea401ae3b 100644 --- a/tests/baselines/reference/callWithWrongNumberOfTypeArguments.js +++ b/tests/baselines/reference/callWithWrongNumberOfTypeArguments.js @@ -6,8 +6,7 @@ f(); f(); //// [callWithWrongNumberOfTypeArguments.js] -function f() { -} +function f() { } f(); f(); f(); diff --git a/tests/baselines/reference/captureThisInSuperCall.js b/tests/baselines/reference/captureThisInSuperCall.js index 3f60fcd3cb1..7200fabd8c4 100644 --- a/tests/baselines/reference/captureThisInSuperCall.js +++ b/tests/baselines/reference/captureThisInSuperCall.js @@ -26,7 +26,6 @@ var B = (function (_super) { var _this = this; _super.call(this, { test: function () { return _this.someMethod(); } }); } - B.prototype.someMethod = function () { - }; + B.prototype.someMethod = function () { }; return B; })(A); diff --git a/tests/baselines/reference/castExpressionParentheses.js b/tests/baselines/reference/castExpressionParentheses.js index 2b518226c60..ec18d6e373e 100644 --- a/tests/baselines/reference/castExpressionParentheses.js +++ b/tests/baselines/reference/castExpressionParentheses.js @@ -63,10 +63,8 @@ a().x; (typeof A).x; (-A).x; new (A()); -(function () { -})(); -(function foo() { -})(); +(function () { })(); +(function foo() { })(); (-A).x; // nested cast, should keep one pair of parenthese (-A).x; diff --git a/tests/baselines/reference/catch.js b/tests/baselines/reference/catch.js index c6b13cf4d68..d3babf1f31d 100644 --- a/tests/baselines/reference/catch.js +++ b/tests/baselines/reference/catch.js @@ -7,12 +7,8 @@ function f() { //// [catch.js] function f() { - try { - } - catch (e) { - } - try { - } - catch (e) { - } + try { } + catch (e) { } + try { } + catch (e) { } } diff --git a/tests/baselines/reference/chainedImportAlias.js b/tests/baselines/reference/chainedImportAlias.js index f2b3c6c6cff..077a92d7450 100644 --- a/tests/baselines/reference/chainedImportAlias.js +++ b/tests/baselines/reference/chainedImportAlias.js @@ -14,8 +14,7 @@ y.m.foo(); //// [chainedImportAlias_file0.js] var m; (function (m) { - function foo() { - } + function foo() { } m.foo = foo; })(m = exports.m || (exports.m = {})); //// [chainedImportAlias_file1.js] diff --git a/tests/baselines/reference/classBodyWithStatements.js b/tests/baselines/reference/classBodyWithStatements.js index bae4860f722..2324fe0d791 100644 --- a/tests/baselines/reference/classBodyWithStatements.js +++ b/tests/baselines/reference/classBodyWithStatements.js @@ -25,8 +25,7 @@ var C2 = (function () { } return C2; })(); -function foo() { -} +function foo() { } var x = 1; var y = 2; var C3 = (function () { diff --git a/tests/baselines/reference/classExtendingClass.js b/tests/baselines/reference/classExtendingClass.js index 6c7d9fe679b..130bf5818ee 100644 --- a/tests/baselines/reference/classExtendingClass.js +++ b/tests/baselines/reference/classExtendingClass.js @@ -41,10 +41,8 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C() { } - C.prototype.thing = function () { - }; - C.other = function () { - }; + C.prototype.thing = function () { }; + C.other = function () { }; return C; })(); var D = (function (_super) { @@ -62,10 +60,8 @@ var r4 = D.other(); var C2 = (function () { function C2() { } - C2.prototype.thing = function (x) { - }; - C2.other = function (x) { - }; + C2.prototype.thing = function (x) { }; + C2.other = function (x) { }; return C2; })(); var D2 = (function (_super) { diff --git a/tests/baselines/reference/classExtendingPrimitive.js b/tests/baselines/reference/classExtendingPrimitive.js index b69bc3403f4..81301818918 100644 --- a/tests/baselines/reference/classExtendingPrimitive.js +++ b/tests/baselines/reference/classExtendingPrimitive.js @@ -69,8 +69,7 @@ var C5a = (function () { return C5a; })(); null; -{ -} +{ } var C6 = (function (_super) { __extends(C6, _super); function C6() { diff --git a/tests/baselines/reference/classExtendingPrimitive2.js b/tests/baselines/reference/classExtendingPrimitive2.js index 9a507934455..06b481dbbf4 100644 --- a/tests/baselines/reference/classExtendingPrimitive2.js +++ b/tests/baselines/reference/classExtendingPrimitive2.js @@ -18,5 +18,4 @@ var C5a = (function () { return C5a; })(); null; -{ -} +{ } diff --git a/tests/baselines/reference/classExtendsEveryObjectType.js b/tests/baselines/reference/classExtendsEveryObjectType.js index 2adb974bb28..2ae7ea71cea 100644 --- a/tests/baselines/reference/classExtendsEveryObjectType.js +++ b/tests/baselines/reference/classExtendsEveryObjectType.js @@ -35,8 +35,7 @@ var C2 = (function () { } return C2; })(); -{ -} // error +{ } // error var x; var C3 = (function (_super) { __extends(C3, _super); @@ -56,8 +55,7 @@ var C4 = (function (_super) { } return C4; })(M); // error -function foo() { -} +function foo() { } var C5 = (function (_super) { __extends(C5, _super); function C5() { @@ -71,5 +69,4 @@ var C6 = (function () { return C6; })(); []; -{ -} // error +{ } // error diff --git a/tests/baselines/reference/classExtendsEveryObjectType2.js b/tests/baselines/reference/classExtendsEveryObjectType2.js index f2bcb02fee4..7be13137766 100644 --- a/tests/baselines/reference/classExtendsEveryObjectType2.js +++ b/tests/baselines/reference/classExtendsEveryObjectType2.js @@ -9,13 +9,11 @@ var C2 = (function () { } return C2; })(); -{ -} // error +{ } // error var C6 = (function () { function C6() { } return C6; })(); []; -{ -} // error +{ } // error diff --git a/tests/baselines/reference/classExtendsValidConstructorFunction.js b/tests/baselines/reference/classExtendsValidConstructorFunction.js index a0876e8f709..c2f0f17e534 100644 --- a/tests/baselines/reference/classExtendsValidConstructorFunction.js +++ b/tests/baselines/reference/classExtendsValidConstructorFunction.js @@ -12,8 +12,7 @@ var __extends = this.__extends || function (d, b) { __.prototype = b.prototype; d.prototype = new __(); }; -function foo() { -} +function foo() { } var x = new foo(); // can be used as a constructor function var C = (function (_super) { __extends(C, _super); diff --git a/tests/baselines/reference/classImplementsImportedInterface.js b/tests/baselines/reference/classImplementsImportedInterface.js index c76a026b58a..a2af2083a2a 100644 --- a/tests/baselines/reference/classImplementsImportedInterface.js +++ b/tests/baselines/reference/classImplementsImportedInterface.js @@ -18,8 +18,7 @@ var M2; var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); })(M2 || (M2 = {})); diff --git a/tests/baselines/reference/classMethodWithKeywordName1.js b/tests/baselines/reference/classMethodWithKeywordName1.js index 9b6b7595f04..ba5bb72632a 100644 --- a/tests/baselines/reference/classMethodWithKeywordName1.js +++ b/tests/baselines/reference/classMethodWithKeywordName1.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.try = function () { - }; + C.try = function () { }; return C; })(); diff --git a/tests/baselines/reference/classOrder2.js b/tests/baselines/reference/classOrder2.js index 179be456028..0ba1e016bc8 100644 --- a/tests/baselines/reference/classOrder2.js +++ b/tests/baselines/reference/classOrder2.js @@ -39,8 +39,7 @@ var A = (function (_super) { var B = (function () { function B() { } - B.prototype.bar = function () { - }; + B.prototype.bar = function () { }; return B; })(); var a = new A(); diff --git a/tests/baselines/reference/classOverloadForFunction.js b/tests/baselines/reference/classOverloadForFunction.js index 47c787986da..40f076b0f2c 100644 --- a/tests/baselines/reference/classOverloadForFunction.js +++ b/tests/baselines/reference/classOverloadForFunction.js @@ -10,5 +10,4 @@ var foo = (function () { return foo; })(); ; -function foo() { -} +function foo() { } diff --git a/tests/baselines/reference/classPropertyAsPrivate.js b/tests/baselines/reference/classPropertyAsPrivate.js index 8b59dcde771..fdb16620fac 100644 --- a/tests/baselines/reference/classPropertyAsPrivate.js +++ b/tests/baselines/reference/classPropertyAsPrivate.js @@ -31,24 +31,20 @@ var C = (function () { get: function () { return null; }, - set: function (x) { - }, + set: function (x) { }, enumerable: true, configurable: true }); - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; Object.defineProperty(C, "b", { get: function () { return null; }, - set: function (x) { - }, + set: function (x) { }, enumerable: true, configurable: true }); - C.foo = function () { - }; + C.foo = function () { }; return C; })(); var c; diff --git a/tests/baselines/reference/classPropertyAsProtected.js b/tests/baselines/reference/classPropertyAsProtected.js index ddb193f072a..d036319fe8f 100644 --- a/tests/baselines/reference/classPropertyAsProtected.js +++ b/tests/baselines/reference/classPropertyAsProtected.js @@ -31,24 +31,20 @@ var C = (function () { get: function () { return null; }, - set: function (x) { - }, + set: function (x) { }, enumerable: true, configurable: true }); - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; Object.defineProperty(C, "b", { get: function () { return null; }, - set: function (x) { - }, + set: function (x) { }, enumerable: true, configurable: true }); - C.foo = function () { - }; + C.foo = function () { }; return C; })(); var c; diff --git a/tests/baselines/reference/classPropertyIsPublicByDefault.js b/tests/baselines/reference/classPropertyIsPublicByDefault.js index db1eca56c11..fefa48be10a 100644 --- a/tests/baselines/reference/classPropertyIsPublicByDefault.js +++ b/tests/baselines/reference/classPropertyIsPublicByDefault.js @@ -30,24 +30,20 @@ var C = (function () { get: function () { return null; }, - set: function (x) { - }, + set: function (x) { }, enumerable: true, configurable: true }); - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; Object.defineProperty(C, "b", { get: function () { return null; }, - set: function (x) { - }, + set: function (x) { }, enumerable: true, configurable: true }); - C.foo = function () { - }; + C.foo = function () { }; return C; })(); var c; diff --git a/tests/baselines/reference/classWithEmptyBody.js b/tests/baselines/reference/classWithEmptyBody.js index b4129162a0b..16c50ccec77 100644 --- a/tests/baselines/reference/classWithEmptyBody.js +++ b/tests/baselines/reference/classWithEmptyBody.js @@ -30,8 +30,7 @@ var c; var o = c; c = 1; c = { foo: '' }; -c = function () { -}; +c = function () { }; var D = (function () { function D() { return 1; @@ -42,5 +41,4 @@ var d; var o = d; d = 1; d = { foo: '' }; -d = function () { -}; +d = function () { }; diff --git a/tests/baselines/reference/classWithMultipleBaseClasses.js b/tests/baselines/reference/classWithMultipleBaseClasses.js index c6900f526cb..0e101d61dc9 100644 --- a/tests/baselines/reference/classWithMultipleBaseClasses.js +++ b/tests/baselines/reference/classWithMultipleBaseClasses.js @@ -28,23 +28,19 @@ interface I extends A, B { var A = (function () { function A() { } - A.prototype.foo = function () { - }; + A.prototype.foo = function () { }; return A; })(); var B = (function () { function B() { } - B.prototype.bar = function () { - }; + B.prototype.bar = function () { }; return B; })(); var D = (function () { function D() { } - D.prototype.baz = function () { - }; - D.prototype.bat = function () { - }; + D.prototype.baz = function () { }; + D.prototype.bat = function () { }; return D; })(); diff --git a/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface.js b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface.js index acb802d0f97..e39391be68d 100644 --- a/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface.js +++ b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface.js @@ -37,8 +37,7 @@ var C = (function () { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface2.js b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface2.js index 1048c2e5124..b7aa9d52332 100644 --- a/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface2.js +++ b/tests/baselines/reference/classWithOnlyPublicMembersEquivalentToInterface2.js @@ -39,8 +39,7 @@ var C = (function () { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/classWithOptionalParameter.js b/tests/baselines/reference/classWithOptionalParameter.js index 082e624916a..2f11f15febe 100644 --- a/tests/baselines/reference/classWithOptionalParameter.js +++ b/tests/baselines/reference/classWithOptionalParameter.js @@ -16,14 +16,12 @@ class C2 { var C = (function () { function C() { } - C.prototype.f = function () { - }; + C.prototype.f = function () { }; return C; })(); var C2 = (function () { function C2() { } - C2.prototype.f = function (x) { - }; + C2.prototype.f = function (x) { }; return C2; })(); diff --git a/tests/baselines/reference/classWithOverloadImplementationOfWrongName.js b/tests/baselines/reference/classWithOverloadImplementationOfWrongName.js index f8cb9bf4c5b..4ac6548483e 100644 --- a/tests/baselines/reference/classWithOverloadImplementationOfWrongName.js +++ b/tests/baselines/reference/classWithOverloadImplementationOfWrongName.js @@ -9,7 +9,6 @@ class C { var C = (function () { function C() { } - C.prototype.bar = function (x) { - }; + C.prototype.bar = function (x) { }; return C; })(); diff --git a/tests/baselines/reference/classWithOverloadImplementationOfWrongName2.js b/tests/baselines/reference/classWithOverloadImplementationOfWrongName2.js index 5caba8f3fd5..fd28ae3d9eb 100644 --- a/tests/baselines/reference/classWithOverloadImplementationOfWrongName2.js +++ b/tests/baselines/reference/classWithOverloadImplementationOfWrongName2.js @@ -9,7 +9,6 @@ class C { var C = (function () { function C() { } - C.prototype.bar = function (x) { - }; + C.prototype.bar = function (x) { }; return C; })(); diff --git a/tests/baselines/reference/classWithStaticMembers.js b/tests/baselines/reference/classWithStaticMembers.js index 2cded4b1f2e..0d3747dc313 100644 --- a/tests/baselines/reference/classWithStaticMembers.js +++ b/tests/baselines/reference/classWithStaticMembers.js @@ -38,8 +38,7 @@ var C = (function () { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/classdecl.js b/tests/baselines/reference/classdecl.js index 859476c0dad..e9253b61cac 100644 --- a/tests/baselines/reference/classdecl.js +++ b/tests/baselines/reference/classdecl.js @@ -103,8 +103,7 @@ var __extends = this.__extends || function (d, b) { var a = (function () { function a(ns) { } - a.prototype.pgF = function () { - }; + a.prototype.pgF = function () { }; Object.defineProperty(a.prototype, "d", { get: function () { return 30; diff --git a/tests/baselines/reference/cloduleAcrossModuleDefinitions.js b/tests/baselines/reference/cloduleAcrossModuleDefinitions.js index 9772af20434..c877de38a00 100644 --- a/tests/baselines/reference/cloduleAcrossModuleDefinitions.js +++ b/tests/baselines/reference/cloduleAcrossModuleDefinitions.js @@ -21,10 +21,8 @@ var A; var B = (function () { function B() { } - B.prototype.foo = function () { - }; - B.bar = function () { - }; + B.prototype.foo = function () { }; + B.bar = function () { }; return B; })(); A.B = B; diff --git a/tests/baselines/reference/cloduleTest1.js b/tests/baselines/reference/cloduleTest1.js index f79f1e5c46f..9e7edc77c71 100644 --- a/tests/baselines/reference/cloduleTest1.js +++ b/tests/baselines/reference/cloduleTest1.js @@ -14,8 +14,7 @@ //// [cloduleTest1.js] var $; (function ($) { - function ajax(options) { - } + function ajax(options) { } $.ajax = ajax; })($ || ($ = {})); var it = $('.foo').addClass('bar'); diff --git a/tests/baselines/reference/cloduleWithDuplicateMember1.js b/tests/baselines/reference/cloduleWithDuplicateMember1.js index ed4d69545fc..d64da830598 100644 --- a/tests/baselines/reference/cloduleWithDuplicateMember1.js +++ b/tests/baselines/reference/cloduleWithDuplicateMember1.js @@ -33,8 +33,7 @@ var C = (function () { enumerable: true, configurable: true }); - C.foo = function () { - }; + C.foo = function () { }; return C; })(); var C; @@ -43,10 +42,8 @@ var C; })(C || (C = {})); var C; (function (C) { - function foo() { - } + function foo() { } C.foo = foo; - function x() { - } + function x() { } C.x = x; })(C || (C = {})); diff --git a/tests/baselines/reference/cloduleWithDuplicateMember2.js b/tests/baselines/reference/cloduleWithDuplicateMember2.js index 461930c02ae..c16c6c9af8a 100644 --- a/tests/baselines/reference/cloduleWithDuplicateMember2.js +++ b/tests/baselines/reference/cloduleWithDuplicateMember2.js @@ -16,14 +16,12 @@ var C = (function () { function C() { } Object.defineProperty(C.prototype, "x", { - set: function (y) { - }, + set: function (y) { }, enumerable: true, configurable: true }); Object.defineProperty(C, "y", { - set: function (z) { - }, + set: function (z) { }, enumerable: true, configurable: true }); @@ -35,7 +33,6 @@ var C; })(C || (C = {})); var C; (function (C) { - function x() { - } + function x() { } C.x = x; })(C || (C = {})); diff --git a/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.js b/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.js index bb1c0e7845b..81e1ce4421b 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.js +++ b/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.js @@ -23,9 +23,7 @@ module M { var M; (function (_M) { _M.x = 3; - function fn(M, p) { - if (p === void 0) { p = _M.x; } - } + function fn(M, p) { } })(M || (M = {})); var M; (function (_M) { diff --git a/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.js b/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.js index 56efb2dcc02..5bdd555b0ca 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.js +++ b/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.js @@ -39,9 +39,7 @@ var M; var c = (function () { function c() { } - c.prototype.fn = function (M, p) { - if (p === void 0) { p = _M.x; } - }; + c.prototype.fn = function (M, p) { }; return c; })(); })(M || (M = {})); diff --git a/tests/baselines/reference/commentEmitAtEndOfFile1.js b/tests/baselines/reference/commentEmitAtEndOfFile1.js index 1a1f7cb8900..1be031fa84a 100644 --- a/tests/baselines/reference/commentEmitAtEndOfFile1.js +++ b/tests/baselines/reference/commentEmitAtEndOfFile1.js @@ -16,7 +16,6 @@ var f = ''; // test #2 var foo; (function (foo) { - function bar() { - } + function bar() { } })(foo || (foo = {})); // test #4 diff --git a/tests/baselines/reference/commentInMethodCall.js b/tests/baselines/reference/commentInMethodCall.js index 0f304df0b35..4ad2fc552d7 100644 --- a/tests/baselines/reference/commentInMethodCall.js +++ b/tests/baselines/reference/commentInMethodCall.js @@ -8,5 +8,4 @@ s.map(// do something //// [commentInMethodCall.js] //commment here var s; -s.map(function () { -}); +s.map(function () { }); diff --git a/tests/baselines/reference/commentOnClassAccessor2.js b/tests/baselines/reference/commentOnClassAccessor2.js index c85d17e6e19..e75431a7280 100644 --- a/tests/baselines/reference/commentOnClassAccessor2.js +++ b/tests/baselines/reference/commentOnClassAccessor2.js @@ -25,8 +25,7 @@ var C = (function () { /** * Setter. */ - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/commentsOnObjectLiteral3.js b/tests/baselines/reference/commentsOnObjectLiteral3.js index 5d57b76991e..49f2a6ffbf9 100644 --- a/tests/baselines/reference/commentsOnObjectLiteral3.js +++ b/tests/baselines/reference/commentsOnObjectLiteral3.js @@ -27,8 +27,7 @@ var v = { func: function () { }, //PropertyName + CallSignature - func1: function () { - }, + func1: function () { }, //getter get a() { return this.prop; diff --git a/tests/baselines/reference/compoundAssignmentLHSIsValue.js b/tests/baselines/reference/compoundAssignmentLHSIsValue.js index 5cefd44e1c5..d85d053f8eb 100644 --- a/tests/baselines/reference/compoundAssignmentLHSIsValue.js +++ b/tests/baselines/reference/compoundAssignmentLHSIsValue.js @@ -213,17 +213,13 @@ var Derived = (function (_super) { return Derived; })(C); // function expression -function bar1() { -} +function bar1() { } value; -function bar2() { -} +function bar2() { } value; -(function () { -}); +(function () { }); value; -(function () { -}); +(function () { }); value; // function calls foo() *= value; @@ -253,9 +249,7 @@ foo() += value; ({}) += value; ([]) *= value; ([]) += value; -(function baz1() { -}) *= value; -(function baz2() { -}) += value; +(function baz1() { }) *= value; +(function baz2() { }) += value; (foo()) *= value; (foo()) += value; diff --git a/tests/baselines/reference/computedPropertyNames1.js b/tests/baselines/reference/computedPropertyNames1.js index 8f3e448d698..4f0bcb3a8f4 100644 --- a/tests/baselines/reference/computedPropertyNames1.js +++ b/tests/baselines/reference/computedPropertyNames1.js @@ -9,6 +9,5 @@ var v = { get [0 + 1]() { return 0; }, - set [0 + 1](v) { - } //No error + set [0 + 1](v) { } //No error }; diff --git a/tests/baselines/reference/computedPropertyNames10.js b/tests/baselines/reference/computedPropertyNames10.js index 138cbd7a4b2..eb8db65dba5 100644 --- a/tests/baselines/reference/computedPropertyNames10.js +++ b/tests/baselines/reference/computedPropertyNames10.js @@ -21,26 +21,15 @@ var s; var n; var a; var v = { - [s]() { - }, - [n]() { - }, - [s + s]() { - }, - [s + n]() { - }, - [+s]() { - }, - [""]() { - }, - [0]() { - }, - [a]() { - }, - [true]() { - }, - [`hello bye`]() { - }, - [`hello ${a} bye`]() { - } + [s]() { }, + [n]() { }, + [s + s]() { }, + [s + n]() { }, + [+s]() { }, + [""]() { }, + [0]() { }, + [a]() { }, + [true]() { }, + [`hello bye`]() { }, + [`hello ${a} bye`]() { } }; diff --git a/tests/baselines/reference/computedPropertyNames11.js b/tests/baselines/reference/computedPropertyNames11.js index d82a7c4e512..206fce0d76f 100644 --- a/tests/baselines/reference/computedPropertyNames11.js +++ b/tests/baselines/reference/computedPropertyNames11.js @@ -24,28 +24,23 @@ var v = { get [s]() { return 0; }, - set [n](v) { - }, + set [n](v) { }, get [s + s]() { return 0; }, - set [s + n](v) { - }, + set [s + n](v) { }, get [+s]() { return 0; }, - set [""](v) { - }, + set [""](v) { }, get [0]() { return 0; }, - set [a](v) { - }, + set [a](v) { }, get [true]() { return 0; }, - set [`hello bye`](v) { - }, + set [`hello bye`](v) { }, get [`hello ${a} bye`]() { return 0; } diff --git a/tests/baselines/reference/computedPropertyNames13.js b/tests/baselines/reference/computedPropertyNames13.js index ea531a9c644..0456e32602f 100644 --- a/tests/baselines/reference/computedPropertyNames13.js +++ b/tests/baselines/reference/computedPropertyNames13.js @@ -23,27 +23,16 @@ var a; var C = (function () { function C() { } - C.prototype[s] = function () { - }; - C.prototype[n] = function () { - }; - C[s + s] = function () { - }; - C.prototype[s + n] = function () { - }; - C.prototype[+s] = function () { - }; - C[""] = function () { - }; - C.prototype[0] = function () { - }; - C.prototype[a] = function () { - }; - C[true] = function () { - }; - C.prototype[`hello bye`] = function () { - }; - C[`hello ${a} bye`] = function () { - }; + C.prototype[s] = function () { }; + C.prototype[n] = function () { }; + C[s + s] = function () { }; + C.prototype[s + n] = function () { }; + C.prototype[+s] = function () { }; + C[""] = function () { }; + C.prototype[0] = function () { }; + C.prototype[a] = function () { }; + C[true] = function () { }; + C.prototype[`hello bye`] = function () { }; + C[`hello ${a} bye`] = function () { }; return C; })(); diff --git a/tests/baselines/reference/computedPropertyNames14.js b/tests/baselines/reference/computedPropertyNames14.js index aa551795da6..a0b39a5e143 100644 --- a/tests/baselines/reference/computedPropertyNames14.js +++ b/tests/baselines/reference/computedPropertyNames14.js @@ -14,17 +14,11 @@ var b; var C = (function () { function C() { } - C.prototype[b] = function () { - }; - C[true] = function () { - }; - C.prototype[[]] = function () { - }; - C[{}] = function () { - }; - C.prototype[undefined] = function () { - }; - C[null] = function () { - }; + C.prototype[b] = function () { }; + C[true] = function () { }; + C.prototype[[]] = function () { }; + C[{}] = function () { }; + C.prototype[undefined] = function () { }; + C[null] = function () { }; return C; })(); diff --git a/tests/baselines/reference/computedPropertyNames15.js b/tests/baselines/reference/computedPropertyNames15.js index 1b506bbeb90..429b23614ab 100644 --- a/tests/baselines/reference/computedPropertyNames15.js +++ b/tests/baselines/reference/computedPropertyNames15.js @@ -15,11 +15,8 @@ var p3; var C = (function () { function C() { } - C.prototype[p1] = function () { - }; - C.prototype[p2] = function () { - }; - C.prototype[p3] = function () { - }; + C.prototype[p1] = function () { }; + C.prototype[p2] = function () { }; + C.prototype[p3] = function () { }; return C; })(); diff --git a/tests/baselines/reference/computedPropertyNames16.js b/tests/baselines/reference/computedPropertyNames16.js index 295deb9ee82..9a55c3f9ed5 100644 --- a/tests/baselines/reference/computedPropertyNames16.js +++ b/tests/baselines/reference/computedPropertyNames16.js @@ -31,8 +31,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C.prototype, n, { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -44,8 +43,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C.prototype, s + n, { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -57,8 +55,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C, "", { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -70,8 +67,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C.prototype, a, { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -83,8 +79,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C.prototype, `hello bye`, { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNames17.js b/tests/baselines/reference/computedPropertyNames17.js index 5a55dbf7e1b..026671ed8a6 100644 --- a/tests/baselines/reference/computedPropertyNames17.js +++ b/tests/baselines/reference/computedPropertyNames17.js @@ -22,8 +22,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C, true, { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -35,8 +34,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C.prototype, {}, { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -48,8 +46,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C.prototype, null, { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNames2.js b/tests/baselines/reference/computedPropertyNames2.js index 78d53ef94fc..737ec08c207 100644 --- a/tests/baselines/reference/computedPropertyNames2.js +++ b/tests/baselines/reference/computedPropertyNames2.js @@ -16,31 +16,25 @@ var accessorName = "accessor"; var C = (function () { function C() { } - C.prototype[methodName] = function () { - }; - C[methodName] = function () { - }; + C.prototype[methodName] = function () { }; + C[methodName] = function () { }; Object.defineProperty(C.prototype, accessorName, { - get: function () { - }, + get: function () { }, enumerable: true, configurable: true }); Object.defineProperty(C.prototype, accessorName, { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); Object.defineProperty(C, accessorName, { - get: function () { - }, + get: function () { }, enumerable: true, configurable: true }); Object.defineProperty(C, accessorName, { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNames21.js b/tests/baselines/reference/computedPropertyNames21.js index 250d9142aa5..d5ca1422a5e 100644 --- a/tests/baselines/reference/computedPropertyNames21.js +++ b/tests/baselines/reference/computedPropertyNames21.js @@ -13,7 +13,6 @@ var C = (function () { C.prototype.bar = function () { return 0; }; - C.prototype[this.bar()] = function () { - }; + C.prototype[this.bar()] = function () { }; return C; })(); diff --git a/tests/baselines/reference/computedPropertyNames22.js b/tests/baselines/reference/computedPropertyNames22.js index b42946536d0..dc6a53ff91a 100644 --- a/tests/baselines/reference/computedPropertyNames22.js +++ b/tests/baselines/reference/computedPropertyNames22.js @@ -14,8 +14,7 @@ var C = (function () { } C.prototype.bar = function () { var obj = { - [this.bar()]() { - } + [this.bar()]() { } }; return 0; }; diff --git a/tests/baselines/reference/computedPropertyNames23.js b/tests/baselines/reference/computedPropertyNames23.js index 9d71ef34c1e..bd94501b577 100644 --- a/tests/baselines/reference/computedPropertyNames23.js +++ b/tests/baselines/reference/computedPropertyNames23.js @@ -15,7 +15,6 @@ var C = (function () { C.prototype.bar = function () { return 0; }; - C.prototype[{ [this.bar()]: 1 }[0]] = function () { - }; + C.prototype[{ [this.bar()]: 1 }[0]] = function () { }; return C; })(); diff --git a/tests/baselines/reference/computedPropertyNames24.js b/tests/baselines/reference/computedPropertyNames24.js index 2ef2826ee22..389743497a9 100644 --- a/tests/baselines/reference/computedPropertyNames24.js +++ b/tests/baselines/reference/computedPropertyNames24.js @@ -32,7 +32,6 @@ var C = (function (_super) { } // Gets emitted as super, not _super, which is consistent with // use of super in static properties initializers. - C.prototype[super.bar.call(this)] = function () { - }; + C.prototype[super.bar.call(this)] = function () { }; return C; })(Base); diff --git a/tests/baselines/reference/computedPropertyNames25.js b/tests/baselines/reference/computedPropertyNames25.js index a15fcb217e7..8252fdce7f2 100644 --- a/tests/baselines/reference/computedPropertyNames25.js +++ b/tests/baselines/reference/computedPropertyNames25.js @@ -35,8 +35,7 @@ var C = (function (_super) { } C.prototype.foo = function () { var obj = { - [_super.prototype.bar.call(this)]() { - } + [_super.prototype.bar.call(this)]() { } }; return 0; }; diff --git a/tests/baselines/reference/computedPropertyNames26.js b/tests/baselines/reference/computedPropertyNames26.js index 96760fc279c..c19137ce32b 100644 --- a/tests/baselines/reference/computedPropertyNames26.js +++ b/tests/baselines/reference/computedPropertyNames26.js @@ -34,7 +34,6 @@ var C = (function (_super) { } // Gets emitted as super, not _super, which is consistent with // use of super in static properties initializers. - C.prototype[{ [super.bar.call(this)]: 1 }[0]] = function () { - }; + C.prototype[{ [super.bar.call(this)]: 1 }[0]] = function () { }; return C; })(Base); diff --git a/tests/baselines/reference/computedPropertyNames27.js b/tests/baselines/reference/computedPropertyNames27.js index 71db977e9b6..1cae552689b 100644 --- a/tests/baselines/reference/computedPropertyNames27.js +++ b/tests/baselines/reference/computedPropertyNames27.js @@ -22,7 +22,6 @@ var C = (function (_super) { function C() { _super.apply(this, arguments); } - C.prototype[(_super.call(this), "prop")] = function () { - }; + C.prototype[(_super.call(this), "prop")] = function () { }; return C; })(Base); diff --git a/tests/baselines/reference/computedPropertyNames28.js b/tests/baselines/reference/computedPropertyNames28.js index 96c7cd082f1..0a3985a640c 100644 --- a/tests/baselines/reference/computedPropertyNames28.js +++ b/tests/baselines/reference/computedPropertyNames28.js @@ -27,8 +27,7 @@ var C = (function (_super) { function C() { _super.call(this); var obj = { - [(_super.call(this), "prop")]() { - } + [(_super.call(this), "prop")]() { } }; } return C; diff --git a/tests/baselines/reference/computedPropertyNames29.js b/tests/baselines/reference/computedPropertyNames29.js index 94e83f34629..50d050d888e 100644 --- a/tests/baselines/reference/computedPropertyNames29.js +++ b/tests/baselines/reference/computedPropertyNames29.js @@ -17,8 +17,7 @@ var C = (function () { C.prototype.bar = function () { (() => { var obj = { - [this.bar()]() { - } // needs capture + [this.bar()]() { } // needs capture }; }); return 0; diff --git a/tests/baselines/reference/computedPropertyNames3.js b/tests/baselines/reference/computedPropertyNames3.js index 969bbf96d86..19f938e32ad 100644 --- a/tests/baselines/reference/computedPropertyNames3.js +++ b/tests/baselines/reference/computedPropertyNames3.js @@ -14,32 +14,25 @@ var id; var C = (function () { function C() { } - C.prototype[0 + 1] = function () { - }; - C[() => { - }] = function () { - }; + C.prototype[0 + 1] = function () { }; + C[() => { }] = function () { }; Object.defineProperty(C.prototype, delete id, { - get: function () { - }, + get: function () { }, enumerable: true, configurable: true }); Object.defineProperty(C.prototype, [0, 1], { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); Object.defineProperty(C, "", { - get: function () { - }, + get: function () { }, enumerable: true, configurable: true }); Object.defineProperty(C, id.toString(), { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNames30.js b/tests/baselines/reference/computedPropertyNames30.js index 608531ffb5b..ae2b24385f4 100644 --- a/tests/baselines/reference/computedPropertyNames30.js +++ b/tests/baselines/reference/computedPropertyNames30.js @@ -36,8 +36,7 @@ var C = (function (_super) { // Ideally, we would capture this. But the reference is // illegal, and not capturing this is consistent with //treatment of other similar violations. - [(_super.call(this), "prop")]() { - } + [(_super.call(this), "prop")]() { } }; }); } diff --git a/tests/baselines/reference/computedPropertyNames31.js b/tests/baselines/reference/computedPropertyNames31.js index 9a31b80e346..227f10e3bd4 100644 --- a/tests/baselines/reference/computedPropertyNames31.js +++ b/tests/baselines/reference/computedPropertyNames31.js @@ -39,8 +39,7 @@ var C = (function (_super) { var _this = this; (() => { var obj = { - [_super.prototype.bar.call(_this)]() { - } // needs capture + [_super.prototype.bar.call(_this)]() { } // needs capture }; }); return 0; diff --git a/tests/baselines/reference/computedPropertyNames32.js b/tests/baselines/reference/computedPropertyNames32.js index d3e98681369..9bc723581ef 100644 --- a/tests/baselines/reference/computedPropertyNames32.js +++ b/tests/baselines/reference/computedPropertyNames32.js @@ -17,7 +17,6 @@ var C = (function () { C.prototype.bar = function () { return 0; }; - C.prototype[foo()] = function () { - }; + C.prototype[foo()] = function () { }; return C; })(); diff --git a/tests/baselines/reference/computedPropertyNames33.js b/tests/baselines/reference/computedPropertyNames33.js index 554ec315897..43ceeb2b2fb 100644 --- a/tests/baselines/reference/computedPropertyNames33.js +++ b/tests/baselines/reference/computedPropertyNames33.js @@ -18,8 +18,7 @@ var C = (function () { } C.prototype.bar = function () { var obj = { - [foo()]() { - } + [foo()]() { } }; return 0; }; diff --git a/tests/baselines/reference/computedPropertyNames34.js b/tests/baselines/reference/computedPropertyNames34.js index f1d774139b1..12892eefe4f 100644 --- a/tests/baselines/reference/computedPropertyNames34.js +++ b/tests/baselines/reference/computedPropertyNames34.js @@ -18,8 +18,7 @@ var C = (function () { } C.bar = function () { var obj = { - [foo()]() { - } + [foo()]() { } }; return 0; }; diff --git a/tests/baselines/reference/computedPropertyNames36.js b/tests/baselines/reference/computedPropertyNames36.js index 7c731014d1e..5df5c503911 100644 --- a/tests/baselines/reference/computedPropertyNames36.js +++ b/tests/baselines/reference/computedPropertyNames36.js @@ -33,8 +33,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C.prototype, "set1", { - set: function (p) { - }, + set: function (p) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNames37.js b/tests/baselines/reference/computedPropertyNames37.js index fb4c32909d5..540dfa27e1e 100644 --- a/tests/baselines/reference/computedPropertyNames37.js +++ b/tests/baselines/reference/computedPropertyNames37.js @@ -33,8 +33,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C.prototype, "set1", { - set: function (p) { - }, + set: function (p) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNames38.js b/tests/baselines/reference/computedPropertyNames38.js index 922244bfecf..fbbbe83ddc6 100644 --- a/tests/baselines/reference/computedPropertyNames38.js +++ b/tests/baselines/reference/computedPropertyNames38.js @@ -33,8 +33,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C.prototype, 1 << 6, { - set: function (p) { - }, + set: function (p) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNames39.js b/tests/baselines/reference/computedPropertyNames39.js index 62621f4e754..1d367c8d856 100644 --- a/tests/baselines/reference/computedPropertyNames39.js +++ b/tests/baselines/reference/computedPropertyNames39.js @@ -33,8 +33,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C.prototype, 1 << 6, { - set: function (p) { - }, + set: function (p) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNames43.js b/tests/baselines/reference/computedPropertyNames43.js index 22ac7774439..0e7c3b5dac1 100644 --- a/tests/baselines/reference/computedPropertyNames43.js +++ b/tests/baselines/reference/computedPropertyNames43.js @@ -48,8 +48,7 @@ var D = (function (_super) { configurable: true }); Object.defineProperty(D.prototype, "set1", { - set: function (p) { - }, + set: function (p) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNames44.js b/tests/baselines/reference/computedPropertyNames44.js index c91a52e8199..37466dad602 100644 --- a/tests/baselines/reference/computedPropertyNames44.js +++ b/tests/baselines/reference/computedPropertyNames44.js @@ -46,8 +46,7 @@ var D = (function (_super) { _super.apply(this, arguments); } Object.defineProperty(D.prototype, "set1", { - set: function (p) { - }, + set: function (p) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNames45.js b/tests/baselines/reference/computedPropertyNames45.js index 7ec3c165e12..69e0df349ca 100644 --- a/tests/baselines/reference/computedPropertyNames45.js +++ b/tests/baselines/reference/computedPropertyNames45.js @@ -47,8 +47,7 @@ var D = (function (_super) { _super.apply(this, arguments); } Object.defineProperty(D.prototype, "set1", { - set: function (p) { - }, + set: function (p) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNames9.js b/tests/baselines/reference/computedPropertyNames9.js index ede8bb3012b..c2e89cd3133 100644 --- a/tests/baselines/reference/computedPropertyNames9.js +++ b/tests/baselines/reference/computedPropertyNames9.js @@ -11,8 +11,7 @@ var v = { } //// [computedPropertyNames9.js] -function f(x) { -} +function f(x) { } var v = { [f("")]: 0, [f(0)]: 0, diff --git a/tests/baselines/reference/computedPropertyNamesContextualType6.js b/tests/baselines/reference/computedPropertyNamesContextualType6.js index a92958871d9..20678a60658 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType6.js +++ b/tests/baselines/reference/computedPropertyNamesContextualType6.js @@ -16,8 +16,7 @@ foo({ //// [computedPropertyNamesContextualType6.js] foo({ p: "", - 0: () => { - }, + 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0] diff --git a/tests/baselines/reference/computedPropertyNamesContextualType7.js b/tests/baselines/reference/computedPropertyNamesContextualType7.js index 00103bc76db..a948c31d750 100644 --- a/tests/baselines/reference/computedPropertyNamesContextualType7.js +++ b/tests/baselines/reference/computedPropertyNamesContextualType7.js @@ -16,8 +16,7 @@ foo({ //// [computedPropertyNamesContextualType7.js] foo({ p: "", - 0: () => { - }, + 0: () => { }, ["hi" + "bye"]: true, [0 + 1]: 0, [+"hi"]: [0] diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit1.js b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1.js index bc8b5d0e910..bbdb6cd7baf 100644 --- a/tests/baselines/reference/computedPropertyNamesDeclarationEmit1.js +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit1.js @@ -9,8 +9,7 @@ class C { var C = (function () { function C() { } - C.prototype["" + ""] = function () { - }; + C.prototype["" + ""] = function () { }; Object.defineProperty(C.prototype, "" + "", { get: function () { return 0; @@ -19,8 +18,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C.prototype, "" + "", { - set: function (x) { - }, + set: function (x) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit2.js b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2.js index 647f3fab135..10313841c4f 100644 --- a/tests/baselines/reference/computedPropertyNamesDeclarationEmit2.js +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit2.js @@ -9,8 +9,7 @@ class C { var C = (function () { function C() { } - C["" + ""] = function () { - }; + C["" + ""] = function () { }; Object.defineProperty(C, "" + "", { get: function () { return 0; @@ -19,8 +18,7 @@ var C = (function () { configurable: true }); Object.defineProperty(C, "" + "", { - set: function (x) { - }, + set: function (x) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/computedPropertyNamesDeclarationEmit5.js b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5.js index d7ac3319eca..d59d84b9e72 100644 --- a/tests/baselines/reference/computedPropertyNamesDeclarationEmit5.js +++ b/tests/baselines/reference/computedPropertyNamesDeclarationEmit5.js @@ -9,13 +9,11 @@ var v = { //// [computedPropertyNamesDeclarationEmit5.js] var v = { ["" + ""]: 0, - ["" + ""]() { - }, + ["" + ""]() { }, get ["" + ""]() { return 0; }, - set ["" + ""](x) { - } + set ["" + ""](x) { } }; diff --git a/tests/baselines/reference/computedPropertyNamesOnOverloads.js b/tests/baselines/reference/computedPropertyNamesOnOverloads.js index 1db857620e9..4312e533318 100644 --- a/tests/baselines/reference/computedPropertyNamesOnOverloads.js +++ b/tests/baselines/reference/computedPropertyNamesOnOverloads.js @@ -13,7 +13,6 @@ var accessorName = "accessor"; var C = (function () { function C() { } - C.prototype[methodName] = function (v) { - }; + C.prototype[methodName] = function (v) { }; return C; })(); diff --git a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js index b628c21bd14..b2830e4d1d6 100644 --- a/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js +++ b/tests/baselines/reference/conditionalOperatorConditionIsObjectType.js @@ -77,8 +77,7 @@ var exprBoolean2; var exprNumber2; var exprString2; var exprIsObject2; -function foo() { -} +function foo() { } ; var C = (function () { function C() { diff --git a/tests/baselines/reference/conditionallyDuplicateOverloadsCausedByOverloadResolution.js b/tests/baselines/reference/conditionallyDuplicateOverloadsCausedByOverloadResolution.js index e2029d1bf37..d8a36f9e09e 100644 --- a/tests/baselines/reference/conditionallyDuplicateOverloadsCausedByOverloadResolution.js +++ b/tests/baselines/reference/conditionallyDuplicateOverloadsCausedByOverloadResolution.js @@ -22,8 +22,7 @@ var out2 = foo2((x, y) => { //// [conditionallyDuplicateOverloadsCausedByOverloadResolution.js] var out = foo(function (x, y) { - function bar() { - } + function bar() { } return bar; }); var out2 = foo2(function (x, y) { diff --git a/tests/baselines/reference/conflictMarkerTrivia2.js b/tests/baselines/reference/conflictMarkerTrivia2.js index bbb631de388..bbf6726b994 100644 --- a/tests/baselines/reference/conflictMarkerTrivia2.js +++ b/tests/baselines/reference/conflictMarkerTrivia2.js @@ -20,7 +20,6 @@ var C = (function () { C.prototype.foo = function () { a(); }; - C.prototype.bar = function () { - }; + C.prototype.bar = function () { }; return C; })(); diff --git a/tests/baselines/reference/conflictingTypeAnnotatedVar.js b/tests/baselines/reference/conflictingTypeAnnotatedVar.js index b44dc6f1e33..283912c487b 100644 --- a/tests/baselines/reference/conflictingTypeAnnotatedVar.js +++ b/tests/baselines/reference/conflictingTypeAnnotatedVar.js @@ -5,7 +5,5 @@ function foo(): number { } //// [conflictingTypeAnnotatedVar.js] var foo; -function foo() { -} -function foo() { -} +function foo() { } +function foo() { } diff --git a/tests/baselines/reference/constDeclarations-access2.js b/tests/baselines/reference/constDeclarations-access2.js index fd51c932636..ae8dae70646 100644 --- a/tests/baselines/reference/constDeclarations-access2.js +++ b/tests/baselines/reference/constDeclarations-access2.js @@ -62,11 +62,9 @@ x--; ++((x)); // OK var a = x + 1; -function f(v) { -} +function f(v) { } f(x); -if (x) { -} +if (x) { } x; (x); -x; diff --git a/tests/baselines/reference/constDeclarations-access3.js b/tests/baselines/reference/constDeclarations-access3.js index 9ac4880bdd1..9140da965c3 100644 --- a/tests/baselines/reference/constDeclarations-access3.js +++ b/tests/baselines/reference/constDeclarations-access3.js @@ -71,11 +71,9 @@ M.x--; M["x"] = 0; // OK var a = M.x + 1; -function f(v) { -} +function f(v) { } f(M.x); -if (M.x) { -} +if (M.x) { } M.x; (M.x); -M.x; diff --git a/tests/baselines/reference/constDeclarations-access4.js b/tests/baselines/reference/constDeclarations-access4.js index b226e746bba..608d950526a 100644 --- a/tests/baselines/reference/constDeclarations-access4.js +++ b/tests/baselines/reference/constDeclarations-access4.js @@ -67,11 +67,9 @@ M.x--; M["x"] = 0; // OK var a = M.x + 1; -function f(v) { -} +function f(v) { } f(M.x); -if (M.x) { -} +if (M.x) { } M.x; (M.x); -M.x; diff --git a/tests/baselines/reference/constDeclarations-access5.js b/tests/baselines/reference/constDeclarations-access5.js index 7acc95ad055..71b8c99ae58 100644 --- a/tests/baselines/reference/constDeclarations-access5.js +++ b/tests/baselines/reference/constDeclarations-access5.js @@ -76,11 +76,9 @@ define(["require", "exports", 'constDeclarations_access_1'], function (require, m["x"] = 0; // OK var a = m.x + 1; - function f(v) { - } + function f(v) { } f(m.x); - if (m.x) { - } + if (m.x) { } m.x; (m.x); -m.x; diff --git a/tests/baselines/reference/constDeclarations-errors.js b/tests/baselines/reference/constDeclarations-errors.js index 0af646010f0..2947593b01d 100644 --- a/tests/baselines/reference/constDeclarations-errors.js +++ b/tests/baselines/reference/constDeclarations-errors.js @@ -23,14 +23,10 @@ const c1; const c2; const c3, c4, c5, c6; // error, missing initialicer // error, can not be unintalized -for (var c in {}) { -} +for (var c in {}) { } // error, assigning to a const -for (const c8 = 0; c8 < 1; c8++) { -} +for (const c8 = 0; c8 < 1; c8++) { } // error, can not be unintalized -for (const c9; c9 < 1;) { -} +for (const c9; c9 < 1;) { } // error, can not be unintalized -for (const c10 = 0, c11; c10 < 1;) { -} +for (const c10 = 0, c11; c10 < 1;) { } diff --git a/tests/baselines/reference/constantOverloadFunction.js b/tests/baselines/reference/constantOverloadFunction.js index 12e84e2077f..408b56805fb 100644 --- a/tests/baselines/reference/constantOverloadFunction.js +++ b/tests/baselines/reference/constantOverloadFunction.js @@ -23,8 +23,7 @@ var __extends = this.__extends || function (d, b) { var Base = (function () { function Base() { } - Base.prototype.foo = function () { - }; + Base.prototype.foo = function () { }; return Base; })(); var Derived1 = (function (_super) { @@ -32,8 +31,7 @@ var Derived1 = (function (_super) { function Derived1() { _super.apply(this, arguments); } - Derived1.prototype.bar = function () { - }; + Derived1.prototype.bar = function () { }; return Derived1; })(Base); var Derived2 = (function (_super) { @@ -41,8 +39,7 @@ var Derived2 = (function (_super) { function Derived2() { _super.apply(this, arguments); } - Derived2.prototype.baz = function () { - }; + Derived2.prototype.baz = function () { }; return Derived2; })(Base); var Derived3 = (function (_super) { @@ -50,8 +47,7 @@ var Derived3 = (function (_super) { function Derived3() { _super.apply(this, arguments); } - Derived3.prototype.biz = function () { - }; + Derived3.prototype.biz = function () { }; return Derived3; })(Base); function foo(tagName) { diff --git a/tests/baselines/reference/constantOverloadFunctionNoSubtypeError.js b/tests/baselines/reference/constantOverloadFunctionNoSubtypeError.js index 563b73d7e5b..591d6171dbe 100644 --- a/tests/baselines/reference/constantOverloadFunctionNoSubtypeError.js +++ b/tests/baselines/reference/constantOverloadFunctionNoSubtypeError.js @@ -24,8 +24,7 @@ var __extends = this.__extends || function (d, b) { var Base = (function () { function Base() { } - Base.prototype.foo = function () { - }; + Base.prototype.foo = function () { }; return Base; })(); var Derived1 = (function (_super) { @@ -33,8 +32,7 @@ var Derived1 = (function (_super) { function Derived1() { _super.apply(this, arguments); } - Derived1.prototype.bar = function () { - }; + Derived1.prototype.bar = function () { }; return Derived1; })(Base); var Derived2 = (function (_super) { @@ -42,8 +40,7 @@ var Derived2 = (function (_super) { function Derived2() { _super.apply(this, arguments); } - Derived2.prototype.baz = function () { - }; + Derived2.prototype.baz = function () { }; return Derived2; })(Base); var Derived3 = (function (_super) { @@ -51,8 +48,7 @@ var Derived3 = (function (_super) { function Derived3() { _super.apply(this, arguments); } - Derived3.prototype.biz = function () { - }; + Derived3.prototype.biz = function () { }; return Derived3; })(Base); function foo(tagName) { diff --git a/tests/baselines/reference/constraintCheckInGenericBaseTypeReference.js b/tests/baselines/reference/constraintCheckInGenericBaseTypeReference.js index 3d99e07bb5e..caeb2d32ee4 100644 --- a/tests/baselines/reference/constraintCheckInGenericBaseTypeReference.js +++ b/tests/baselines/reference/constraintCheckInGenericBaseTypeReference.js @@ -30,8 +30,7 @@ var __extends = this.__extends || function (d, b) { var Constraint = (function () { function Constraint() { } - Constraint.prototype.method = function () { - }; + Constraint.prototype.method = function () { }; return Constraint; })(); var GenericBase = (function () { diff --git a/tests/baselines/reference/constraintErrors1.js b/tests/baselines/reference/constraintErrors1.js index c8da89d574c..71723130b55 100644 --- a/tests/baselines/reference/constraintErrors1.js +++ b/tests/baselines/reference/constraintErrors1.js @@ -2,5 +2,4 @@ function foo5(test: T) { } //// [constraintErrors1.js] -function foo5(test) { -} +function foo5(test) { } diff --git a/tests/baselines/reference/constraintSatisfactionWithEmptyObject.js b/tests/baselines/reference/constraintSatisfactionWithEmptyObject.js index 5f9e902141b..7850b0ebd01 100644 --- a/tests/baselines/reference/constraintSatisfactionWithEmptyObject.js +++ b/tests/baselines/reference/constraintSatisfactionWithEmptyObject.js @@ -40,8 +40,7 @@ var i2: I2<{}>; //// [constraintSatisfactionWithEmptyObject.js] // valid uses of a basic object constraint, no errors expected // Object constraint -function foo(x) { -} +function foo(x) { } var r = foo({}); var a = {}; var r = foo({}); @@ -54,8 +53,7 @@ var C = (function () { var r2 = new C({}); var i; // {} constraint -function foo2(x) { -} +function foo2(x) { } var r = foo2({}); var a = {}; var r = foo2({}); diff --git a/tests/baselines/reference/constructorArgWithGenericCallSignature.js b/tests/baselines/reference/constructorArgWithGenericCallSignature.js index 5fa7c46124b..ca859869850 100644 --- a/tests/baselines/reference/constructorArgWithGenericCallSignature.js +++ b/tests/baselines/reference/constructorArgWithGenericCallSignature.js @@ -23,8 +23,7 @@ var Test; return MyClass; })(); Test.MyClass = MyClass; - function F(func) { - } + function F(func) { } Test.F = F; })(Test || (Test = {})); var func; diff --git a/tests/baselines/reference/constructorOverloads1.js b/tests/baselines/reference/constructorOverloads1.js index 2e6dda4bd20..97f33dca862 100644 --- a/tests/baselines/reference/constructorOverloads1.js +++ b/tests/baselines/reference/constructorOverloads1.js @@ -25,10 +25,8 @@ f1.bar2(); var Foo = (function () { function Foo(x) { } - Foo.prototype.bar1 = function () { - }; - Foo.prototype.bar2 = function () { - }; + Foo.prototype.bar1 = function () { }; + Foo.prototype.bar2 = function () { }; return Foo; })(); var f1 = new Foo("hey"); diff --git a/tests/baselines/reference/constructorOverloads2.js b/tests/baselines/reference/constructorOverloads2.js index 6ab367d8434..e3eae0ed5a9 100644 --- a/tests/baselines/reference/constructorOverloads2.js +++ b/tests/baselines/reference/constructorOverloads2.js @@ -35,8 +35,7 @@ var __extends = this.__extends || function (d, b) { var FooBase = (function () { function FooBase(x) { } - FooBase.prototype.bar1 = function () { - }; + FooBase.prototype.bar1 = function () { }; return FooBase; })(); var Foo = (function (_super) { @@ -44,8 +43,7 @@ var Foo = (function (_super) { function Foo(x, y) { _super.call(this, x); } - Foo.prototype.bar1 = function () { - }; + Foo.prototype.bar1 = function () { }; return Foo; })(FooBase); var f1 = new Foo("hey"); diff --git a/tests/baselines/reference/constructorOverloads3.js b/tests/baselines/reference/constructorOverloads3.js index 08f43cf9301..c54226745c2 100644 --- a/tests/baselines/reference/constructorOverloads3.js +++ b/tests/baselines/reference/constructorOverloads3.js @@ -33,8 +33,7 @@ var Foo = (function (_super) { __extends(Foo, _super); function Foo(x, y) { } - Foo.prototype.bar1 = function () { - }; + Foo.prototype.bar1 = function () { }; return Foo; })(FooBase); var f1 = new Foo("hey"); diff --git a/tests/baselines/reference/constructorReturnsInvalidType.js b/tests/baselines/reference/constructorReturnsInvalidType.js index 92afb41a3fe..7f6119cc8bd 100644 --- a/tests/baselines/reference/constructorReturnsInvalidType.js +++ b/tests/baselines/reference/constructorReturnsInvalidType.js @@ -14,8 +14,7 @@ var X = (function () { function X() { return 1; } - X.prototype.foo = function () { - }; + X.prototype.foo = function () { }; return X; })(); var x = new X(); diff --git a/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.js b/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.js index 5a9a03f293c..86338c1d913 100644 --- a/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.js +++ b/tests/baselines/reference/constructorWithIncompleteTypeAnnotation.js @@ -413,16 +413,13 @@ var BasicFeatures = (function () { try { throw null; } - catch (Exception) { - } + catch (Exception) { } } try { } finally { - try { - } - catch (Exception) { - } + try { } + catch (Exception) { } } return retVal; }; @@ -435,10 +432,8 @@ var BasicFeatures = (function () { var c = new CLASS(); var xx = c; retVal += ; - try { - } - catch () { - } + try { } + catch () { } Property; retVal += c.Member(); retVal += xx.Foo() ? 0 : 1; @@ -552,8 +547,7 @@ rest: string[]; { & public; DefaultValue(value ? : string = "Hello"); - { - } + { } } var Weekdays; (function (Weekdays) { diff --git a/tests/baselines/reference/contextualTypeAppliedToVarArgs.js b/tests/baselines/reference/contextualTypeAppliedToVarArgs.js index c4e78318a9c..77ce90ec737 100644 --- a/tests/baselines/reference/contextualTypeAppliedToVarArgs.js +++ b/tests/baselines/reference/contextualTypeAppliedToVarArgs.js @@ -18,8 +18,7 @@ class Foo{ //// [contextualTypeAppliedToVarArgs.js] function delegate(instance, method, data) { - return function () { - }; + return function () { }; } var Foo = (function () { function Foo() { diff --git a/tests/baselines/reference/contextualTyping.js b/tests/baselines/reference/contextualTyping.js index 0abfa95e45b..46e09d7f9e5 100644 --- a/tests/baselines/reference/contextualTyping.js +++ b/tests/baselines/reference/contextualTyping.js @@ -352,8 +352,7 @@ objc8.t14 = ({ a: [] }); // CONTEXT: Function call -function c9t5(f) { -} +function c9t5(f) { } ; c9t5(function (n) { return ({}); diff --git a/tests/baselines/reference/contextualTyping.js.map b/tests/baselines/reference/contextualTyping.js.map index 14455bb0ba3..98c41439762 100644 --- a/tests/baselines/reference/contextualTyping.js.map +++ b/tests/baselines/reference/contextualTyping.js.map @@ -1,2 +1,2 @@ //// [contextualTyping.js.map] -{"version":3,"file":"contextualTyping.js","sourceRoot":"","sources":["contextualTyping.ts"],"names":["C1T5","C1T5.constructor","C2T5","C4T5","C4T5.constructor","C5T5","c9t5","C11t5","C11t5.constructor","EF1","Point"],"mappings":"AAaA,AADA,sCAAsC;IAChC,IAAI;IAAVA,SAAMA,IAAIA;QACNC,QAAGA,GAAqCA,UAASA,CAACA;YAC9C,MAAM,CAAC,CAAC,CAAC;QACb,CAAC,CAAAA;IACLA,CAACA;IAADD,WAACA;AAADA,CAACA,AAJD,IAIC;AAGD,AADA,uCAAuC;AACvC,IAAO,IAAI,CAIV;AAJD,WAAO,IAAI,EAAC,CAAC;IACEE,QAAGA,GAAqCA,UAASA,CAACA;QACzD,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,CAAAA;AACLA,CAACA,EAJM,IAAI,KAAJ,IAAI,QAIV;AAGD,AADA,gCAAgC;IAC5B,IAAI,GAA0B,CAAC,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAA;AAAC,CAAC,CAAC,CAAC;AAC7D,IAAI,IAAI,GAAS,CAAC;IACd,CAAC,EAAE,CAAC;CACP,CAAC,CAAA;AACF,IAAI,IAAI,GAAa,EAAE,CAAC;AACxB,IAAI,IAAI,GAAe;IAAa,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AACxD,IAAI,IAAI,GAAwB,UAAS,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAClE,IAAI,IAAI,GAAmC,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAChF,IAAI,IAAI,GAGJ,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC;AAE9B,IAAI,IAAI,GAAqC,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC;AACvE,IAAI,IAAI,GAAe,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AAC/B,IAAI,KAAK,GAAW,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAI,KAAK,GAAwC,CAAC,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC,CAAC;AAChF,IAAI,KAAK,GAAS;IACd,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,IAAI,KAAK,GAAS,CAAC;IACf,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC;QAAI,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;CAClC,CAAC,CAAA;AACF,IAAI,KAAK,GAAS,CAAC;IACf,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAGF,AADA,qCAAqC;IAC/B,IAAI;IAENC,SAFEA,IAAIA;QAGFC,IAAIA,CAACA,GAAGA,GAAGA,UAASA,CAACA,EAAEA,CAACA;YACpB,MAAM,CAAC,CAAC,CAAC;QACb,CAAC,CAAAA;IACLA,CAACA;IACLD,WAACA;AAADA,CAACA,AAPD,IAOC;AAGD,AADA,sCAAsC;AACtC,IAAO,IAAI,CAKV;AALD,WAAO,IAAI,EAAC,CAAC;IACEE,QAAqCA,CAACA;IACjDA,QAAGA,GAAGA,UAASA,CAACA,EAAEA,CAACA;QACf,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,CAAAA;AACLA,CAACA,EALM,IAAI,KAAJ,IAAI,QAKV;AAGD,AADA,+BAA+B;IAC3B,IAAyB,CAAC;AAC9B,IAAI,GAAwB,UAAS,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAG9D,AADA,kCAAkC;IAC9B,IAAY,CAAC;AACjB,IAAI,CAAC,CAAC,CAAC,GAAS,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;AAuBzB,IAAI,KAAK,GAkBS,CAAC,EAAE,CAAC,CAAC;AAEvB,KAAK,CAAC,EAAE,GAAG,CAAC,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAA;AAAC,CAAC,CAAC,CAAC;AACtC,KAAK,CAAC,EAAE,GAAS,CAAC;IACd,CAAC,EAAE,CAAC;CACP,CAAC,CAAC;AACH,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;AACd,KAAK,CAAC,EAAE,GAAG;IAAa,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAC5C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAC7C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAChD,KAAK,CAAC,EAAE,GAAG,UAAS,CAAS;IAAI,MAAM,CAAC,CAAC,CAAA;AAAC,CAAC,CAAC;AAE5C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC;AACrC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AACnB,KAAK,CAAC,GAAG,GAAG,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,KAAK,CAAC,GAAG,GAAG,CAAC,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC,CAAC;AAC3C,KAAK,CAAC,GAAG,GAAG;IACR,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,KAAK,CAAC,GAAG,GAAS,CAAC;IACf,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC;QAAI,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;CAClC,CAAC,CAAA;AACF,KAAK,CAAC,GAAG,GAAS,CAAC;IACf,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAEF,AADA,yBAAyB;SAChB,IAAI,CAAC,CAAsB;AAAGC,CAACA;AAAA,CAAC;AACzC,IAAI,CAAC,UAAS,CAAC;IACX,MAAM,CAAO,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAGH,AADA,4BAA4B;IACxB,KAAK,GAA8B;IAAa,MAAM,CAAC,UAAS,CAAC;QAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;IAAC,CAAC,CAAA;AAAC,CAAC,CAAC;AAG/F,AADA,0BAA0B;IACpB,KAAK;IAAGC,SAARA,KAAKA,CAAeA,CAAsBA;IAAIC,CAACA;IAACD,YAACA;AAADA,CAACA,AAAvD,IAAuD;AAAA,CAAC;AACxD,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,UAAS,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC,CAAC;AAGrD,AADA,qCAAqC;IACjC,KAAK,GAA2B,CAAC,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAA;AAAC,CAAC,CAAC,CAAC;AAC/D,IAAI,KAAK,GAAU,CAAC;IAChB,CAAC,EAAE,CAAC;CACP,CAAC,CAAC;AACH,IAAI,KAAK,GAAc,EAAE,CAAC;AAC1B,IAAI,KAAK,GAAgB;IAAa,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAC1D,IAAI,KAAK,GAAyB,UAAS,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AACpE,IAAI,KAAK,GAAoC,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAClF,IAAI,KAAK,GAGN,UAAS,CAAQ;IAAI,MAAM,CAAC,CAAC,CAAA;AAAC,CAAC,CAAC;AAEnC,IAAI,KAAK,GAAsC,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC;AACzE,IAAI,KAAK,GAAgB,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AACjC,IAAI,MAAM,GAAY,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,IAAI,MAAM,GAAyC,CAAC,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC,CAAC;AAClF,IAAI,MAAM,GAAU;IAChB,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,IAAI,MAAM,GAAU,CAAC;IACjB,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC;QAAI,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;CAClC,CAAC,CAAA;AACF,IAAI,MAAM,GAAU,CAAC;IACjB,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAOF,SAAS,GAAG,CAAC,CAAC,EAAC,CAAC;IAAIE,MAAMA,CAACA,CAACA,GAACA,CAACA,CAACA;AAACA,CAACA;AAEjC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AAcnB,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;IACfC,IAAIA,CAACA,CAACA,GAAGA,CAACA,CAACA;IACXA,IAAIA,CAACA,CAACA,GAAGA,CAACA,CAACA;IAEXA,MAAMA,CAACA,IAAIA,CAACA;AAChBA,CAACA;AAED,KAAK,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/B,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,EAAE,EAAE,EAAE;IACjC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,KAAK,CAAC,SAAS,GAAG;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,GAAG,EAAE,UAAS,EAAE,EAAE,EAAE;QAChB,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;CACJ,CAAC;AAIF,IAAI,CAAC,GAAM,EAAG,CAAC"} \ No newline at end of file +{"version":3,"file":"contextualTyping.js","sourceRoot":"","sources":["contextualTyping.ts"],"names":["C1T5","C1T5.constructor","C2T5","C4T5","C4T5.constructor","C5T5","C11t5","C11t5.constructor","EF1","Point"],"mappings":"AAaA,AADA,sCAAsC;IAChC,IAAI;IAAVA,SAAMA,IAAIA;QACNC,QAAGA,GAAqCA,UAASA,CAACA;YAC9C,MAAM,CAAC,CAAC,CAAC;QACb,CAAC,CAAAA;IACLA,CAACA;IAADD,WAACA;AAADA,CAACA,AAJD,IAIC;AAGD,AADA,uCAAuC;AACvC,IAAO,IAAI,CAIV;AAJD,WAAO,IAAI,EAAC,CAAC;IACEE,QAAGA,GAAqCA,UAASA,CAACA;QACzD,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,CAAAA;AACLA,CAACA,EAJM,IAAI,KAAJ,IAAI,QAIV;AAGD,AADA,gCAAgC;IAC5B,IAAI,GAA0B,CAAC,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAA;AAAC,CAAC,CAAC,CAAC;AAC7D,IAAI,IAAI,GAAS,CAAC;IACd,CAAC,EAAE,CAAC;CACP,CAAC,CAAA;AACF,IAAI,IAAI,GAAa,EAAE,CAAC;AACxB,IAAI,IAAI,GAAe;IAAa,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AACxD,IAAI,IAAI,GAAwB,UAAS,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAClE,IAAI,IAAI,GAAmC,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAChF,IAAI,IAAI,GAGJ,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC;AAE9B,IAAI,IAAI,GAAqC,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC;AACvE,IAAI,IAAI,GAAe,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AAC/B,IAAI,KAAK,GAAW,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5C,IAAI,KAAK,GAAwC,CAAC,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC,CAAC;AAChF,IAAI,KAAK,GAAS;IACd,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,IAAI,KAAK,GAAS,CAAC;IACf,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC;QAAI,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;CAClC,CAAC,CAAA;AACF,IAAI,KAAK,GAAS,CAAC;IACf,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAGF,AADA,qCAAqC;IAC/B,IAAI;IAENC,SAFEA,IAAIA;QAGFC,IAAIA,CAACA,GAAGA,GAAGA,UAASA,CAACA,EAAEA,CAACA;YACpB,MAAM,CAAC,CAAC,CAAC;QACb,CAAC,CAAAA;IACLA,CAACA;IACLD,WAACA;AAADA,CAACA,AAPD,IAOC;AAGD,AADA,sCAAsC;AACtC,IAAO,IAAI,CAKV;AALD,WAAO,IAAI,EAAC,CAAC;IACEE,QAAqCA,CAACA;IACjDA,QAAGA,GAAGA,UAASA,CAACA,EAAEA,CAACA;QACf,MAAM,CAAC,CAAC,CAAC;IACb,CAAC,CAAAA;AACLA,CAACA,EALM,IAAI,KAAJ,IAAI,QAKV;AAGD,AADA,+BAA+B;IAC3B,IAAyB,CAAC;AAC9B,IAAI,GAAwB,UAAS,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAG9D,AADA,kCAAkC;IAC9B,IAAY,CAAC;AACjB,IAAI,CAAC,CAAC,CAAC,GAAS,CAAC,EAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC;AAuBzB,IAAI,KAAK,GAkBS,CAAC,EAAE,CAAC,CAAC;AAEvB,KAAK,CAAC,EAAE,GAAG,CAAC,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAA;AAAC,CAAC,CAAC,CAAC;AACtC,KAAK,CAAC,EAAE,GAAS,CAAC;IACd,CAAC,EAAE,CAAC;CACP,CAAC,CAAC;AACH,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;AACd,KAAK,CAAC,EAAE,GAAG;IAAa,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAC5C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAC7C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAChD,KAAK,CAAC,EAAE,GAAG,UAAS,CAAS;IAAI,MAAM,CAAC,CAAC,CAAA;AAAC,CAAC,CAAC;AAE5C,KAAK,CAAC,EAAE,GAAG,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC;AACrC,KAAK,CAAC,EAAE,GAAG,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AACnB,KAAK,CAAC,GAAG,GAAG,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AACpC,KAAK,CAAC,GAAG,GAAG,CAAC,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC,CAAC;AAC3C,KAAK,CAAC,GAAG,GAAG;IACR,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,KAAK,CAAC,GAAG,GAAS,CAAC;IACf,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC;QAAI,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;CAClC,CAAC,CAAA;AACF,KAAK,CAAC,GAAG,GAAS,CAAC;IACf,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAEF,AADA,yBAAyB;SAChB,IAAI,CAAC,CAAsB,KAAI;AAAA,CAAC;AACzC,IAAI,CAAC,UAAS,CAAC;IACX,MAAM,CAAO,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAGH,AADA,4BAA4B;IACxB,KAAK,GAA8B;IAAa,MAAM,CAAC,UAAS,CAAC;QAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;IAAC,CAAC,CAAA;AAAC,CAAC,CAAC;AAG/F,AADA,0BAA0B;IACpB,KAAK;IAAGC,SAARA,KAAKA,CAAeA,CAAsBA;IAAIC,CAACA;IAACD,YAACA;AAADA,CAACA,AAAvD,IAAuD;AAAA,CAAC;AACxD,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,UAAS,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC,CAAC;AAGrD,AADA,qCAAqC;IACjC,KAAK,GAA2B,CAAC,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAA;AAAC,CAAC,CAAC,CAAC;AAC/D,IAAI,KAAK,GAAU,CAAC;IAChB,CAAC,EAAE,CAAC;CACP,CAAC,CAAC;AACH,IAAI,KAAK,GAAc,EAAE,CAAC;AAC1B,IAAI,KAAK,GAAgB;IAAa,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAC1D,IAAI,KAAK,GAAyB,UAAS,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AACpE,IAAI,KAAK,GAAoC,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAO,CAAC,EAAE,CAAC,CAAA;AAAC,CAAC,CAAC;AAClF,IAAI,KAAK,GAGN,UAAS,CAAQ;IAAI,MAAM,CAAC,CAAC,CAAA;AAAC,CAAC,CAAC;AAEnC,IAAI,KAAK,GAAsC,UAAS,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC;AACzE,IAAI,KAAK,GAAgB,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;AACjC,IAAI,MAAM,GAAY,CAAO,CAAC,EAAE,CAAC,EAAO,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9C,IAAI,MAAM,GAAyC,CAAC,UAAS,CAAC,EAAE,CAAC;IAAI,MAAM,CAAC,CAAC,CAAC;AAAC,CAAC,CAAC,CAAC;AAClF,IAAI,MAAM,GAAU;IAChB,GAAG,EAAQ,CAAC,EAAE,CAAC;CAClB,CAAA;AACD,IAAI,MAAM,GAAU,CAAC;IACjB,CAAC,EAAE,UAAS,CAAC,EAAE,CAAC;QAAI,MAAM,CAAC,CAAC,CAAC;IAAC,CAAC;CAClC,CAAC,CAAA;AACF,IAAI,MAAM,GAAU,CAAC;IACjB,CAAC,EAAE,EAAE;CACR,CAAC,CAAA;AAOF,SAAS,GAAG,CAAC,CAAC,EAAC,CAAC;IAAIE,MAAMA,CAACA,CAACA,GAACA,CAACA,CAACA;AAACA,CAACA;AAEjC,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;AAcnB,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;IACfC,IAAIA,CAACA,CAACA,GAAGA,CAACA,CAACA;IACXA,IAAIA,CAACA,CAACA,GAAGA,CAACA,CAACA;IAEXA,MAAMA,CAACA,IAAIA,CAACA;AAChBA,CAACA;AAED,KAAK,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/B,KAAK,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,EAAE,EAAE,EAAE;IACjC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAC/C,CAAC,CAAC;AAEF,KAAK,CAAC,SAAS,GAAG;IACd,CAAC,EAAE,CAAC;IACJ,CAAC,EAAE,CAAC;IACJ,GAAG,EAAE,UAAS,EAAE,EAAE,EAAE;QAChB,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,CAAC;CACJ,CAAC;AAIF,IAAI,CAAC,GAAM,EAAG,CAAC"} \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping.sourcemap.txt b/tests/baselines/reference/contextualTyping.sourcemap.txt index 9ee97ee0804..6f9c9d2c1ec 100644 --- a/tests/baselines/reference/contextualTyping.sourcemap.txt +++ b/tests/baselines/reference/contextualTyping.sourcemap.txt @@ -2270,38 +2270,32 @@ sourceFile:contextualTyping.ts 2 >Emitted(120, 1) Source(145, 1) + SourceIndex(0) 3 >Emitted(120, 26) Source(145, 26) + SourceIndex(0) --- ->>>function c9t5(f) { +>>>function c9t5(f) { } 1 >^^^^^^^^^ 2 > ^^^^ 3 > ^ 4 > ^ +5 > ^^^^^ 1 > >function 2 > c9t5 3 > ( 4 > f: (n: number) => IFoo +5 > ) {} 1 >Emitted(121, 10) Source(146, 10) + SourceIndex(0) 2 >Emitted(121, 14) Source(146, 14) + SourceIndex(0) 3 >Emitted(121, 15) Source(146, 15) + SourceIndex(0) 4 >Emitted(121, 16) Source(146, 37) + SourceIndex(0) ---- ->>>} -1 > -2 >^ -3 > ^-> -1 >) { -2 >} -1 >Emitted(122, 1) Source(146, 40) + SourceIndex(0) name (c9t5) -2 >Emitted(122, 2) Source(146, 41) + SourceIndex(0) name (c9t5) +5 >Emitted(121, 21) Source(146, 41) + SourceIndex(0) --- >>>; -1-> +1 > 2 >^ 3 > ^^^^^^^^^^^^^^^^^^^-> -1-> +1 > 2 >; -1->Emitted(123, 1) Source(146, 41) + SourceIndex(0) -2 >Emitted(123, 2) Source(146, 42) + SourceIndex(0) +1 >Emitted(122, 1) Source(146, 41) + SourceIndex(0) +2 >Emitted(122, 2) Source(146, 42) + SourceIndex(0) --- >>>c9t5(function (n) { 1-> @@ -2316,11 +2310,11 @@ sourceFile:contextualTyping.ts 3 > ( 4 > function( 5 > n -1->Emitted(124, 1) Source(147, 1) + SourceIndex(0) -2 >Emitted(124, 5) Source(147, 5) + SourceIndex(0) -3 >Emitted(124, 6) Source(147, 6) + SourceIndex(0) -4 >Emitted(124, 16) Source(147, 15) + SourceIndex(0) -5 >Emitted(124, 17) Source(147, 16) + SourceIndex(0) +1->Emitted(123, 1) Source(147, 1) + SourceIndex(0) +2 >Emitted(123, 5) Source(147, 5) + SourceIndex(0) +3 >Emitted(123, 6) Source(147, 6) + SourceIndex(0) +4 >Emitted(123, 16) Source(147, 15) + SourceIndex(0) +5 >Emitted(123, 17) Source(147, 16) + SourceIndex(0) --- >>> return ({}); 1->^^^^ @@ -2338,13 +2332,13 @@ sourceFile:contextualTyping.ts 5 > {} 6 > ) 7 > ; -1->Emitted(125, 5) Source(148, 5) + SourceIndex(0) -2 >Emitted(125, 11) Source(148, 11) + SourceIndex(0) -3 >Emitted(125, 12) Source(148, 18) + SourceIndex(0) -4 >Emitted(125, 13) Source(148, 19) + SourceIndex(0) -5 >Emitted(125, 15) Source(148, 21) + SourceIndex(0) -6 >Emitted(125, 16) Source(148, 22) + SourceIndex(0) -7 >Emitted(125, 17) Source(148, 23) + SourceIndex(0) +1->Emitted(124, 5) Source(148, 5) + SourceIndex(0) +2 >Emitted(124, 11) Source(148, 11) + SourceIndex(0) +3 >Emitted(124, 12) Source(148, 18) + SourceIndex(0) +4 >Emitted(124, 13) Source(148, 19) + SourceIndex(0) +5 >Emitted(124, 15) Source(148, 21) + SourceIndex(0) +6 >Emitted(124, 16) Source(148, 22) + SourceIndex(0) +7 >Emitted(124, 17) Source(148, 23) + SourceIndex(0) --- >>>}); 1 > @@ -2357,10 +2351,10 @@ sourceFile:contextualTyping.ts 2 >} 3 > ) 4 > ; -1 >Emitted(126, 1) Source(149, 1) + SourceIndex(0) -2 >Emitted(126, 2) Source(149, 2) + SourceIndex(0) -3 >Emitted(126, 3) Source(149, 3) + SourceIndex(0) -4 >Emitted(126, 4) Source(149, 4) + SourceIndex(0) +1 >Emitted(125, 1) Source(149, 1) + SourceIndex(0) +2 >Emitted(125, 2) Source(149, 2) + SourceIndex(0) +3 >Emitted(125, 3) Source(149, 3) + SourceIndex(0) +4 >Emitted(125, 4) Source(149, 4) + SourceIndex(0) --- >>>// CONTEXT: Return statement 1-> @@ -2372,9 +2366,9 @@ sourceFile:contextualTyping.ts > 2 > 3 >// CONTEXT: Return statement -1->Emitted(127, 1) Source(152, 1) + SourceIndex(0) -2 >Emitted(127, 1) Source(151, 1) + SourceIndex(0) -3 >Emitted(127, 29) Source(151, 29) + SourceIndex(0) +1->Emitted(126, 1) Source(152, 1) + SourceIndex(0) +2 >Emitted(126, 1) Source(151, 1) + SourceIndex(0) +3 >Emitted(126, 29) Source(151, 29) + SourceIndex(0) --- >>>var c10t5 = function () { 1 >^^^^ @@ -2385,9 +2379,9 @@ sourceFile:contextualTyping.ts >var 2 > c10t5 3 > : () => (n: number) => IFoo = -1 >Emitted(128, 5) Source(152, 5) + SourceIndex(0) -2 >Emitted(128, 10) Source(152, 10) + SourceIndex(0) -3 >Emitted(128, 13) Source(152, 40) + SourceIndex(0) +1 >Emitted(127, 5) Source(152, 5) + SourceIndex(0) +2 >Emitted(127, 10) Source(152, 10) + SourceIndex(0) +3 >Emitted(127, 13) Source(152, 40) + SourceIndex(0) --- >>> return function (n) { 1->^^^^ @@ -2400,11 +2394,11 @@ sourceFile:contextualTyping.ts 3 > 4 > function( 5 > n -1->Emitted(129, 5) Source(152, 53) + SourceIndex(0) -2 >Emitted(129, 11) Source(152, 59) + SourceIndex(0) -3 >Emitted(129, 12) Source(152, 60) + SourceIndex(0) -4 >Emitted(129, 22) Source(152, 69) + SourceIndex(0) -5 >Emitted(129, 23) Source(152, 70) + SourceIndex(0) +1->Emitted(128, 5) Source(152, 53) + SourceIndex(0) +2 >Emitted(128, 11) Source(152, 59) + SourceIndex(0) +3 >Emitted(128, 12) Source(152, 60) + SourceIndex(0) +4 >Emitted(128, 22) Source(152, 69) + SourceIndex(0) +5 >Emitted(128, 23) Source(152, 70) + SourceIndex(0) --- >>> return ({}); 1 >^^^^^^^^ @@ -2421,13 +2415,13 @@ sourceFile:contextualTyping.ts 5 > {} 6 > ) 7 > -1 >Emitted(130, 9) Source(152, 74) + SourceIndex(0) -2 >Emitted(130, 15) Source(152, 80) + SourceIndex(0) -3 >Emitted(130, 16) Source(152, 87) + SourceIndex(0) -4 >Emitted(130, 17) Source(152, 88) + SourceIndex(0) -5 >Emitted(130, 19) Source(152, 90) + SourceIndex(0) -6 >Emitted(130, 20) Source(152, 91) + SourceIndex(0) -7 >Emitted(130, 21) Source(152, 91) + SourceIndex(0) +1 >Emitted(129, 9) Source(152, 74) + SourceIndex(0) +2 >Emitted(129, 15) Source(152, 80) + SourceIndex(0) +3 >Emitted(129, 16) Source(152, 87) + SourceIndex(0) +4 >Emitted(129, 17) Source(152, 88) + SourceIndex(0) +5 >Emitted(129, 19) Source(152, 90) + SourceIndex(0) +6 >Emitted(129, 20) Source(152, 91) + SourceIndex(0) +7 >Emitted(129, 21) Source(152, 91) + SourceIndex(0) --- >>> }; 1 >^^^^ @@ -2436,9 +2430,9 @@ sourceFile:contextualTyping.ts 1 > 2 > } 3 > -1 >Emitted(131, 5) Source(152, 92) + SourceIndex(0) -2 >Emitted(131, 6) Source(152, 93) + SourceIndex(0) -3 >Emitted(131, 7) Source(152, 93) + SourceIndex(0) +1 >Emitted(130, 5) Source(152, 92) + SourceIndex(0) +2 >Emitted(130, 6) Source(152, 93) + SourceIndex(0) +3 >Emitted(130, 7) Source(152, 93) + SourceIndex(0) --- >>>}; 1 > @@ -2448,9 +2442,9 @@ sourceFile:contextualTyping.ts 1 > 2 >} 3 > ; -1 >Emitted(132, 1) Source(152, 94) + SourceIndex(0) -2 >Emitted(132, 2) Source(152, 95) + SourceIndex(0) -3 >Emitted(132, 3) Source(152, 96) + SourceIndex(0) +1 >Emitted(131, 1) Source(152, 94) + SourceIndex(0) +2 >Emitted(131, 2) Source(152, 95) + SourceIndex(0) +3 >Emitted(131, 3) Source(152, 96) + SourceIndex(0) --- >>>// CONTEXT: Newing a class 1-> @@ -2463,9 +2457,9 @@ sourceFile:contextualTyping.ts > 2 > 3 >// CONTEXT: Newing a class -1->Emitted(133, 1) Source(155, 1) + SourceIndex(0) -2 >Emitted(133, 1) Source(154, 1) + SourceIndex(0) -3 >Emitted(133, 27) Source(154, 27) + SourceIndex(0) +1->Emitted(132, 1) Source(155, 1) + SourceIndex(0) +2 >Emitted(132, 1) Source(154, 1) + SourceIndex(0) +3 >Emitted(132, 27) Source(154, 27) + SourceIndex(0) --- >>>var C11t5 = (function () { 1->^^^^ @@ -2474,8 +2468,8 @@ sourceFile:contextualTyping.ts 1-> >class 2 > C11t5 -1->Emitted(134, 5) Source(155, 7) + SourceIndex(0) -2 >Emitted(134, 10) Source(155, 12) + SourceIndex(0) +1->Emitted(133, 5) Source(155, 7) + SourceIndex(0) +2 >Emitted(133, 10) Source(155, 12) + SourceIndex(0) --- >>> function C11t5(f) { 1->^^^^ @@ -2488,11 +2482,11 @@ sourceFile:contextualTyping.ts 3 > C11t5 4 > { constructor( 5 > f: (n: number) => IFoo -1->Emitted(135, 5) Source(155, 15) + SourceIndex(0) name (C11t5) -2 >Emitted(135, 14) Source(155, 7) + SourceIndex(0) name (C11t5) -3 >Emitted(135, 19) Source(155, 12) + SourceIndex(0) name (C11t5) -4 >Emitted(135, 20) Source(155, 27) + SourceIndex(0) name (C11t5) -5 >Emitted(135, 21) Source(155, 49) + SourceIndex(0) name (C11t5) +1->Emitted(134, 5) Source(155, 15) + SourceIndex(0) name (C11t5) +2 >Emitted(134, 14) Source(155, 7) + SourceIndex(0) name (C11t5) +3 >Emitted(134, 19) Source(155, 12) + SourceIndex(0) name (C11t5) +4 >Emitted(134, 20) Source(155, 27) + SourceIndex(0) name (C11t5) +5 >Emitted(134, 21) Source(155, 49) + SourceIndex(0) name (C11t5) --- >>> } 1 >^^^^ @@ -2500,16 +2494,16 @@ sourceFile:contextualTyping.ts 3 > ^^^^^^^^^^^^^-> 1 >) { 2 > } -1 >Emitted(136, 5) Source(155, 53) + SourceIndex(0) name (C11t5.constructor) -2 >Emitted(136, 6) Source(155, 54) + SourceIndex(0) name (C11t5.constructor) +1 >Emitted(135, 5) Source(155, 53) + SourceIndex(0) name (C11t5.constructor) +2 >Emitted(135, 6) Source(155, 54) + SourceIndex(0) name (C11t5.constructor) --- >>> return C11t5; 1->^^^^ 2 > ^^^^^^^^^^^^ 1-> 2 > } -1->Emitted(137, 5) Source(155, 55) + SourceIndex(0) name (C11t5) -2 >Emitted(137, 17) Source(155, 56) + SourceIndex(0) name (C11t5) +1->Emitted(136, 5) Source(155, 55) + SourceIndex(0) name (C11t5) +2 >Emitted(136, 17) Source(155, 56) + SourceIndex(0) name (C11t5) --- >>>})(); 1 > @@ -2520,10 +2514,10 @@ sourceFile:contextualTyping.ts 2 >} 3 > 4 > class C11t5 { constructor(f: (n: number) => IFoo) { } } -1 >Emitted(138, 1) Source(155, 55) + SourceIndex(0) name (C11t5) -2 >Emitted(138, 2) Source(155, 56) + SourceIndex(0) name (C11t5) -3 >Emitted(138, 2) Source(155, 1) + SourceIndex(0) -4 >Emitted(138, 6) Source(155, 56) + SourceIndex(0) +1 >Emitted(137, 1) Source(155, 55) + SourceIndex(0) name (C11t5) +2 >Emitted(137, 2) Source(155, 56) + SourceIndex(0) name (C11t5) +3 >Emitted(137, 2) Source(155, 1) + SourceIndex(0) +4 >Emitted(137, 6) Source(155, 56) + SourceIndex(0) --- >>>; 1 > @@ -2531,8 +2525,8 @@ sourceFile:contextualTyping.ts 3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > 2 >; -1 >Emitted(139, 1) Source(155, 56) + SourceIndex(0) -2 >Emitted(139, 2) Source(155, 57) + SourceIndex(0) +1 >Emitted(138, 1) Source(155, 56) + SourceIndex(0) +2 >Emitted(138, 2) Source(155, 57) + SourceIndex(0) --- >>>var i = new C11t5(function (n) { 1-> @@ -2554,15 +2548,15 @@ sourceFile:contextualTyping.ts 7 > ( 8 > function( 9 > n -1->Emitted(140, 1) Source(156, 1) + SourceIndex(0) -2 >Emitted(140, 5) Source(156, 5) + SourceIndex(0) -3 >Emitted(140, 6) Source(156, 6) + SourceIndex(0) -4 >Emitted(140, 9) Source(156, 9) + SourceIndex(0) -5 >Emitted(140, 13) Source(156, 13) + SourceIndex(0) -6 >Emitted(140, 18) Source(156, 18) + SourceIndex(0) -7 >Emitted(140, 19) Source(156, 19) + SourceIndex(0) -8 >Emitted(140, 29) Source(156, 28) + SourceIndex(0) -9 >Emitted(140, 30) Source(156, 29) + SourceIndex(0) +1->Emitted(139, 1) Source(156, 1) + SourceIndex(0) +2 >Emitted(139, 5) Source(156, 5) + SourceIndex(0) +3 >Emitted(139, 6) Source(156, 6) + SourceIndex(0) +4 >Emitted(139, 9) Source(156, 9) + SourceIndex(0) +5 >Emitted(139, 13) Source(156, 13) + SourceIndex(0) +6 >Emitted(139, 18) Source(156, 18) + SourceIndex(0) +7 >Emitted(139, 19) Source(156, 19) + SourceIndex(0) +8 >Emitted(139, 29) Source(156, 28) + SourceIndex(0) +9 >Emitted(139, 30) Source(156, 29) + SourceIndex(0) --- >>> return ({}); 1 >^^^^ @@ -2579,13 +2573,13 @@ sourceFile:contextualTyping.ts 5 > {} 6 > ) 7 > -1 >Emitted(141, 5) Source(156, 33) + SourceIndex(0) -2 >Emitted(141, 11) Source(156, 39) + SourceIndex(0) -3 >Emitted(141, 12) Source(156, 46) + SourceIndex(0) -4 >Emitted(141, 13) Source(156, 47) + SourceIndex(0) -5 >Emitted(141, 15) Source(156, 49) + SourceIndex(0) -6 >Emitted(141, 16) Source(156, 50) + SourceIndex(0) -7 >Emitted(141, 17) Source(156, 50) + SourceIndex(0) +1 >Emitted(140, 5) Source(156, 33) + SourceIndex(0) +2 >Emitted(140, 11) Source(156, 39) + SourceIndex(0) +3 >Emitted(140, 12) Source(156, 46) + SourceIndex(0) +4 >Emitted(140, 13) Source(156, 47) + SourceIndex(0) +5 >Emitted(140, 15) Source(156, 49) + SourceIndex(0) +6 >Emitted(140, 16) Source(156, 50) + SourceIndex(0) +7 >Emitted(140, 17) Source(156, 50) + SourceIndex(0) --- >>>}); 1 > @@ -2597,10 +2591,10 @@ sourceFile:contextualTyping.ts 2 >} 3 > ) 4 > ; -1 >Emitted(142, 1) Source(156, 51) + SourceIndex(0) -2 >Emitted(142, 2) Source(156, 52) + SourceIndex(0) -3 >Emitted(142, 3) Source(156, 53) + SourceIndex(0) -4 >Emitted(142, 4) Source(156, 54) + SourceIndex(0) +1 >Emitted(141, 1) Source(156, 51) + SourceIndex(0) +2 >Emitted(141, 2) Source(156, 52) + SourceIndex(0) +3 >Emitted(141, 3) Source(156, 53) + SourceIndex(0) +4 >Emitted(141, 4) Source(156, 54) + SourceIndex(0) --- >>>// CONTEXT: Type annotated expression 1-> @@ -2612,9 +2606,9 @@ sourceFile:contextualTyping.ts > 2 > 3 >// CONTEXT: Type annotated expression -1->Emitted(143, 1) Source(159, 1) + SourceIndex(0) -2 >Emitted(143, 1) Source(158, 1) + SourceIndex(0) -3 >Emitted(143, 38) Source(158, 38) + SourceIndex(0) +1->Emitted(142, 1) Source(159, 1) + SourceIndex(0) +2 >Emitted(142, 1) Source(158, 1) + SourceIndex(0) +3 >Emitted(142, 38) Source(158, 38) + SourceIndex(0) --- >>>var c12t1 = (function (s) { 1 >^^^^ @@ -2630,12 +2624,12 @@ sourceFile:contextualTyping.ts 4 > ( 5 > function( 6 > s -1 >Emitted(144, 5) Source(159, 5) + SourceIndex(0) -2 >Emitted(144, 10) Source(159, 10) + SourceIndex(0) -3 >Emitted(144, 13) Source(159, 37) + SourceIndex(0) -4 >Emitted(144, 14) Source(159, 38) + SourceIndex(0) -5 >Emitted(144, 24) Source(159, 47) + SourceIndex(0) -6 >Emitted(144, 25) Source(159, 48) + SourceIndex(0) +1 >Emitted(143, 5) Source(159, 5) + SourceIndex(0) +2 >Emitted(143, 10) Source(159, 10) + SourceIndex(0) +3 >Emitted(143, 13) Source(159, 37) + SourceIndex(0) +4 >Emitted(143, 14) Source(159, 38) + SourceIndex(0) +5 >Emitted(143, 24) Source(159, 47) + SourceIndex(0) +6 >Emitted(143, 25) Source(159, 48) + SourceIndex(0) --- >>> return s; 1 >^^^^ @@ -2648,11 +2642,11 @@ sourceFile:contextualTyping.ts 3 > 4 > s 5 > -1 >Emitted(145, 5) Source(159, 52) + SourceIndex(0) -2 >Emitted(145, 11) Source(159, 58) + SourceIndex(0) -3 >Emitted(145, 12) Source(159, 59) + SourceIndex(0) -4 >Emitted(145, 13) Source(159, 60) + SourceIndex(0) -5 >Emitted(145, 14) Source(159, 60) + SourceIndex(0) +1 >Emitted(144, 5) Source(159, 52) + SourceIndex(0) +2 >Emitted(144, 11) Source(159, 58) + SourceIndex(0) +3 >Emitted(144, 12) Source(159, 59) + SourceIndex(0) +4 >Emitted(144, 13) Source(159, 60) + SourceIndex(0) +5 >Emitted(144, 14) Source(159, 60) + SourceIndex(0) --- >>>}); 1 > @@ -2664,10 +2658,10 @@ sourceFile:contextualTyping.ts 2 >} 3 > ) 4 > ; -1 >Emitted(146, 1) Source(159, 61) + SourceIndex(0) -2 >Emitted(146, 2) Source(159, 62) + SourceIndex(0) -3 >Emitted(146, 3) Source(159, 63) + SourceIndex(0) -4 >Emitted(146, 4) Source(159, 64) + SourceIndex(0) +1 >Emitted(145, 1) Source(159, 61) + SourceIndex(0) +2 >Emitted(145, 2) Source(159, 62) + SourceIndex(0) +3 >Emitted(145, 3) Source(159, 63) + SourceIndex(0) +4 >Emitted(145, 4) Source(159, 64) + SourceIndex(0) --- >>>var c12t2 = ({ 1-> @@ -2681,11 +2675,11 @@ sourceFile:contextualTyping.ts 3 > c12t2 4 > = 5 > ( -1->Emitted(147, 1) Source(160, 1) + SourceIndex(0) -2 >Emitted(147, 5) Source(160, 5) + SourceIndex(0) -3 >Emitted(147, 10) Source(160, 10) + SourceIndex(0) -4 >Emitted(147, 13) Source(160, 20) + SourceIndex(0) -5 >Emitted(147, 14) Source(160, 21) + SourceIndex(0) +1->Emitted(146, 1) Source(160, 1) + SourceIndex(0) +2 >Emitted(146, 5) Source(160, 5) + SourceIndex(0) +3 >Emitted(146, 10) Source(160, 10) + SourceIndex(0) +4 >Emitted(146, 13) Source(160, 20) + SourceIndex(0) +5 >Emitted(146, 14) Source(160, 21) + SourceIndex(0) --- >>> n: 1 1 >^^^^ @@ -2697,10 +2691,10 @@ sourceFile:contextualTyping.ts 2 > n 3 > : 4 > 1 -1 >Emitted(148, 5) Source(161, 5) + SourceIndex(0) -2 >Emitted(148, 6) Source(161, 6) + SourceIndex(0) -3 >Emitted(148, 8) Source(161, 8) + SourceIndex(0) -4 >Emitted(148, 9) Source(161, 9) + SourceIndex(0) +1 >Emitted(147, 5) Source(161, 5) + SourceIndex(0) +2 >Emitted(147, 6) Source(161, 6) + SourceIndex(0) +3 >Emitted(147, 8) Source(161, 8) + SourceIndex(0) +4 >Emitted(147, 9) Source(161, 9) + SourceIndex(0) --- >>>}); 1 >^ @@ -2711,9 +2705,9 @@ sourceFile:contextualTyping.ts >} 2 > ) 3 > ; -1 >Emitted(149, 2) Source(162, 2) + SourceIndex(0) -2 >Emitted(149, 3) Source(162, 3) + SourceIndex(0) -3 >Emitted(149, 4) Source(162, 4) + SourceIndex(0) +1 >Emitted(148, 2) Source(162, 2) + SourceIndex(0) +2 >Emitted(148, 3) Source(162, 3) + SourceIndex(0) +3 >Emitted(148, 4) Source(162, 4) + SourceIndex(0) --- >>>var c12t3 = []; 1-> @@ -2730,12 +2724,12 @@ sourceFile:contextualTyping.ts 4 > = 5 > [] 6 > ; -1->Emitted(150, 1) Source(163, 1) + SourceIndex(0) -2 >Emitted(150, 5) Source(163, 5) + SourceIndex(0) -3 >Emitted(150, 10) Source(163, 10) + SourceIndex(0) -4 >Emitted(150, 13) Source(163, 24) + SourceIndex(0) -5 >Emitted(150, 15) Source(163, 26) + SourceIndex(0) -6 >Emitted(150, 16) Source(163, 27) + SourceIndex(0) +1->Emitted(149, 1) Source(163, 1) + SourceIndex(0) +2 >Emitted(149, 5) Source(163, 5) + SourceIndex(0) +3 >Emitted(149, 10) Source(163, 10) + SourceIndex(0) +4 >Emitted(149, 13) Source(163, 24) + SourceIndex(0) +5 >Emitted(149, 15) Source(163, 26) + SourceIndex(0) +6 >Emitted(149, 16) Source(163, 27) + SourceIndex(0) --- >>>var c12t4 = function () { 1-> @@ -2748,10 +2742,10 @@ sourceFile:contextualTyping.ts 2 >var 3 > c12t4 4 > = <() => IFoo> -1->Emitted(151, 1) Source(164, 1) + SourceIndex(0) -2 >Emitted(151, 5) Source(164, 5) + SourceIndex(0) -3 >Emitted(151, 10) Source(164, 10) + SourceIndex(0) -4 >Emitted(151, 13) Source(164, 26) + SourceIndex(0) +1->Emitted(150, 1) Source(164, 1) + SourceIndex(0) +2 >Emitted(150, 5) Source(164, 5) + SourceIndex(0) +3 >Emitted(150, 10) Source(164, 10) + SourceIndex(0) +4 >Emitted(150, 13) Source(164, 26) + SourceIndex(0) --- >>> return ({}); 1->^^^^ @@ -2768,13 +2762,13 @@ sourceFile:contextualTyping.ts 5 > {} 6 > ) 7 > -1->Emitted(152, 5) Source(164, 39) + SourceIndex(0) -2 >Emitted(152, 11) Source(164, 45) + SourceIndex(0) -3 >Emitted(152, 12) Source(164, 52) + SourceIndex(0) -4 >Emitted(152, 13) Source(164, 53) + SourceIndex(0) -5 >Emitted(152, 15) Source(164, 55) + SourceIndex(0) -6 >Emitted(152, 16) Source(164, 56) + SourceIndex(0) -7 >Emitted(152, 17) Source(164, 56) + SourceIndex(0) +1->Emitted(151, 5) Source(164, 39) + SourceIndex(0) +2 >Emitted(151, 11) Source(164, 45) + SourceIndex(0) +3 >Emitted(151, 12) Source(164, 52) + SourceIndex(0) +4 >Emitted(151, 13) Source(164, 53) + SourceIndex(0) +5 >Emitted(151, 15) Source(164, 55) + SourceIndex(0) +6 >Emitted(151, 16) Source(164, 56) + SourceIndex(0) +7 >Emitted(151, 17) Source(164, 56) + SourceIndex(0) --- >>>}; 1 > @@ -2784,9 +2778,9 @@ sourceFile:contextualTyping.ts 1 > 2 >} 3 > ; -1 >Emitted(153, 1) Source(164, 57) + SourceIndex(0) -2 >Emitted(153, 2) Source(164, 58) + SourceIndex(0) -3 >Emitted(153, 3) Source(164, 59) + SourceIndex(0) +1 >Emitted(152, 1) Source(164, 57) + SourceIndex(0) +2 >Emitted(152, 2) Source(164, 58) + SourceIndex(0) +3 >Emitted(152, 3) Source(164, 59) + SourceIndex(0) --- >>>var c12t5 = function (n) { 1-> @@ -2802,12 +2796,12 @@ sourceFile:contextualTyping.ts 4 > = <(n: number) => IFoo> 5 > function( 6 > n -1->Emitted(154, 1) Source(165, 1) + SourceIndex(0) -2 >Emitted(154, 5) Source(165, 5) + SourceIndex(0) -3 >Emitted(154, 10) Source(165, 10) + SourceIndex(0) -4 >Emitted(154, 13) Source(165, 35) + SourceIndex(0) -5 >Emitted(154, 23) Source(165, 44) + SourceIndex(0) -6 >Emitted(154, 24) Source(165, 45) + SourceIndex(0) +1->Emitted(153, 1) Source(165, 1) + SourceIndex(0) +2 >Emitted(153, 5) Source(165, 5) + SourceIndex(0) +3 >Emitted(153, 10) Source(165, 10) + SourceIndex(0) +4 >Emitted(153, 13) Source(165, 35) + SourceIndex(0) +5 >Emitted(153, 23) Source(165, 44) + SourceIndex(0) +6 >Emitted(153, 24) Source(165, 45) + SourceIndex(0) --- >>> return ({}); 1 >^^^^ @@ -2824,13 +2818,13 @@ sourceFile:contextualTyping.ts 5 > {} 6 > ) 7 > -1 >Emitted(155, 5) Source(165, 49) + SourceIndex(0) -2 >Emitted(155, 11) Source(165, 55) + SourceIndex(0) -3 >Emitted(155, 12) Source(165, 62) + SourceIndex(0) -4 >Emitted(155, 13) Source(165, 63) + SourceIndex(0) -5 >Emitted(155, 15) Source(165, 65) + SourceIndex(0) -6 >Emitted(155, 16) Source(165, 66) + SourceIndex(0) -7 >Emitted(155, 17) Source(165, 66) + SourceIndex(0) +1 >Emitted(154, 5) Source(165, 49) + SourceIndex(0) +2 >Emitted(154, 11) Source(165, 55) + SourceIndex(0) +3 >Emitted(154, 12) Source(165, 62) + SourceIndex(0) +4 >Emitted(154, 13) Source(165, 63) + SourceIndex(0) +5 >Emitted(154, 15) Source(165, 65) + SourceIndex(0) +6 >Emitted(154, 16) Source(165, 66) + SourceIndex(0) +7 >Emitted(154, 17) Source(165, 66) + SourceIndex(0) --- >>>}; 1 > @@ -2840,9 +2834,9 @@ sourceFile:contextualTyping.ts 1 > 2 >} 3 > ; -1 >Emitted(156, 1) Source(165, 67) + SourceIndex(0) -2 >Emitted(156, 2) Source(165, 68) + SourceIndex(0) -3 >Emitted(156, 3) Source(165, 69) + SourceIndex(0) +1 >Emitted(155, 1) Source(165, 67) + SourceIndex(0) +2 >Emitted(155, 2) Source(165, 68) + SourceIndex(0) +3 >Emitted(155, 3) Source(165, 69) + SourceIndex(0) --- >>>var c12t6 = function (n, s) { 1-> @@ -2862,14 +2856,14 @@ sourceFile:contextualTyping.ts 6 > n 7 > , 8 > s -1->Emitted(157, 1) Source(166, 1) + SourceIndex(0) -2 >Emitted(157, 5) Source(166, 5) + SourceIndex(0) -3 >Emitted(157, 10) Source(166, 10) + SourceIndex(0) -4 >Emitted(157, 13) Source(166, 46) + SourceIndex(0) -5 >Emitted(157, 23) Source(166, 55) + SourceIndex(0) -6 >Emitted(157, 24) Source(166, 56) + SourceIndex(0) -7 >Emitted(157, 26) Source(166, 58) + SourceIndex(0) -8 >Emitted(157, 27) Source(166, 59) + SourceIndex(0) +1->Emitted(156, 1) Source(166, 1) + SourceIndex(0) +2 >Emitted(156, 5) Source(166, 5) + SourceIndex(0) +3 >Emitted(156, 10) Source(166, 10) + SourceIndex(0) +4 >Emitted(156, 13) Source(166, 46) + SourceIndex(0) +5 >Emitted(156, 23) Source(166, 55) + SourceIndex(0) +6 >Emitted(156, 24) Source(166, 56) + SourceIndex(0) +7 >Emitted(156, 26) Source(166, 58) + SourceIndex(0) +8 >Emitted(156, 27) Source(166, 59) + SourceIndex(0) --- >>> return ({}); 1 >^^^^ @@ -2886,13 +2880,13 @@ sourceFile:contextualTyping.ts 5 > {} 6 > ) 7 > -1 >Emitted(158, 5) Source(166, 63) + SourceIndex(0) -2 >Emitted(158, 11) Source(166, 69) + SourceIndex(0) -3 >Emitted(158, 12) Source(166, 76) + SourceIndex(0) -4 >Emitted(158, 13) Source(166, 77) + SourceIndex(0) -5 >Emitted(158, 15) Source(166, 79) + SourceIndex(0) -6 >Emitted(158, 16) Source(166, 80) + SourceIndex(0) -7 >Emitted(158, 17) Source(166, 80) + SourceIndex(0) +1 >Emitted(157, 5) Source(166, 63) + SourceIndex(0) +2 >Emitted(157, 11) Source(166, 69) + SourceIndex(0) +3 >Emitted(157, 12) Source(166, 76) + SourceIndex(0) +4 >Emitted(157, 13) Source(166, 77) + SourceIndex(0) +5 >Emitted(157, 15) Source(166, 79) + SourceIndex(0) +6 >Emitted(157, 16) Source(166, 80) + SourceIndex(0) +7 >Emitted(157, 17) Source(166, 80) + SourceIndex(0) --- >>>}; 1 > @@ -2902,9 +2896,9 @@ sourceFile:contextualTyping.ts 1 > 2 >} 3 > ; -1 >Emitted(159, 1) Source(166, 81) + SourceIndex(0) -2 >Emitted(159, 2) Source(166, 82) + SourceIndex(0) -3 >Emitted(159, 3) Source(166, 83) + SourceIndex(0) +1 >Emitted(158, 1) Source(166, 81) + SourceIndex(0) +2 >Emitted(158, 2) Source(166, 82) + SourceIndex(0) +3 >Emitted(158, 3) Source(166, 83) + SourceIndex(0) --- >>>var c12t7 = function (n) { 1-> @@ -2923,12 +2917,12 @@ sourceFile:contextualTyping.ts > }> 5 > function( 6 > n:number -1->Emitted(160, 1) Source(167, 1) + SourceIndex(0) -2 >Emitted(160, 5) Source(167, 5) + SourceIndex(0) -3 >Emitted(160, 10) Source(167, 10) + SourceIndex(0) -4 >Emitted(160, 13) Source(170, 4) + SourceIndex(0) -5 >Emitted(160, 23) Source(170, 13) + SourceIndex(0) -6 >Emitted(160, 24) Source(170, 21) + SourceIndex(0) +1->Emitted(159, 1) Source(167, 1) + SourceIndex(0) +2 >Emitted(159, 5) Source(167, 5) + SourceIndex(0) +3 >Emitted(159, 10) Source(167, 10) + SourceIndex(0) +4 >Emitted(159, 13) Source(170, 4) + SourceIndex(0) +5 >Emitted(159, 23) Source(170, 13) + SourceIndex(0) +6 >Emitted(159, 24) Source(170, 21) + SourceIndex(0) --- >>> return n; 1 >^^^^ @@ -2941,11 +2935,11 @@ sourceFile:contextualTyping.ts 3 > 4 > n 5 > -1 >Emitted(161, 5) Source(170, 25) + SourceIndex(0) -2 >Emitted(161, 11) Source(170, 31) + SourceIndex(0) -3 >Emitted(161, 12) Source(170, 32) + SourceIndex(0) -4 >Emitted(161, 13) Source(170, 33) + SourceIndex(0) -5 >Emitted(161, 14) Source(170, 33) + SourceIndex(0) +1 >Emitted(160, 5) Source(170, 25) + SourceIndex(0) +2 >Emitted(160, 11) Source(170, 31) + SourceIndex(0) +3 >Emitted(160, 12) Source(170, 32) + SourceIndex(0) +4 >Emitted(160, 13) Source(170, 33) + SourceIndex(0) +5 >Emitted(160, 14) Source(170, 33) + SourceIndex(0) --- >>>}; 1 > @@ -2955,9 +2949,9 @@ sourceFile:contextualTyping.ts 1 > 2 >} 3 > ; -1 >Emitted(162, 1) Source(170, 34) + SourceIndex(0) -2 >Emitted(162, 2) Source(170, 35) + SourceIndex(0) -3 >Emitted(162, 3) Source(170, 36) + SourceIndex(0) +1 >Emitted(161, 1) Source(170, 34) + SourceIndex(0) +2 >Emitted(161, 2) Source(170, 35) + SourceIndex(0) +3 >Emitted(161, 3) Source(170, 36) + SourceIndex(0) --- >>>var c12t8 = function (n) { 1-> @@ -2974,12 +2968,12 @@ sourceFile:contextualTyping.ts 4 > = <(n: number, s: string) => number> 5 > function( 6 > n -1->Emitted(163, 1) Source(172, 1) + SourceIndex(0) -2 >Emitted(163, 5) Source(172, 5) + SourceIndex(0) -3 >Emitted(163, 10) Source(172, 10) + SourceIndex(0) -4 >Emitted(163, 13) Source(172, 48) + SourceIndex(0) -5 >Emitted(163, 23) Source(172, 57) + SourceIndex(0) -6 >Emitted(163, 24) Source(172, 58) + SourceIndex(0) +1->Emitted(162, 1) Source(172, 1) + SourceIndex(0) +2 >Emitted(162, 5) Source(172, 5) + SourceIndex(0) +3 >Emitted(162, 10) Source(172, 10) + SourceIndex(0) +4 >Emitted(162, 13) Source(172, 48) + SourceIndex(0) +5 >Emitted(162, 23) Source(172, 57) + SourceIndex(0) +6 >Emitted(162, 24) Source(172, 58) + SourceIndex(0) --- >>> return n; 1 >^^^^ @@ -2992,11 +2986,11 @@ sourceFile:contextualTyping.ts 3 > 4 > n 5 > ; -1 >Emitted(164, 5) Source(172, 62) + SourceIndex(0) -2 >Emitted(164, 11) Source(172, 68) + SourceIndex(0) -3 >Emitted(164, 12) Source(172, 69) + SourceIndex(0) -4 >Emitted(164, 13) Source(172, 70) + SourceIndex(0) -5 >Emitted(164, 14) Source(172, 71) + SourceIndex(0) +1 >Emitted(163, 5) Source(172, 62) + SourceIndex(0) +2 >Emitted(163, 11) Source(172, 68) + SourceIndex(0) +3 >Emitted(163, 12) Source(172, 69) + SourceIndex(0) +4 >Emitted(163, 13) Source(172, 70) + SourceIndex(0) +5 >Emitted(163, 14) Source(172, 71) + SourceIndex(0) --- >>>}; 1 > @@ -3006,9 +3000,9 @@ sourceFile:contextualTyping.ts 1 > 2 >} 3 > ; -1 >Emitted(165, 1) Source(172, 72) + SourceIndex(0) -2 >Emitted(165, 2) Source(172, 73) + SourceIndex(0) -3 >Emitted(165, 3) Source(172, 74) + SourceIndex(0) +1 >Emitted(164, 1) Source(172, 72) + SourceIndex(0) +2 >Emitted(164, 2) Source(172, 73) + SourceIndex(0) +3 >Emitted(164, 3) Source(172, 74) + SourceIndex(0) --- >>>var c12t9 = [[], []]; 1-> @@ -3033,16 +3027,16 @@ sourceFile:contextualTyping.ts 8 > [] 9 > ] 10> ; -1->Emitted(166, 1) Source(173, 1) + SourceIndex(0) -2 >Emitted(166, 5) Source(173, 5) + SourceIndex(0) -3 >Emitted(166, 10) Source(173, 10) + SourceIndex(0) -4 >Emitted(166, 13) Source(173, 26) + SourceIndex(0) -5 >Emitted(166, 14) Source(173, 27) + SourceIndex(0) -6 >Emitted(166, 16) Source(173, 29) + SourceIndex(0) -7 >Emitted(166, 18) Source(173, 30) + SourceIndex(0) -8 >Emitted(166, 20) Source(173, 32) + SourceIndex(0) -9 >Emitted(166, 21) Source(173, 33) + SourceIndex(0) -10>Emitted(166, 22) Source(173, 34) + SourceIndex(0) +1->Emitted(165, 1) Source(173, 1) + SourceIndex(0) +2 >Emitted(165, 5) Source(173, 5) + SourceIndex(0) +3 >Emitted(165, 10) Source(173, 10) + SourceIndex(0) +4 >Emitted(165, 13) Source(173, 26) + SourceIndex(0) +5 >Emitted(165, 14) Source(173, 27) + SourceIndex(0) +6 >Emitted(165, 16) Source(173, 29) + SourceIndex(0) +7 >Emitted(165, 18) Source(173, 30) + SourceIndex(0) +8 >Emitted(165, 20) Source(173, 32) + SourceIndex(0) +9 >Emitted(165, 21) Source(173, 33) + SourceIndex(0) +10>Emitted(165, 22) Source(173, 34) + SourceIndex(0) --- >>>var c12t10 = [({}), ({})]; 1-> @@ -3075,20 +3069,20 @@ sourceFile:contextualTyping.ts 12> ) 13> ] 14> ; -1->Emitted(167, 1) Source(174, 1) + SourceIndex(0) -2 >Emitted(167, 5) Source(174, 5) + SourceIndex(0) -3 >Emitted(167, 11) Source(174, 11) + SourceIndex(0) -4 >Emitted(167, 14) Source(174, 23) + SourceIndex(0) -5 >Emitted(167, 15) Source(174, 30) + SourceIndex(0) -6 >Emitted(167, 16) Source(174, 31) + SourceIndex(0) -7 >Emitted(167, 18) Source(174, 33) + SourceIndex(0) -8 >Emitted(167, 19) Source(174, 34) + SourceIndex(0) -9 >Emitted(167, 21) Source(174, 41) + SourceIndex(0) -10>Emitted(167, 22) Source(174, 42) + SourceIndex(0) -11>Emitted(167, 24) Source(174, 44) + SourceIndex(0) -12>Emitted(167, 25) Source(174, 45) + SourceIndex(0) -13>Emitted(167, 26) Source(174, 46) + SourceIndex(0) -14>Emitted(167, 27) Source(174, 47) + SourceIndex(0) +1->Emitted(166, 1) Source(174, 1) + SourceIndex(0) +2 >Emitted(166, 5) Source(174, 5) + SourceIndex(0) +3 >Emitted(166, 11) Source(174, 11) + SourceIndex(0) +4 >Emitted(166, 14) Source(174, 23) + SourceIndex(0) +5 >Emitted(166, 15) Source(174, 30) + SourceIndex(0) +6 >Emitted(166, 16) Source(174, 31) + SourceIndex(0) +7 >Emitted(166, 18) Source(174, 33) + SourceIndex(0) +8 >Emitted(166, 19) Source(174, 34) + SourceIndex(0) +9 >Emitted(166, 21) Source(174, 41) + SourceIndex(0) +10>Emitted(166, 22) Source(174, 42) + SourceIndex(0) +11>Emitted(166, 24) Source(174, 44) + SourceIndex(0) +12>Emitted(166, 25) Source(174, 45) + SourceIndex(0) +13>Emitted(166, 26) Source(174, 46) + SourceIndex(0) +14>Emitted(166, 27) Source(174, 47) + SourceIndex(0) --- >>>var c12t11 = [function (n, s) { 1-> @@ -3110,15 +3104,15 @@ sourceFile:contextualTyping.ts 7 > n 8 > , 9 > s -1->Emitted(168, 1) Source(175, 1) + SourceIndex(0) -2 >Emitted(168, 5) Source(175, 5) + SourceIndex(0) -3 >Emitted(168, 11) Source(175, 11) + SourceIndex(0) -4 >Emitted(168, 14) Source(175, 52) + SourceIndex(0) -5 >Emitted(168, 15) Source(175, 53) + SourceIndex(0) -6 >Emitted(168, 25) Source(175, 62) + SourceIndex(0) -7 >Emitted(168, 26) Source(175, 63) + SourceIndex(0) -8 >Emitted(168, 28) Source(175, 65) + SourceIndex(0) -9 >Emitted(168, 29) Source(175, 66) + SourceIndex(0) +1->Emitted(167, 1) Source(175, 1) + SourceIndex(0) +2 >Emitted(167, 5) Source(175, 5) + SourceIndex(0) +3 >Emitted(167, 11) Source(175, 11) + SourceIndex(0) +4 >Emitted(167, 14) Source(175, 52) + SourceIndex(0) +5 >Emitted(167, 15) Source(175, 53) + SourceIndex(0) +6 >Emitted(167, 25) Source(175, 62) + SourceIndex(0) +7 >Emitted(167, 26) Source(175, 63) + SourceIndex(0) +8 >Emitted(167, 28) Source(175, 65) + SourceIndex(0) +9 >Emitted(167, 29) Source(175, 66) + SourceIndex(0) --- >>> return s; 1 >^^^^ @@ -3131,11 +3125,11 @@ sourceFile:contextualTyping.ts 3 > 4 > s 5 > ; -1 >Emitted(169, 5) Source(175, 70) + SourceIndex(0) -2 >Emitted(169, 11) Source(175, 76) + SourceIndex(0) -3 >Emitted(169, 12) Source(175, 77) + SourceIndex(0) -4 >Emitted(169, 13) Source(175, 78) + SourceIndex(0) -5 >Emitted(169, 14) Source(175, 79) + SourceIndex(0) +1 >Emitted(168, 5) Source(175, 70) + SourceIndex(0) +2 >Emitted(168, 11) Source(175, 76) + SourceIndex(0) +3 >Emitted(168, 12) Source(175, 77) + SourceIndex(0) +4 >Emitted(168, 13) Source(175, 78) + SourceIndex(0) +5 >Emitted(168, 14) Source(175, 79) + SourceIndex(0) --- >>>}]; 1 > @@ -3147,10 +3141,10 @@ sourceFile:contextualTyping.ts 2 >} 3 > ] 4 > ; -1 >Emitted(170, 1) Source(175, 80) + SourceIndex(0) -2 >Emitted(170, 2) Source(175, 81) + SourceIndex(0) -3 >Emitted(170, 3) Source(175, 82) + SourceIndex(0) -4 >Emitted(170, 4) Source(175, 83) + SourceIndex(0) +1 >Emitted(169, 1) Source(175, 80) + SourceIndex(0) +2 >Emitted(169, 2) Source(175, 81) + SourceIndex(0) +3 >Emitted(169, 3) Source(175, 82) + SourceIndex(0) +4 >Emitted(169, 4) Source(175, 83) + SourceIndex(0) --- >>>var c12t12 = { 1-> @@ -3163,10 +3157,10 @@ sourceFile:contextualTyping.ts 2 >var 3 > c12t12 4 > = -1->Emitted(171, 1) Source(176, 1) + SourceIndex(0) -2 >Emitted(171, 5) Source(176, 5) + SourceIndex(0) -3 >Emitted(171, 11) Source(176, 11) + SourceIndex(0) -4 >Emitted(171, 14) Source(176, 21) + SourceIndex(0) +1->Emitted(170, 1) Source(176, 1) + SourceIndex(0) +2 >Emitted(170, 5) Source(176, 5) + SourceIndex(0) +3 >Emitted(170, 11) Source(176, 11) + SourceIndex(0) +4 >Emitted(170, 14) Source(176, 21) + SourceIndex(0) --- >>> foo: ({}) 1->^^^^ @@ -3182,12 +3176,12 @@ sourceFile:contextualTyping.ts 4 > ( 5 > {} 6 > ) -1->Emitted(172, 5) Source(177, 5) + SourceIndex(0) -2 >Emitted(172, 8) Source(177, 8) + SourceIndex(0) -3 >Emitted(172, 10) Source(177, 16) + SourceIndex(0) -4 >Emitted(172, 11) Source(177, 17) + SourceIndex(0) -5 >Emitted(172, 13) Source(177, 19) + SourceIndex(0) -6 >Emitted(172, 14) Source(177, 20) + SourceIndex(0) +1->Emitted(171, 5) Source(177, 5) + SourceIndex(0) +2 >Emitted(171, 8) Source(177, 8) + SourceIndex(0) +3 >Emitted(171, 10) Source(177, 16) + SourceIndex(0) +4 >Emitted(171, 11) Source(177, 17) + SourceIndex(0) +5 >Emitted(171, 13) Source(177, 19) + SourceIndex(0) +6 >Emitted(171, 14) Source(177, 20) + SourceIndex(0) --- >>>}; 1 >^ @@ -3196,8 +3190,8 @@ sourceFile:contextualTyping.ts 1 > >} 2 > -1 >Emitted(173, 2) Source(178, 2) + SourceIndex(0) -2 >Emitted(173, 3) Source(178, 2) + SourceIndex(0) +1 >Emitted(172, 2) Source(178, 2) + SourceIndex(0) +2 >Emitted(172, 3) Source(178, 2) + SourceIndex(0) --- >>>var c12t13 = ({ 1-> @@ -3212,11 +3206,11 @@ sourceFile:contextualTyping.ts 3 > c12t13 4 > = 5 > ( -1->Emitted(174, 1) Source(179, 1) + SourceIndex(0) -2 >Emitted(174, 5) Source(179, 5) + SourceIndex(0) -3 >Emitted(174, 11) Source(179, 11) + SourceIndex(0) -4 >Emitted(174, 14) Source(179, 21) + SourceIndex(0) -5 >Emitted(174, 15) Source(179, 22) + SourceIndex(0) +1->Emitted(173, 1) Source(179, 1) + SourceIndex(0) +2 >Emitted(173, 5) Source(179, 5) + SourceIndex(0) +3 >Emitted(173, 11) Source(179, 11) + SourceIndex(0) +4 >Emitted(173, 14) Source(179, 21) + SourceIndex(0) +5 >Emitted(173, 15) Source(179, 22) + SourceIndex(0) --- >>> f: function (i, s) { 1->^^^^ @@ -3234,13 +3228,13 @@ sourceFile:contextualTyping.ts 5 > i 6 > , 7 > s -1->Emitted(175, 5) Source(180, 5) + SourceIndex(0) -2 >Emitted(175, 6) Source(180, 6) + SourceIndex(0) -3 >Emitted(175, 8) Source(180, 8) + SourceIndex(0) -4 >Emitted(175, 18) Source(180, 17) + SourceIndex(0) -5 >Emitted(175, 19) Source(180, 18) + SourceIndex(0) -6 >Emitted(175, 21) Source(180, 20) + SourceIndex(0) -7 >Emitted(175, 22) Source(180, 21) + SourceIndex(0) +1->Emitted(174, 5) Source(180, 5) + SourceIndex(0) +2 >Emitted(174, 6) Source(180, 6) + SourceIndex(0) +3 >Emitted(174, 8) Source(180, 8) + SourceIndex(0) +4 >Emitted(174, 18) Source(180, 17) + SourceIndex(0) +5 >Emitted(174, 19) Source(180, 18) + SourceIndex(0) +6 >Emitted(174, 21) Source(180, 20) + SourceIndex(0) +7 >Emitted(174, 22) Source(180, 21) + SourceIndex(0) --- >>> return s; 1 >^^^^^^^^ @@ -3253,19 +3247,19 @@ sourceFile:contextualTyping.ts 3 > 4 > s 5 > ; -1 >Emitted(176, 9) Source(180, 25) + SourceIndex(0) -2 >Emitted(176, 15) Source(180, 31) + SourceIndex(0) -3 >Emitted(176, 16) Source(180, 32) + SourceIndex(0) -4 >Emitted(176, 17) Source(180, 33) + SourceIndex(0) -5 >Emitted(176, 18) Source(180, 34) + SourceIndex(0) +1 >Emitted(175, 9) Source(180, 25) + SourceIndex(0) +2 >Emitted(175, 15) Source(180, 31) + SourceIndex(0) +3 >Emitted(175, 16) Source(180, 32) + SourceIndex(0) +4 >Emitted(175, 17) Source(180, 33) + SourceIndex(0) +5 >Emitted(175, 18) Source(180, 34) + SourceIndex(0) --- >>> } 1 >^^^^ 2 > ^ 1 > 2 > } -1 >Emitted(177, 5) Source(180, 35) + SourceIndex(0) -2 >Emitted(177, 6) Source(180, 36) + SourceIndex(0) +1 >Emitted(176, 5) Source(180, 35) + SourceIndex(0) +2 >Emitted(176, 6) Source(180, 36) + SourceIndex(0) --- >>>}); 1 >^ @@ -3276,9 +3270,9 @@ sourceFile:contextualTyping.ts >} 2 > ) 3 > -1 >Emitted(178, 2) Source(181, 2) + SourceIndex(0) -2 >Emitted(178, 3) Source(181, 3) + SourceIndex(0) -3 >Emitted(178, 4) Source(181, 3) + SourceIndex(0) +1 >Emitted(177, 2) Source(181, 2) + SourceIndex(0) +2 >Emitted(177, 3) Source(181, 3) + SourceIndex(0) +3 >Emitted(177, 4) Source(181, 3) + SourceIndex(0) --- >>>var c12t14 = ({ 1-> @@ -3292,11 +3286,11 @@ sourceFile:contextualTyping.ts 3 > c12t14 4 > = 5 > ( -1->Emitted(179, 1) Source(182, 1) + SourceIndex(0) -2 >Emitted(179, 5) Source(182, 5) + SourceIndex(0) -3 >Emitted(179, 11) Source(182, 11) + SourceIndex(0) -4 >Emitted(179, 14) Source(182, 21) + SourceIndex(0) -5 >Emitted(179, 15) Source(182, 22) + SourceIndex(0) +1->Emitted(178, 1) Source(182, 1) + SourceIndex(0) +2 >Emitted(178, 5) Source(182, 5) + SourceIndex(0) +3 >Emitted(178, 11) Source(182, 11) + SourceIndex(0) +4 >Emitted(178, 14) Source(182, 21) + SourceIndex(0) +5 >Emitted(178, 15) Source(182, 22) + SourceIndex(0) --- >>> a: [] 1 >^^^^ @@ -3308,10 +3302,10 @@ sourceFile:contextualTyping.ts 2 > a 3 > : 4 > [] -1 >Emitted(180, 5) Source(183, 5) + SourceIndex(0) -2 >Emitted(180, 6) Source(183, 6) + SourceIndex(0) -3 >Emitted(180, 8) Source(183, 8) + SourceIndex(0) -4 >Emitted(180, 10) Source(183, 10) + SourceIndex(0) +1 >Emitted(179, 5) Source(183, 5) + SourceIndex(0) +2 >Emitted(179, 6) Source(183, 6) + SourceIndex(0) +3 >Emitted(179, 8) Source(183, 8) + SourceIndex(0) +4 >Emitted(179, 10) Source(183, 10) + SourceIndex(0) --- >>>}); 1 >^ @@ -3322,9 +3316,9 @@ sourceFile:contextualTyping.ts >} 2 > ) 3 > -1 >Emitted(181, 2) Source(184, 2) + SourceIndex(0) -2 >Emitted(181, 3) Source(184, 3) + SourceIndex(0) -3 >Emitted(181, 4) Source(184, 3) + SourceIndex(0) +1 >Emitted(180, 2) Source(184, 2) + SourceIndex(0) +2 >Emitted(180, 3) Source(184, 3) + SourceIndex(0) +3 >Emitted(180, 4) Source(184, 3) + SourceIndex(0) --- >>>function EF1(a, b) { 1-> @@ -3349,13 +3343,13 @@ sourceFile:contextualTyping.ts 5 > a 6 > , 7 > b -1->Emitted(182, 1) Source(191, 1) + SourceIndex(0) -2 >Emitted(182, 10) Source(191, 10) + SourceIndex(0) -3 >Emitted(182, 13) Source(191, 13) + SourceIndex(0) -4 >Emitted(182, 14) Source(191, 14) + SourceIndex(0) -5 >Emitted(182, 15) Source(191, 15) + SourceIndex(0) -6 >Emitted(182, 17) Source(191, 16) + SourceIndex(0) -7 >Emitted(182, 18) Source(191, 17) + SourceIndex(0) +1->Emitted(181, 1) Source(191, 1) + SourceIndex(0) +2 >Emitted(181, 10) Source(191, 10) + SourceIndex(0) +3 >Emitted(181, 13) Source(191, 13) + SourceIndex(0) +4 >Emitted(181, 14) Source(191, 14) + SourceIndex(0) +5 >Emitted(181, 15) Source(191, 15) + SourceIndex(0) +6 >Emitted(181, 17) Source(191, 16) + SourceIndex(0) +7 >Emitted(181, 18) Source(191, 17) + SourceIndex(0) --- >>> return a + b; 1->^^^^ @@ -3372,13 +3366,13 @@ sourceFile:contextualTyping.ts 5 > + 6 > b 7 > ; -1->Emitted(183, 5) Source(191, 21) + SourceIndex(0) name (EF1) -2 >Emitted(183, 11) Source(191, 27) + SourceIndex(0) name (EF1) -3 >Emitted(183, 12) Source(191, 28) + SourceIndex(0) name (EF1) -4 >Emitted(183, 13) Source(191, 29) + SourceIndex(0) name (EF1) -5 >Emitted(183, 16) Source(191, 30) + SourceIndex(0) name (EF1) -6 >Emitted(183, 17) Source(191, 31) + SourceIndex(0) name (EF1) -7 >Emitted(183, 18) Source(191, 32) + SourceIndex(0) name (EF1) +1->Emitted(182, 5) Source(191, 21) + SourceIndex(0) name (EF1) +2 >Emitted(182, 11) Source(191, 27) + SourceIndex(0) name (EF1) +3 >Emitted(182, 12) Source(191, 28) + SourceIndex(0) name (EF1) +4 >Emitted(182, 13) Source(191, 29) + SourceIndex(0) name (EF1) +5 >Emitted(182, 16) Source(191, 30) + SourceIndex(0) name (EF1) +6 >Emitted(182, 17) Source(191, 31) + SourceIndex(0) name (EF1) +7 >Emitted(182, 18) Source(191, 32) + SourceIndex(0) name (EF1) --- >>>} 1 > @@ -3386,8 +3380,8 @@ sourceFile:contextualTyping.ts 3 > ^^^^^^^^^^^^^^^^^^^^-> 1 > 2 >} -1 >Emitted(184, 1) Source(191, 33) + SourceIndex(0) name (EF1) -2 >Emitted(184, 2) Source(191, 34) + SourceIndex(0) name (EF1) +1 >Emitted(183, 1) Source(191, 33) + SourceIndex(0) name (EF1) +2 >Emitted(183, 2) Source(191, 34) + SourceIndex(0) name (EF1) --- >>>var efv = EF1(1, 2); 1-> @@ -3415,17 +3409,17 @@ sourceFile:contextualTyping.ts 9 > 2 10> ) 11> ; -1->Emitted(185, 1) Source(193, 1) + SourceIndex(0) -2 >Emitted(185, 5) Source(193, 5) + SourceIndex(0) -3 >Emitted(185, 8) Source(193, 8) + SourceIndex(0) -4 >Emitted(185, 11) Source(193, 11) + SourceIndex(0) -5 >Emitted(185, 14) Source(193, 14) + SourceIndex(0) -6 >Emitted(185, 15) Source(193, 15) + SourceIndex(0) -7 >Emitted(185, 16) Source(193, 16) + SourceIndex(0) -8 >Emitted(185, 18) Source(193, 17) + SourceIndex(0) -9 >Emitted(185, 19) Source(193, 18) + SourceIndex(0) -10>Emitted(185, 20) Source(193, 19) + SourceIndex(0) -11>Emitted(185, 21) Source(193, 20) + SourceIndex(0) +1->Emitted(184, 1) Source(193, 1) + SourceIndex(0) +2 >Emitted(184, 5) Source(193, 5) + SourceIndex(0) +3 >Emitted(184, 8) Source(193, 8) + SourceIndex(0) +4 >Emitted(184, 11) Source(193, 11) + SourceIndex(0) +5 >Emitted(184, 14) Source(193, 14) + SourceIndex(0) +6 >Emitted(184, 15) Source(193, 15) + SourceIndex(0) +7 >Emitted(184, 16) Source(193, 16) + SourceIndex(0) +8 >Emitted(184, 18) Source(193, 17) + SourceIndex(0) +9 >Emitted(184, 19) Source(193, 18) + SourceIndex(0) +10>Emitted(184, 20) Source(193, 19) + SourceIndex(0) +11>Emitted(184, 21) Source(193, 20) + SourceIndex(0) --- >>>function Point(x, y) { 1-> @@ -3456,13 +3450,13 @@ sourceFile:contextualTyping.ts 5 > x 6 > , 7 > y -1->Emitted(186, 1) Source(207, 1) + SourceIndex(0) -2 >Emitted(186, 10) Source(207, 10) + SourceIndex(0) -3 >Emitted(186, 15) Source(207, 15) + SourceIndex(0) -4 >Emitted(186, 16) Source(207, 16) + SourceIndex(0) -5 >Emitted(186, 17) Source(207, 17) + SourceIndex(0) -6 >Emitted(186, 19) Source(207, 19) + SourceIndex(0) -7 >Emitted(186, 20) Source(207, 20) + SourceIndex(0) +1->Emitted(185, 1) Source(207, 1) + SourceIndex(0) +2 >Emitted(185, 10) Source(207, 10) + SourceIndex(0) +3 >Emitted(185, 15) Source(207, 15) + SourceIndex(0) +4 >Emitted(185, 16) Source(207, 16) + SourceIndex(0) +5 >Emitted(185, 17) Source(207, 17) + SourceIndex(0) +6 >Emitted(185, 19) Source(207, 19) + SourceIndex(0) +7 >Emitted(185, 20) Source(207, 20) + SourceIndex(0) --- >>> this.x = x; 1 >^^^^ @@ -3481,13 +3475,13 @@ sourceFile:contextualTyping.ts 5 > = 6 > x 7 > ; -1 >Emitted(187, 5) Source(208, 5) + SourceIndex(0) name (Point) -2 >Emitted(187, 9) Source(208, 9) + SourceIndex(0) name (Point) -3 >Emitted(187, 10) Source(208, 10) + SourceIndex(0) name (Point) -4 >Emitted(187, 11) Source(208, 11) + SourceIndex(0) name (Point) -5 >Emitted(187, 14) Source(208, 14) + SourceIndex(0) name (Point) -6 >Emitted(187, 15) Source(208, 15) + SourceIndex(0) name (Point) -7 >Emitted(187, 16) Source(208, 16) + SourceIndex(0) name (Point) +1 >Emitted(186, 5) Source(208, 5) + SourceIndex(0) name (Point) +2 >Emitted(186, 9) Source(208, 9) + SourceIndex(0) name (Point) +3 >Emitted(186, 10) Source(208, 10) + SourceIndex(0) name (Point) +4 >Emitted(186, 11) Source(208, 11) + SourceIndex(0) name (Point) +5 >Emitted(186, 14) Source(208, 14) + SourceIndex(0) name (Point) +6 >Emitted(186, 15) Source(208, 15) + SourceIndex(0) name (Point) +7 >Emitted(186, 16) Source(208, 16) + SourceIndex(0) name (Point) --- >>> this.y = y; 1->^^^^ @@ -3506,13 +3500,13 @@ sourceFile:contextualTyping.ts 5 > = 6 > y 7 > ; -1->Emitted(188, 5) Source(209, 5) + SourceIndex(0) name (Point) -2 >Emitted(188, 9) Source(209, 9) + SourceIndex(0) name (Point) -3 >Emitted(188, 10) Source(209, 10) + SourceIndex(0) name (Point) -4 >Emitted(188, 11) Source(209, 11) + SourceIndex(0) name (Point) -5 >Emitted(188, 14) Source(209, 14) + SourceIndex(0) name (Point) -6 >Emitted(188, 15) Source(209, 15) + SourceIndex(0) name (Point) -7 >Emitted(188, 16) Source(209, 16) + SourceIndex(0) name (Point) +1->Emitted(187, 5) Source(209, 5) + SourceIndex(0) name (Point) +2 >Emitted(187, 9) Source(209, 9) + SourceIndex(0) name (Point) +3 >Emitted(187, 10) Source(209, 10) + SourceIndex(0) name (Point) +4 >Emitted(187, 11) Source(209, 11) + SourceIndex(0) name (Point) +5 >Emitted(187, 14) Source(209, 14) + SourceIndex(0) name (Point) +6 >Emitted(187, 15) Source(209, 15) + SourceIndex(0) name (Point) +7 >Emitted(187, 16) Source(209, 16) + SourceIndex(0) name (Point) --- >>> return this; 1->^^^^ @@ -3527,11 +3521,11 @@ sourceFile:contextualTyping.ts 3 > 4 > this 5 > ; -1->Emitted(189, 5) Source(211, 5) + SourceIndex(0) name (Point) -2 >Emitted(189, 11) Source(211, 11) + SourceIndex(0) name (Point) -3 >Emitted(189, 12) Source(211, 12) + SourceIndex(0) name (Point) -4 >Emitted(189, 16) Source(211, 16) + SourceIndex(0) name (Point) -5 >Emitted(189, 17) Source(211, 17) + SourceIndex(0) name (Point) +1->Emitted(188, 5) Source(211, 5) + SourceIndex(0) name (Point) +2 >Emitted(188, 11) Source(211, 11) + SourceIndex(0) name (Point) +3 >Emitted(188, 12) Source(211, 12) + SourceIndex(0) name (Point) +4 >Emitted(188, 16) Source(211, 16) + SourceIndex(0) name (Point) +5 >Emitted(188, 17) Source(211, 17) + SourceIndex(0) name (Point) --- >>>} 1 > @@ -3540,8 +3534,8 @@ sourceFile:contextualTyping.ts 1 > > 2 >} -1 >Emitted(190, 1) Source(212, 1) + SourceIndex(0) name (Point) -2 >Emitted(190, 2) Source(212, 2) + SourceIndex(0) name (Point) +1 >Emitted(189, 1) Source(212, 1) + SourceIndex(0) name (Point) +2 >Emitted(189, 2) Source(212, 2) + SourceIndex(0) name (Point) --- >>>Point.origin = new Point(0, 0); 1-> @@ -3573,19 +3567,19 @@ sourceFile:contextualTyping.ts 11> 0 12> ) 13> ; -1->Emitted(191, 1) Source(214, 1) + SourceIndex(0) -2 >Emitted(191, 6) Source(214, 6) + SourceIndex(0) -3 >Emitted(191, 7) Source(214, 7) + SourceIndex(0) -4 >Emitted(191, 13) Source(214, 13) + SourceIndex(0) -5 >Emitted(191, 16) Source(214, 16) + SourceIndex(0) -6 >Emitted(191, 20) Source(214, 20) + SourceIndex(0) -7 >Emitted(191, 25) Source(214, 25) + SourceIndex(0) -8 >Emitted(191, 26) Source(214, 26) + SourceIndex(0) -9 >Emitted(191, 27) Source(214, 27) + SourceIndex(0) -10>Emitted(191, 29) Source(214, 29) + SourceIndex(0) -11>Emitted(191, 30) Source(214, 30) + SourceIndex(0) -12>Emitted(191, 31) Source(214, 31) + SourceIndex(0) -13>Emitted(191, 32) Source(214, 32) + SourceIndex(0) +1->Emitted(190, 1) Source(214, 1) + SourceIndex(0) +2 >Emitted(190, 6) Source(214, 6) + SourceIndex(0) +3 >Emitted(190, 7) Source(214, 7) + SourceIndex(0) +4 >Emitted(190, 13) Source(214, 13) + SourceIndex(0) +5 >Emitted(190, 16) Source(214, 16) + SourceIndex(0) +6 >Emitted(190, 20) Source(214, 20) + SourceIndex(0) +7 >Emitted(190, 25) Source(214, 25) + SourceIndex(0) +8 >Emitted(190, 26) Source(214, 26) + SourceIndex(0) +9 >Emitted(190, 27) Source(214, 27) + SourceIndex(0) +10>Emitted(190, 29) Source(214, 29) + SourceIndex(0) +11>Emitted(190, 30) Source(214, 30) + SourceIndex(0) +12>Emitted(190, 31) Source(214, 31) + SourceIndex(0) +13>Emitted(190, 32) Source(214, 32) + SourceIndex(0) --- >>>Point.prototype.add = function (dx, dy) { 1-> @@ -3613,17 +3607,17 @@ sourceFile:contextualTyping.ts 9 > dx 10> , 11> dy -1->Emitted(192, 1) Source(216, 1) + SourceIndex(0) -2 >Emitted(192, 6) Source(216, 6) + SourceIndex(0) -3 >Emitted(192, 7) Source(216, 7) + SourceIndex(0) -4 >Emitted(192, 16) Source(216, 16) + SourceIndex(0) -5 >Emitted(192, 17) Source(216, 17) + SourceIndex(0) -6 >Emitted(192, 20) Source(216, 20) + SourceIndex(0) -7 >Emitted(192, 23) Source(216, 23) + SourceIndex(0) -8 >Emitted(192, 33) Source(216, 32) + SourceIndex(0) -9 >Emitted(192, 35) Source(216, 34) + SourceIndex(0) -10>Emitted(192, 37) Source(216, 36) + SourceIndex(0) -11>Emitted(192, 39) Source(216, 38) + SourceIndex(0) +1->Emitted(191, 1) Source(216, 1) + SourceIndex(0) +2 >Emitted(191, 6) Source(216, 6) + SourceIndex(0) +3 >Emitted(191, 7) Source(216, 7) + SourceIndex(0) +4 >Emitted(191, 16) Source(216, 16) + SourceIndex(0) +5 >Emitted(191, 17) Source(216, 17) + SourceIndex(0) +6 >Emitted(191, 20) Source(216, 20) + SourceIndex(0) +7 >Emitted(191, 23) Source(216, 23) + SourceIndex(0) +8 >Emitted(191, 33) Source(216, 32) + SourceIndex(0) +9 >Emitted(191, 35) Source(216, 34) + SourceIndex(0) +10>Emitted(191, 37) Source(216, 36) + SourceIndex(0) +11>Emitted(191, 39) Source(216, 38) + SourceIndex(0) --- >>> return new Point(this.x + dx, this.y + dy); 1->^^^^ @@ -3665,25 +3659,25 @@ sourceFile:contextualTyping.ts 17> dy 18> ) 19> ; -1->Emitted(193, 5) Source(217, 5) + SourceIndex(0) -2 >Emitted(193, 11) Source(217, 11) + SourceIndex(0) -3 >Emitted(193, 12) Source(217, 12) + SourceIndex(0) -4 >Emitted(193, 16) Source(217, 16) + SourceIndex(0) -5 >Emitted(193, 21) Source(217, 21) + SourceIndex(0) -6 >Emitted(193, 22) Source(217, 22) + SourceIndex(0) -7 >Emitted(193, 26) Source(217, 26) + SourceIndex(0) -8 >Emitted(193, 27) Source(217, 27) + SourceIndex(0) -9 >Emitted(193, 28) Source(217, 28) + SourceIndex(0) -10>Emitted(193, 31) Source(217, 31) + SourceIndex(0) -11>Emitted(193, 33) Source(217, 33) + SourceIndex(0) -12>Emitted(193, 35) Source(217, 35) + SourceIndex(0) -13>Emitted(193, 39) Source(217, 39) + SourceIndex(0) -14>Emitted(193, 40) Source(217, 40) + SourceIndex(0) -15>Emitted(193, 41) Source(217, 41) + SourceIndex(0) -16>Emitted(193, 44) Source(217, 44) + SourceIndex(0) -17>Emitted(193, 46) Source(217, 46) + SourceIndex(0) -18>Emitted(193, 47) Source(217, 47) + SourceIndex(0) -19>Emitted(193, 48) Source(217, 48) + SourceIndex(0) +1->Emitted(192, 5) Source(217, 5) + SourceIndex(0) +2 >Emitted(192, 11) Source(217, 11) + SourceIndex(0) +3 >Emitted(192, 12) Source(217, 12) + SourceIndex(0) +4 >Emitted(192, 16) Source(217, 16) + SourceIndex(0) +5 >Emitted(192, 21) Source(217, 21) + SourceIndex(0) +6 >Emitted(192, 22) Source(217, 22) + SourceIndex(0) +7 >Emitted(192, 26) Source(217, 26) + SourceIndex(0) +8 >Emitted(192, 27) Source(217, 27) + SourceIndex(0) +9 >Emitted(192, 28) Source(217, 28) + SourceIndex(0) +10>Emitted(192, 31) Source(217, 31) + SourceIndex(0) +11>Emitted(192, 33) Source(217, 33) + SourceIndex(0) +12>Emitted(192, 35) Source(217, 35) + SourceIndex(0) +13>Emitted(192, 39) Source(217, 39) + SourceIndex(0) +14>Emitted(192, 40) Source(217, 40) + SourceIndex(0) +15>Emitted(192, 41) Source(217, 41) + SourceIndex(0) +16>Emitted(192, 44) Source(217, 44) + SourceIndex(0) +17>Emitted(192, 46) Source(217, 46) + SourceIndex(0) +18>Emitted(192, 47) Source(217, 47) + SourceIndex(0) +19>Emitted(192, 48) Source(217, 48) + SourceIndex(0) --- >>>}; 1 > @@ -3694,9 +3688,9 @@ sourceFile:contextualTyping.ts > 2 >} 3 > ; -1 >Emitted(194, 1) Source(218, 1) + SourceIndex(0) -2 >Emitted(194, 2) Source(218, 2) + SourceIndex(0) -3 >Emitted(194, 3) Source(218, 3) + SourceIndex(0) +1 >Emitted(193, 1) Source(218, 1) + SourceIndex(0) +2 >Emitted(193, 2) Source(218, 2) + SourceIndex(0) +3 >Emitted(193, 3) Source(218, 3) + SourceIndex(0) --- >>>Point.prototype = { 1-> @@ -3711,11 +3705,11 @@ sourceFile:contextualTyping.ts 3 > . 4 > prototype 5 > = -1->Emitted(195, 1) Source(220, 1) + SourceIndex(0) -2 >Emitted(195, 6) Source(220, 6) + SourceIndex(0) -3 >Emitted(195, 7) Source(220, 7) + SourceIndex(0) -4 >Emitted(195, 16) Source(220, 16) + SourceIndex(0) -5 >Emitted(195, 19) Source(220, 19) + SourceIndex(0) +1->Emitted(194, 1) Source(220, 1) + SourceIndex(0) +2 >Emitted(194, 6) Source(220, 6) + SourceIndex(0) +3 >Emitted(194, 7) Source(220, 7) + SourceIndex(0) +4 >Emitted(194, 16) Source(220, 16) + SourceIndex(0) +5 >Emitted(194, 19) Source(220, 19) + SourceIndex(0) --- >>> x: 0, 1 >^^^^ @@ -3728,10 +3722,10 @@ sourceFile:contextualTyping.ts 2 > x 3 > : 4 > 0 -1 >Emitted(196, 5) Source(221, 5) + SourceIndex(0) -2 >Emitted(196, 6) Source(221, 6) + SourceIndex(0) -3 >Emitted(196, 8) Source(221, 8) + SourceIndex(0) -4 >Emitted(196, 9) Source(221, 9) + SourceIndex(0) +1 >Emitted(195, 5) Source(221, 5) + SourceIndex(0) +2 >Emitted(195, 6) Source(221, 6) + SourceIndex(0) +3 >Emitted(195, 8) Source(221, 8) + SourceIndex(0) +4 >Emitted(195, 9) Source(221, 9) + SourceIndex(0) --- >>> y: 0, 1->^^^^ @@ -3744,10 +3738,10 @@ sourceFile:contextualTyping.ts 2 > y 3 > : 4 > 0 -1->Emitted(197, 5) Source(222, 5) + SourceIndex(0) -2 >Emitted(197, 6) Source(222, 6) + SourceIndex(0) -3 >Emitted(197, 8) Source(222, 8) + SourceIndex(0) -4 >Emitted(197, 9) Source(222, 9) + SourceIndex(0) +1->Emitted(196, 5) Source(222, 5) + SourceIndex(0) +2 >Emitted(196, 6) Source(222, 6) + SourceIndex(0) +3 >Emitted(196, 8) Source(222, 8) + SourceIndex(0) +4 >Emitted(196, 9) Source(222, 9) + SourceIndex(0) --- >>> add: function (dx, dy) { 1->^^^^ @@ -3766,13 +3760,13 @@ sourceFile:contextualTyping.ts 5 > dx 6 > , 7 > dy -1->Emitted(198, 5) Source(223, 5) + SourceIndex(0) -2 >Emitted(198, 8) Source(223, 8) + SourceIndex(0) -3 >Emitted(198, 10) Source(223, 10) + SourceIndex(0) -4 >Emitted(198, 20) Source(223, 19) + SourceIndex(0) -5 >Emitted(198, 22) Source(223, 21) + SourceIndex(0) -6 >Emitted(198, 24) Source(223, 23) + SourceIndex(0) -7 >Emitted(198, 26) Source(223, 25) + SourceIndex(0) +1->Emitted(197, 5) Source(223, 5) + SourceIndex(0) +2 >Emitted(197, 8) Source(223, 8) + SourceIndex(0) +3 >Emitted(197, 10) Source(223, 10) + SourceIndex(0) +4 >Emitted(197, 20) Source(223, 19) + SourceIndex(0) +5 >Emitted(197, 22) Source(223, 21) + SourceIndex(0) +6 >Emitted(197, 24) Source(223, 23) + SourceIndex(0) +7 >Emitted(197, 26) Source(223, 25) + SourceIndex(0) --- >>> return new Point(this.x + dx, this.y + dy); 1->^^^^^^^^ @@ -3814,25 +3808,25 @@ sourceFile:contextualTyping.ts 17> dy 18> ) 19> ; -1->Emitted(199, 9) Source(224, 9) + SourceIndex(0) -2 >Emitted(199, 15) Source(224, 15) + SourceIndex(0) -3 >Emitted(199, 16) Source(224, 16) + SourceIndex(0) -4 >Emitted(199, 20) Source(224, 20) + SourceIndex(0) -5 >Emitted(199, 25) Source(224, 25) + SourceIndex(0) -6 >Emitted(199, 26) Source(224, 26) + SourceIndex(0) -7 >Emitted(199, 30) Source(224, 30) + SourceIndex(0) -8 >Emitted(199, 31) Source(224, 31) + SourceIndex(0) -9 >Emitted(199, 32) Source(224, 32) + SourceIndex(0) -10>Emitted(199, 35) Source(224, 35) + SourceIndex(0) -11>Emitted(199, 37) Source(224, 37) + SourceIndex(0) -12>Emitted(199, 39) Source(224, 39) + SourceIndex(0) -13>Emitted(199, 43) Source(224, 43) + SourceIndex(0) -14>Emitted(199, 44) Source(224, 44) + SourceIndex(0) -15>Emitted(199, 45) Source(224, 45) + SourceIndex(0) -16>Emitted(199, 48) Source(224, 48) + SourceIndex(0) -17>Emitted(199, 50) Source(224, 50) + SourceIndex(0) -18>Emitted(199, 51) Source(224, 51) + SourceIndex(0) -19>Emitted(199, 52) Source(224, 52) + SourceIndex(0) +1->Emitted(198, 9) Source(224, 9) + SourceIndex(0) +2 >Emitted(198, 15) Source(224, 15) + SourceIndex(0) +3 >Emitted(198, 16) Source(224, 16) + SourceIndex(0) +4 >Emitted(198, 20) Source(224, 20) + SourceIndex(0) +5 >Emitted(198, 25) Source(224, 25) + SourceIndex(0) +6 >Emitted(198, 26) Source(224, 26) + SourceIndex(0) +7 >Emitted(198, 30) Source(224, 30) + SourceIndex(0) +8 >Emitted(198, 31) Source(224, 31) + SourceIndex(0) +9 >Emitted(198, 32) Source(224, 32) + SourceIndex(0) +10>Emitted(198, 35) Source(224, 35) + SourceIndex(0) +11>Emitted(198, 37) Source(224, 37) + SourceIndex(0) +12>Emitted(198, 39) Source(224, 39) + SourceIndex(0) +13>Emitted(198, 43) Source(224, 43) + SourceIndex(0) +14>Emitted(198, 44) Source(224, 44) + SourceIndex(0) +15>Emitted(198, 45) Source(224, 45) + SourceIndex(0) +16>Emitted(198, 48) Source(224, 48) + SourceIndex(0) +17>Emitted(198, 50) Source(224, 50) + SourceIndex(0) +18>Emitted(198, 51) Source(224, 51) + SourceIndex(0) +19>Emitted(198, 52) Source(224, 52) + SourceIndex(0) --- >>> } 1 >^^^^ @@ -3840,8 +3834,8 @@ sourceFile:contextualTyping.ts 1 > > 2 > } -1 >Emitted(200, 5) Source(225, 5) + SourceIndex(0) -2 >Emitted(200, 6) Source(225, 6) + SourceIndex(0) +1 >Emitted(199, 5) Source(225, 5) + SourceIndex(0) +2 >Emitted(199, 6) Source(225, 6) + SourceIndex(0) --- >>>}; 1 >^ @@ -3850,8 +3844,8 @@ sourceFile:contextualTyping.ts 1 > >} 2 > ; -1 >Emitted(201, 2) Source(226, 2) + SourceIndex(0) -2 >Emitted(201, 3) Source(226, 3) + SourceIndex(0) +1 >Emitted(200, 2) Source(226, 2) + SourceIndex(0) +2 >Emitted(200, 3) Source(226, 3) + SourceIndex(0) --- >>>var x = {}; 1-> @@ -3871,11 +3865,11 @@ sourceFile:contextualTyping.ts 4 > : B = 5 > { } 6 > ; -1->Emitted(202, 1) Source(230, 1) + SourceIndex(0) -2 >Emitted(202, 5) Source(230, 5) + SourceIndex(0) -3 >Emitted(202, 6) Source(230, 6) + SourceIndex(0) -4 >Emitted(202, 9) Source(230, 12) + SourceIndex(0) -5 >Emitted(202, 11) Source(230, 15) + SourceIndex(0) -6 >Emitted(202, 12) Source(230, 16) + SourceIndex(0) +1->Emitted(201, 1) Source(230, 1) + SourceIndex(0) +2 >Emitted(201, 5) Source(230, 5) + SourceIndex(0) +3 >Emitted(201, 6) Source(230, 6) + SourceIndex(0) +4 >Emitted(201, 9) Source(230, 12) + SourceIndex(0) +5 >Emitted(201, 11) Source(230, 15) + SourceIndex(0) +6 >Emitted(201, 12) Source(230, 16) + SourceIndex(0) --- >>>//# sourceMappingURL=contextualTyping.js.map \ No newline at end of file diff --git a/tests/baselines/reference/contextualTyping25.js b/tests/baselines/reference/contextualTyping25.js index 808ee2202ec..f90a70098d7 100644 --- a/tests/baselines/reference/contextualTyping25.js +++ b/tests/baselines/reference/contextualTyping25.js @@ -2,7 +2,6 @@ function foo(param:{id:number;}){}; foo(<{id:number;}>({})); //// [contextualTyping25.js] -function foo(param) { -} +function foo(param) { } ; foo(({})); diff --git a/tests/baselines/reference/contextualTyping26.js b/tests/baselines/reference/contextualTyping26.js index fabd810c8f5..feacf3da328 100644 --- a/tests/baselines/reference/contextualTyping26.js +++ b/tests/baselines/reference/contextualTyping26.js @@ -2,7 +2,6 @@ function foo(param:{id:number;}){}; foo(<{id:number;}>({})); //// [contextualTyping26.js] -function foo(param) { -} +function foo(param) { } ; foo(({})); diff --git a/tests/baselines/reference/contextualTyping27.js b/tests/baselines/reference/contextualTyping27.js index 11b8c251416..ce35e606196 100644 --- a/tests/baselines/reference/contextualTyping27.js +++ b/tests/baselines/reference/contextualTyping27.js @@ -2,7 +2,6 @@ function foo(param:{id:number;}){}; foo(<{id:number;}>({})); //// [contextualTyping27.js] -function foo(param) { -} +function foo(param) { } ; foo(({})); diff --git a/tests/baselines/reference/contextualTyping28.js b/tests/baselines/reference/contextualTyping28.js index 24f269efb10..095e3812400 100644 --- a/tests/baselines/reference/contextualTyping28.js +++ b/tests/baselines/reference/contextualTyping28.js @@ -2,7 +2,6 @@ function foo(param:number[]){}; foo([1]); //// [contextualTyping28.js] -function foo(param) { -} +function foo(param) { } ; foo([1]); diff --git a/tests/baselines/reference/contextualTyping29.js b/tests/baselines/reference/contextualTyping29.js index 3f29d16060c..1d5b32c208d 100644 --- a/tests/baselines/reference/contextualTyping29.js +++ b/tests/baselines/reference/contextualTyping29.js @@ -2,7 +2,6 @@ function foo(param:number[]){}; foo([1, 3]); //// [contextualTyping29.js] -function foo(param) { -} +function foo(param) { } ; foo([1, 3]); diff --git a/tests/baselines/reference/contextualTyping30.js b/tests/baselines/reference/contextualTyping30.js index daf74ff9f6b..94547a387d7 100644 --- a/tests/baselines/reference/contextualTyping30.js +++ b/tests/baselines/reference/contextualTyping30.js @@ -2,7 +2,6 @@ function foo(param:number[]){}; foo([1, "a"]); //// [contextualTyping30.js] -function foo(param) { -} +function foo(param) { } ; foo([1, "a"]); diff --git a/tests/baselines/reference/contextualTyping31.js b/tests/baselines/reference/contextualTyping31.js index 346f753cd1d..1eb4d5660fc 100644 --- a/tests/baselines/reference/contextualTyping31.js +++ b/tests/baselines/reference/contextualTyping31.js @@ -2,7 +2,6 @@ function foo(param:number[]){}; foo([1]); //// [contextualTyping31.js] -function foo(param) { -} +function foo(param) { } ; foo([1]); diff --git a/tests/baselines/reference/contextualTyping32.js b/tests/baselines/reference/contextualTyping32.js index 0c02caac75d..992724d4130 100644 --- a/tests/baselines/reference/contextualTyping32.js +++ b/tests/baselines/reference/contextualTyping32.js @@ -2,8 +2,7 @@ function foo(param: {():number; (i:number):number; }[]) { }; foo([function(){return 1;}, function(){return 4}]); //// [contextualTyping32.js] -function foo(param) { -} +function foo(param) { } ; foo([function () { return 1; diff --git a/tests/baselines/reference/contextualTyping33.js b/tests/baselines/reference/contextualTyping33.js index d61e6fe2d5f..0ca0c965b8b 100644 --- a/tests/baselines/reference/contextualTyping33.js +++ b/tests/baselines/reference/contextualTyping33.js @@ -2,8 +2,7 @@ function foo(param: {():number; (i:number):number; }[]) { }; foo([function(){return 1;}, function(){return "foo"}]); //// [contextualTyping33.js] -function foo(param) { -} +function foo(param) { } ; foo([function () { return 1; diff --git a/tests/baselines/reference/contextualTypingArrayOfLambdas.js b/tests/baselines/reference/contextualTypingArrayOfLambdas.js index ffe00308636..844a50428e2 100644 --- a/tests/baselines/reference/contextualTypingArrayOfLambdas.js +++ b/tests/baselines/reference/contextualTypingArrayOfLambdas.js @@ -40,7 +40,4 @@ var C = (function (_super) { } return C; })(A); -var xs = [function (x) { -}, function (x) { -}, function (x) { -}]; +var xs = [function (x) { }, function (x) { }, function (x) { }]; diff --git a/tests/baselines/reference/contextualTypingOfAccessors.js b/tests/baselines/reference/contextualTypingOfAccessors.js index 45463936831..f785d19636c 100644 --- a/tests/baselines/reference/contextualTypingOfAccessors.js +++ b/tests/baselines/reference/contextualTypingOfAccessors.js @@ -20,6 +20,5 @@ x = { get foo() { return function (n) { return n; }; }, - set foo(x) { - } + set foo(x) { } }; diff --git a/tests/baselines/reference/contextualTypingOfConditionalExpression2.js b/tests/baselines/reference/contextualTypingOfConditionalExpression2.js index e0008bd49c6..f832d2766ee 100644 --- a/tests/baselines/reference/contextualTypingOfConditionalExpression2.js +++ b/tests/baselines/reference/contextualTypingOfConditionalExpression2.js @@ -38,5 +38,4 @@ var C = (function (_super) { } return C; })(A); -var x2 = true ? function (a) { return a.foo; } : function (b) { -}; +var x2 = true ? function (a) { return a.foo; } : function (b) { }; diff --git a/tests/baselines/reference/contextualTypingOfLambdaReturnExpression.js b/tests/baselines/reference/contextualTypingOfLambdaReturnExpression.js index f7e6b63ce05..220e06da59d 100644 --- a/tests/baselines/reference/contextualTypingOfLambdaReturnExpression.js +++ b/tests/baselines/reference/contextualTypingOfLambdaReturnExpression.js @@ -7,8 +7,7 @@ callb((a) => a.length); // Ok, we choose the second overload because the first o callb((a) => { a.length; }); // Error, we picked the first overload and errored when type checking the lambda body //// [contextualTypingOfLambdaReturnExpression.js] -function callb(a) { -} +function callb(a) { } callb(function (a) { return a.length; }); // Ok, we choose the second overload because the first one gave us an error when trying to resolve the lambda return type callb(function (a) { a.length; diff --git a/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures.js b/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures.js index 400a052a7bb..f21bc852af8 100644 --- a/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures.js +++ b/tests/baselines/reference/contextualTypingOfLambdaWithMultipleSignatures.js @@ -9,5 +9,4 @@ foo.getFoo = bar => { }; //// [contextualTypingOfLambdaWithMultipleSignatures.js] var foo; -foo.getFoo = function (bar) { -}; +foo.getFoo = function (bar) { }; diff --git a/tests/baselines/reference/contextualTypingOfObjectLiterals.js b/tests/baselines/reference/contextualTypingOfObjectLiterals.js index 2d585284f50..e267ce6269e 100644 --- a/tests/baselines/reference/contextualTypingOfObjectLiterals.js +++ b/tests/baselines/reference/contextualTypingOfObjectLiterals.js @@ -15,8 +15,7 @@ var obj1; var obj2 = { x: "" }; obj1 = {}; // Ok obj1 = obj2; // Error - indexer doesn't match -function f(x) { -} +function f(x) { } f({}); // Ok f(obj1); // Ok f(obj2); // Error - indexer doesn't match diff --git a/tests/baselines/reference/contextualTypingOfObjectLiterals2.js b/tests/baselines/reference/contextualTypingOfObjectLiterals2.js index ce8abe35810..4c450d31152 100644 --- a/tests/baselines/reference/contextualTypingOfObjectLiterals2.js +++ b/tests/baselines/reference/contextualTypingOfObjectLiterals2.js @@ -6,6 +6,5 @@ function f2(args: Foo) { } f2({ foo: s => s.hmm }) // 's' should be 'string', so this should be an error //// [contextualTypingOfObjectLiterals2.js] -function f2(args) { -} +function f2(args) { } f2({ foo: function (s) { return s.hmm; } }); // 's' should be 'string', so this should be an error diff --git a/tests/baselines/reference/convertKeywordsYes.js b/tests/baselines/reference/convertKeywordsYes.js index deae65b54c9..a68f751f434 100644 --- a/tests/baselines/reference/convertKeywordsYes.js +++ b/tests/baselines/reference/convertKeywordsYes.js @@ -325,8 +325,7 @@ var string = 0; var get = 0; var yield = 0; var declare = 0; -function bigGeneric(c, a, b2, i, i2, l, m, n, p, p2, p3, p4, s, s2, s3, g, y, d) { -} +function bigGeneric(c, a, b2, i, i2, l, m, n, p, p2, p3, p4, s, s2, s3, g, y, d) { } var bigObject = { constructor: 0, any: 0, diff --git a/tests/baselines/reference/covariance1.js b/tests/baselines/reference/covariance1.js index 3c3891af882..bed31338cbe 100644 --- a/tests/baselines/reference/covariance1.js +++ b/tests/baselines/reference/covariance1.js @@ -27,8 +27,7 @@ var M; return XX; })(); M.XX = XX; - function f(y) { - } + function f(y) { } M.f = f; var a; f({ x: a }); // ok diff --git a/tests/baselines/reference/declFileAliasUseBeforeDeclaration.js b/tests/baselines/reference/declFileAliasUseBeforeDeclaration.js index 30ba24ed405..7814e9641ba 100644 --- a/tests/baselines/reference/declFileAliasUseBeforeDeclaration.js +++ b/tests/baselines/reference/declFileAliasUseBeforeDeclaration.js @@ -16,8 +16,7 @@ var Foo = (function () { })(); exports.Foo = Foo; //// [declFileAliasUseBeforeDeclaration_test.js] -function bar(a) { -} +function bar(a) { } exports.bar = bar; diff --git a/tests/baselines/reference/declFileForClassWithMultipleBaseClasses.js b/tests/baselines/reference/declFileForClassWithMultipleBaseClasses.js index 52d11836b11..5d7273098f1 100644 --- a/tests/baselines/reference/declFileForClassWithMultipleBaseClasses.js +++ b/tests/baselines/reference/declFileForClassWithMultipleBaseClasses.js @@ -31,28 +31,22 @@ interface I extends A, B { var A = (function () { function A() { } - A.prototype.foo = function () { - }; + A.prototype.foo = function () { }; return A; })(); var B = (function () { function B() { } - B.prototype.bar = function () { - }; + B.prototype.bar = function () { }; return B; })(); var D = (function () { function D() { } - D.prototype.baz = function () { - }; - D.prototype.bat = function () { - }; - D.prototype.foo = function () { - }; - D.prototype.bar = function () { - }; + D.prototype.baz = function () { }; + D.prototype.bat = function () { }; + D.prototype.foo = function () { }; + D.prototype.bar = function () { }; return D; })(); diff --git a/tests/baselines/reference/declFileForClassWithPrivateOverloadedFunction.js b/tests/baselines/reference/declFileForClassWithPrivateOverloadedFunction.js index 545b70f743a..ee2dc8e83bd 100644 --- a/tests/baselines/reference/declFileForClassWithPrivateOverloadedFunction.js +++ b/tests/baselines/reference/declFileForClassWithPrivateOverloadedFunction.js @@ -10,8 +10,7 @@ class C { var C = (function () { function C() { } - C.prototype.foo = function (x) { - }; + C.prototype.foo = function (x) { }; return C; })(); diff --git a/tests/baselines/reference/declFileGenericType.js b/tests/baselines/reference/declFileGenericType.js index 3c8120e8db9..d6d63e3443a 100644 --- a/tests/baselines/reference/declFileGenericType.js +++ b/tests/baselines/reference/declFileGenericType.js @@ -98,8 +98,7 @@ exports.c = C.F2; exports.d = C.F3; exports.e = C.F4; exports.x = (new C.D(new C.A())).val; -function f() { -} +function f() { } exports.f = f; exports.g = C.F5(); var h = (function (_super) { diff --git a/tests/baselines/reference/declFilePrivateStatic.js b/tests/baselines/reference/declFilePrivateStatic.js index 5bec38e4dee..38efa8255a7 100644 --- a/tests/baselines/reference/declFilePrivateStatic.js +++ b/tests/baselines/reference/declFilePrivateStatic.js @@ -18,10 +18,8 @@ class C { var C = (function () { function C() { } - C.a = function () { - }; - C.b = function () { - }; + C.a = function () { }; + C.b = function () { }; Object.defineProperty(C, "c", { get: function () { return 1; @@ -37,14 +35,12 @@ var C = (function () { configurable: true }); Object.defineProperty(C, "e", { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); Object.defineProperty(C, "f", { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/declFileRegressionTests.js b/tests/baselines/reference/declFileRegressionTests.js index f8d0edbe48a..a8bf23a8ea8 100644 --- a/tests/baselines/reference/declFileRegressionTests.js +++ b/tests/baselines/reference/declFileRegressionTests.js @@ -8,8 +8,7 @@ var n = { w: null, x: '', y: () => { }, z: 32 }; //// [declFileRegressionTests.js] // 'null' not converted to 'any' in d.ts // function types not piped through correctly -var n = { w: null, x: '', y: function () { -}, z: 32 }; +var n = { w: null, x: '', y: function () { }, z: 32 }; //// [declFileRegressionTests.d.ts] diff --git a/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.js b/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.js index 2d071c80de9..3cea09c8c26 100644 --- a/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.js +++ b/tests/baselines/reference/declFileRestParametersOfFunctionAndFunctionType.js @@ -11,20 +11,11 @@ var f6 = () => { return [10]; } //// [declFileRestParametersOfFunctionAndFunctionType.js] -function f1() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i - 0] = arguments[_i]; - } -} -function f2(x) { -} -function f3(x) { -} -function f4() { -} -function f5() { -} +function f1() { } +function f2(x) { } +function f3(x) { } +function f4() { } +function f5() { } var f6 = function () { return [10]; }; diff --git a/tests/baselines/reference/declInput-2.js b/tests/baselines/reference/declInput-2.js index 3ba5ae11bf6..30a306c09f8 100644 --- a/tests/baselines/reference/declInput-2.js +++ b/tests/baselines/reference/declInput-2.js @@ -47,10 +47,8 @@ var M; D.prototype.m252 = function () { return null; }; // don't generate - D.prototype.m26 = function (i) { - }; - D.prototype.m262 = function (i) { - }; + D.prototype.m26 = function (i) { }; + D.prototype.m262 = function (i) { }; D.prototype.m3 = function () { return new C(); }; diff --git a/tests/baselines/reference/declInput4.js b/tests/baselines/reference/declInput4.js index 18025c808fa..cce9127eddc 100644 --- a/tests/baselines/reference/declInput4.js +++ b/tests/baselines/reference/declInput4.js @@ -38,8 +38,7 @@ var M; D.prototype.m242 = function () { return null; }; - D.prototype.m26 = function (i) { - }; + D.prototype.m26 = function (i) { }; return D; })(); M.D = D; diff --git a/tests/baselines/reference/declarationEmit_nameConflicts.js b/tests/baselines/reference/declarationEmit_nameConflicts.js index 161224659f1..ae517bb7460 100644 --- a/tests/baselines/reference/declarationEmit_nameConflicts.js +++ b/tests/baselines/reference/declarationEmit_nameConflicts.js @@ -64,8 +64,7 @@ module.exports = f; var im = require('declarationEmit_nameConflicts_1'); var M; (function (M) { - function f() { - } + function f() { } M.f = f; var C = (function () { function C() { @@ -75,8 +74,7 @@ var M; M.C = C; var N; (function (N) { - function g() { - } + function g() { } N.g = g; ; })(N = M.N || (M.N = {})); @@ -89,8 +87,7 @@ var M; (function (M) { var P; (function (P) { - function f() { - } + function f() { } P.f = f; var C = (function () { function C() { @@ -100,8 +97,7 @@ var M; P.C = C; var N; (function (N) { - function g() { - } + function g() { } N.g = g; ; })(N = P.N || (P.N = {})); @@ -117,8 +113,7 @@ var M; (function (M) { var Q; (function (Q) { - function f() { - } + function f() { } Q.f = f; var C = (function () { function C() { @@ -128,8 +123,7 @@ var M; Q.C = C; var N; (function (N) { - function g() { - } + function g() { } N.g = g; ; })(N = Q.N || (Q.N = {})); diff --git a/tests/baselines/reference/declarationEmit_nameConflicts2.js b/tests/baselines/reference/declarationEmit_nameConflicts2.js index 43167f531d7..2a228080c68 100644 --- a/tests/baselines/reference/declarationEmit_nameConflicts2.js +++ b/tests/baselines/reference/declarationEmit_nameConflicts2.js @@ -22,8 +22,7 @@ var X; (function (Y) { var base; (function (base) { - function f() { - } + function f() { } base.f = f; var C = (function () { function C() { diff --git a/tests/baselines/reference/declarationEmit_nameConflicts3.js b/tests/baselines/reference/declarationEmit_nameConflicts3.js index 848343362bc..0d68c38cfda 100644 --- a/tests/baselines/reference/declarationEmit_nameConflicts3.js +++ b/tests/baselines/reference/declarationEmit_nameConflicts3.js @@ -37,20 +37,17 @@ var M; (function (M) { var D; (function (D) { - function f() { - } + function f() { } D.f = f; })(D = M.D || (M.D = {})); var C; (function (C) { - function f() { - } + function f() { } C.f = f; })(C = M.C || (M.C = {})); var E; (function (E) { - function f() { - } + function f() { } E.f = f; })(E = M.E || (M.E = {})); })(M || (M = {})); @@ -61,8 +58,7 @@ var M; var C = (function () { function C() { } - C.f = function () { - }; + C.f = function () { }; return C; })(); P.C = C; diff --git a/tests/baselines/reference/declarationEmit_protectedMembers.js b/tests/baselines/reference/declarationEmit_protectedMembers.js index dc8506b220b..ff4323ce542 100644 --- a/tests/baselines/reference/declarationEmit_protectedMembers.js +++ b/tests/baselines/reference/declarationEmit_protectedMembers.js @@ -68,8 +68,7 @@ var C1 = (function () { get: function () { return 0; }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); @@ -77,8 +76,7 @@ var C1 = (function () { return this.sx; }; Object.defineProperty(C1, "staticSetter", { - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.js b/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.js index 6006f1bcf26..8e4f927a920 100644 --- a/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.js +++ b/tests/baselines/reference/decrementOperatorWithAnyOtherTypeInvalidOperations.js @@ -77,8 +77,7 @@ ANY2--; var ANY1; var ANY2 = ["", ""]; var obj; -var obj1 = { x: "", y: function () { -} }; +var obj1 = { x: "", y: function () { } }; function foo() { var a; return a; diff --git a/tests/baselines/reference/defaultArgsInFunctionExpressions.js b/tests/baselines/reference/defaultArgsInFunctionExpressions.js index 3f77c4430e8..b0c1fe5824a 100644 --- a/tests/baselines/reference/defaultArgsInFunctionExpressions.js +++ b/tests/baselines/reference/defaultArgsInFunctionExpressions.js @@ -49,24 +49,16 @@ s = f2(''); s = f2(); n = f2(); // Contextually type the default arg with the type annotation -var f3 = function (a) { - if (a === void 0) { a = function (s) { return s; }; } -}; +var f3 = function (a) { }; // Type check using the function's contextual type -var f4 = function (a) { - if (a === void 0) { a = ""; } -}; +var f4 = function (a) { }; // Contextually type the default arg using the function's contextual type -var f5 = function (a) { - if (a === void 0) { a = function (s) { return s; }; } -}; +var f5 = function (a) { }; var U; (function (U) { U.x; })(U || (U = {})); -var f6 = function (t) { - if (t === void 0) { t = T; } -}; +var f6 = function (t) { }; var f7 = function (t) { if (t === void 0) { t = U; } return t; diff --git a/tests/baselines/reference/defaultArgsInOverloads.js b/tests/baselines/reference/defaultArgsInOverloads.js index defc4f3e223..9bcb24ff653 100644 --- a/tests/baselines/reference/defaultArgsInOverloads.js +++ b/tests/baselines/reference/defaultArgsInOverloads.js @@ -20,18 +20,12 @@ interface I { var f: (a = 3) => number; //// [defaultArgsInOverloads.js] -function fun(a) { - if (a === void 0) { a = null; } -} +function fun(a) { } var C = (function () { function C() { } - C.prototype.fun = function (a) { - if (a === void 0) { a = null; } - }; - C.fun = function (a) { - if (a === void 0) { a = null; } - }; + C.prototype.fun = function (a) { }; + C.fun = function (a) { }; return C; })(); var f; diff --git a/tests/baselines/reference/defaultValueInFunctionOverload1.js b/tests/baselines/reference/defaultValueInFunctionOverload1.js index 0f33fe9ff2e..15aa9f22b48 100644 --- a/tests/baselines/reference/defaultValueInFunctionOverload1.js +++ b/tests/baselines/reference/defaultValueInFunctionOverload1.js @@ -3,6 +3,4 @@ function foo(x: string = ''); function foo(x = '') { } //// [defaultValueInFunctionOverload1.js] -function foo(x) { - if (x === void 0) { x = ''; } -} +function foo(x) { } diff --git a/tests/baselines/reference/deleteOperatorWithAnyOtherType.js b/tests/baselines/reference/deleteOperatorWithAnyOtherType.js index c8a84ac83ea..e2a2be4d9aa 100644 --- a/tests/baselines/reference/deleteOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/deleteOperatorWithAnyOtherType.js @@ -67,8 +67,7 @@ var ANY; var ANY1; var ANY2 = ["", ""]; var obj; -var obj1 = { x: "", y: function () { -} }; +var obj1 = { x: "", y: function () { } }; function foo() { var a; return a; diff --git a/tests/baselines/reference/derivedClassIncludesInheritedMembers.js b/tests/baselines/reference/derivedClassIncludesInheritedMembers.js index db54affa6d9..bdfa31cb04f 100644 --- a/tests/baselines/reference/derivedClassIncludesInheritedMembers.js +++ b/tests/baselines/reference/derivedClassIncludesInheritedMembers.js @@ -50,25 +50,21 @@ var __extends = this.__extends || function (d, b) { var Base = (function () { function Base(x) { } - Base.prototype.b = function () { - }; + Base.prototype.b = function () { }; Object.defineProperty(Base.prototype, "c", { get: function () { return ''; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); - Base.s = function () { - }; + Base.s = function () { }; Object.defineProperty(Base, "t", { get: function () { return ''; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/derivedClassOverridesProtectedMembers.js b/tests/baselines/reference/derivedClassOverridesProtectedMembers.js index 8c8b6a13c7e..af725e9b7bd 100644 --- a/tests/baselines/reference/derivedClassOverridesProtectedMembers.js +++ b/tests/baselines/reference/derivedClassOverridesProtectedMembers.js @@ -48,25 +48,21 @@ var y; var Base = (function () { function Base(a) { } - Base.prototype.b = function (a) { - }; + Base.prototype.b = function (a) { }; Object.defineProperty(Base.prototype, "c", { get: function () { return x; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); - Base.s = function (a) { - }; + Base.s = function (a) { }; Object.defineProperty(Base, "t", { get: function () { return x; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -77,25 +73,21 @@ var Derived = (function (_super) { function Derived(a) { _super.call(this, x); } - Derived.prototype.b = function (a) { - }; + Derived.prototype.b = function (a) { }; Object.defineProperty(Derived.prototype, "c", { get: function () { return y; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); - Derived.s = function (a) { - }; + Derived.s = function (a) { }; Object.defineProperty(Derived, "t", { get: function () { return y; }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/derivedClassOverridesProtectedMembers2.js b/tests/baselines/reference/derivedClassOverridesProtectedMembers2.js index 55bfd0e924d..b1f5de00fb5 100644 --- a/tests/baselines/reference/derivedClassOverridesProtectedMembers2.js +++ b/tests/baselines/reference/derivedClassOverridesProtectedMembers2.js @@ -75,25 +75,21 @@ var y; var Base = (function () { function Base(a) { } - Base.prototype.b = function (a) { - }; + Base.prototype.b = function (a) { }; Object.defineProperty(Base.prototype, "c", { get: function () { return x; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); - Base.s = function (a) { - }; + Base.s = function (a) { }; Object.defineProperty(Base, "t", { get: function () { return x; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -105,25 +101,21 @@ var Derived = (function (_super) { function Derived(a) { _super.call(this, a); } - Derived.prototype.b = function (a) { - }; + Derived.prototype.b = function (a) { }; Object.defineProperty(Derived.prototype, "c", { get: function () { return y; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); - Derived.s = function (a) { - }; + Derived.s = function (a) { }; Object.defineProperty(Derived, "t", { get: function () { return y; }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/derivedClassOverridesProtectedMembers3.js b/tests/baselines/reference/derivedClassOverridesProtectedMembers3.js index 0a228a04f71..d6b93addbd3 100644 --- a/tests/baselines/reference/derivedClassOverridesProtectedMembers3.js +++ b/tests/baselines/reference/derivedClassOverridesProtectedMembers3.js @@ -83,25 +83,21 @@ var y; var Base = (function () { function Base(a) { } - Base.prototype.b = function (a) { - }; + Base.prototype.b = function (a) { }; Object.defineProperty(Base.prototype, "c", { get: function () { return x; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); - Base.s = function (a) { - }; + Base.s = function (a) { }; Object.defineProperty(Base, "t", { get: function () { return x; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -121,8 +117,7 @@ var Derived2 = (function (_super) { function Derived2(a) { _super.call(this, a); } - Derived2.prototype.b = function (a) { - }; + Derived2.prototype.b = function (a) { }; return Derived2; })(Base); var Derived3 = (function (_super) { @@ -145,8 +140,7 @@ var Derived4 = (function (_super) { _super.call(this, a); } Object.defineProperty(Derived4.prototype, "c", { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -171,8 +165,7 @@ var Derived7 = (function (_super) { function Derived7(a) { _super.call(this, a); } - Derived7.s = function (a) { - }; + Derived7.s = function (a) { }; return Derived7; })(Base); var Derived8 = (function (_super) { @@ -195,8 +188,7 @@ var Derived9 = (function (_super) { _super.call(this, a); } Object.defineProperty(Derived9, "t", { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/derivedClassOverridesPublicMembers.js b/tests/baselines/reference/derivedClassOverridesPublicMembers.js index f673d9ab856..a1df28586d9 100644 --- a/tests/baselines/reference/derivedClassOverridesPublicMembers.js +++ b/tests/baselines/reference/derivedClassOverridesPublicMembers.js @@ -74,25 +74,21 @@ var y; var Base = (function () { function Base(a) { } - Base.prototype.b = function (a) { - }; + Base.prototype.b = function (a) { }; Object.defineProperty(Base.prototype, "c", { get: function () { return x; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); - Base.s = function (a) { - }; + Base.s = function (a) { }; Object.defineProperty(Base, "t", { get: function () { return x; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -103,25 +99,21 @@ var Derived = (function (_super) { function Derived(a) { _super.call(this, x); } - Derived.prototype.b = function (a) { - }; + Derived.prototype.b = function (a) { }; Object.defineProperty(Derived.prototype, "c", { get: function () { return y; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); - Derived.s = function (a) { - }; + Derived.s = function (a) { }; Object.defineProperty(Derived, "t", { get: function () { return y; }, - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/derivedClassTransitivity.js b/tests/baselines/reference/derivedClassTransitivity.js index 53749861549..2088fc1122b 100644 --- a/tests/baselines/reference/derivedClassTransitivity.js +++ b/tests/baselines/reference/derivedClassTransitivity.js @@ -31,8 +31,7 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C() { } - C.prototype.foo = function (x) { - }; + C.prototype.foo = function (x) { }; return C; })(); var D = (function (_super) { @@ -40,8 +39,7 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } - D.prototype.foo = function () { - }; // ok to drop parameters + D.prototype.foo = function () { }; // ok to drop parameters return D; })(C); var E = (function (_super) { @@ -49,8 +47,7 @@ var E = (function (_super) { function E() { _super.apply(this, arguments); } - E.prototype.foo = function (x) { - }; // ok to add optional parameters + E.prototype.foo = function (x) { }; // ok to add optional parameters return E; })(D); var c; diff --git a/tests/baselines/reference/derivedClassTransitivity2.js b/tests/baselines/reference/derivedClassTransitivity2.js index 1b4bd58923c..458aede164c 100644 --- a/tests/baselines/reference/derivedClassTransitivity2.js +++ b/tests/baselines/reference/derivedClassTransitivity2.js @@ -31,8 +31,7 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C() { } - C.prototype.foo = function (x, y) { - }; + C.prototype.foo = function (x, y) { }; return C; })(); var D = (function (_super) { @@ -40,8 +39,7 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } - D.prototype.foo = function (x) { - }; // ok to drop parameters + D.prototype.foo = function (x) { }; // ok to drop parameters return D; })(C); var E = (function (_super) { @@ -49,8 +47,7 @@ var E = (function (_super) { function E() { _super.apply(this, arguments); } - E.prototype.foo = function (x, y) { - }; // ok to add optional parameters + E.prototype.foo = function (x, y) { }; // ok to add optional parameters return E; })(D); var c; diff --git a/tests/baselines/reference/derivedClassTransitivity3.js b/tests/baselines/reference/derivedClassTransitivity3.js index 3e548f5276e..9768a8f5fa3 100644 --- a/tests/baselines/reference/derivedClassTransitivity3.js +++ b/tests/baselines/reference/derivedClassTransitivity3.js @@ -31,8 +31,7 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C() { } - C.prototype.foo = function (x, y) { - }; + C.prototype.foo = function (x, y) { }; return C; })(); var D = (function (_super) { @@ -40,8 +39,7 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } - D.prototype.foo = function (x) { - }; // ok to drop parameters + D.prototype.foo = function (x) { }; // ok to drop parameters return D; })(C); var E = (function (_super) { @@ -49,8 +47,7 @@ var E = (function (_super) { function E() { _super.apply(this, arguments); } - E.prototype.foo = function (x, y) { - }; // ok to add optional parameters + E.prototype.foo = function (x, y) { }; // ok to add optional parameters return E; })(D); var c; diff --git a/tests/baselines/reference/derivedClassTransitivity4.js b/tests/baselines/reference/derivedClassTransitivity4.js index 5249c6aad2e..abf1a3b5bd0 100644 --- a/tests/baselines/reference/derivedClassTransitivity4.js +++ b/tests/baselines/reference/derivedClassTransitivity4.js @@ -31,8 +31,7 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C() { } - C.prototype.foo = function (x) { - }; + C.prototype.foo = function (x) { }; return C; })(); var D = (function (_super) { @@ -40,8 +39,7 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } - D.prototype.foo = function () { - }; // ok to drop parameters + D.prototype.foo = function () { }; // ok to drop parameters return D; })(C); var E = (function (_super) { @@ -49,8 +47,7 @@ var E = (function (_super) { function E() { _super.apply(this, arguments); } - E.prototype.foo = function (x) { - }; // ok to add optional parameters + E.prototype.foo = function (x) { }; // ok to add optional parameters return E; })(D); var c; diff --git a/tests/baselines/reference/derivedClassWithPrivateInstanceShadowingProtectedInstance.js b/tests/baselines/reference/derivedClassWithPrivateInstanceShadowingProtectedInstance.js index f802a225088..63c33f87836 100644 --- a/tests/baselines/reference/derivedClassWithPrivateInstanceShadowingProtectedInstance.js +++ b/tests/baselines/reference/derivedClassWithPrivateInstanceShadowingProtectedInstance.js @@ -39,8 +39,7 @@ var Base = (function () { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -59,8 +58,7 @@ var Derived = (function (_super) { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/derivedClassWithPrivateInstanceShadowingPublicInstance.js b/tests/baselines/reference/derivedClassWithPrivateInstanceShadowingPublicInstance.js index fb0dee3e57b..692ae1569ec 100644 --- a/tests/baselines/reference/derivedClassWithPrivateInstanceShadowingPublicInstance.js +++ b/tests/baselines/reference/derivedClassWithPrivateInstanceShadowingPublicInstance.js @@ -49,8 +49,7 @@ var Base = (function () { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -69,8 +68,7 @@ var Derived = (function (_super) { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/derivedClassWithPrivateStaticShadowingProtectedStatic.js b/tests/baselines/reference/derivedClassWithPrivateStaticShadowingProtectedStatic.js index 558e2309757..56ce444de0b 100644 --- a/tests/baselines/reference/derivedClassWithPrivateStaticShadowingProtectedStatic.js +++ b/tests/baselines/reference/derivedClassWithPrivateStaticShadowingProtectedStatic.js @@ -38,8 +38,7 @@ var Base = (function () { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -58,8 +57,7 @@ var Derived = (function (_super) { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/derivedClassWithPrivateStaticShadowingPublicStatic.js b/tests/baselines/reference/derivedClassWithPrivateStaticShadowingPublicStatic.js index b2468f62d81..7ae518eeedf 100644 --- a/tests/baselines/reference/derivedClassWithPrivateStaticShadowingPublicStatic.js +++ b/tests/baselines/reference/derivedClassWithPrivateStaticShadowingPublicStatic.js @@ -50,8 +50,7 @@ var Base = (function () { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -71,8 +70,7 @@ var Derived = (function (_super) { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/doWhileBreakStatements.js b/tests/baselines/reference/doWhileBreakStatements.js index 9162c629898..a2bc0d3c549 100644 --- a/tests/baselines/reference/doWhileBreakStatements.js +++ b/tests/baselines/reference/doWhileBreakStatements.js @@ -66,7 +66,6 @@ SEVEN: do while (true); while (true); EIGHT: do { - var fn = function () { - }; + var fn = function () { }; break EIGHT; } while (true); diff --git a/tests/baselines/reference/doWhileContinueStatements.js b/tests/baselines/reference/doWhileContinueStatements.js index a39495e162e..7f73157fd99 100644 --- a/tests/baselines/reference/doWhileContinueStatements.js +++ b/tests/baselines/reference/doWhileContinueStatements.js @@ -66,7 +66,6 @@ SEVEN: do while (true); while (true); EIGHT: do { - var fn = function () { - }; + var fn = function () { }; continue EIGHT; } while (true); diff --git a/tests/baselines/reference/doWhileLoop.js b/tests/baselines/reference/doWhileLoop.js index 0c1abd7aed9..6581bba09e1 100644 --- a/tests/baselines/reference/doWhileLoop.js +++ b/tests/baselines/reference/doWhileLoop.js @@ -3,6 +3,5 @@ do { } while (false); var n; //// [doWhileLoop.js] -do { -} while (false); +do { } while (false); var n; diff --git a/tests/baselines/reference/dottedSymbolResolution1.js b/tests/baselines/reference/dottedSymbolResolution1.js index d5bdb6006d5..a0ac7a38b88 100644 --- a/tests/baselines/reference/dottedSymbolResolution1.js +++ b/tests/baselines/reference/dottedSymbolResolution1.js @@ -29,8 +29,7 @@ function _setBarAndText(): void { var Base = (function () { function Base() { } - Base.prototype.foo = function () { - }; + Base.prototype.foo = function () { }; return Base; })(); function each(collection, callback) { diff --git a/tests/baselines/reference/duplicateIdentifierInCatchBlock.js b/tests/baselines/reference/duplicateIdentifierInCatchBlock.js index 6d43b888f48..e440c06073a 100644 --- a/tests/baselines/reference/duplicateIdentifierInCatchBlock.js +++ b/tests/baselines/reference/duplicateIdentifierInCatchBlock.js @@ -19,27 +19,20 @@ try { } catch (e) { //// [duplicateIdentifierInCatchBlock.js] var v; -try { -} +try { } catch (e) { - function v() { - } -} -function w() { -} -try { + function v() { } } +function w() { } +try { } catch (e) { var w; } -try { -} +try { } catch (e) { var x; - function x() { - } // error - function e() { - } // error + function x() { } // error + function e() { } // error var p; var p; // error } diff --git a/tests/baselines/reference/duplicateIdentifiersAcrossContainerBoundaries.js b/tests/baselines/reference/duplicateIdentifiersAcrossContainerBoundaries.js index 018d148f9c3..6a567018d1f 100644 --- a/tests/baselines/reference/duplicateIdentifiersAcrossContainerBoundaries.js +++ b/tests/baselines/reference/duplicateIdentifiersAcrossContainerBoundaries.js @@ -64,8 +64,7 @@ var M; })(M || (M = {})); var M; (function (M) { - function f() { - } + function f() { } M.f = f; })(M || (M = {})); var M; @@ -79,8 +78,7 @@ var M; })(M || (M = {})); var M; (function (M) { - function g() { - } + function g() { } })(M || (M = {})); var M; (function (M) { @@ -102,8 +100,7 @@ var M; })(M || (M = {})); var M; (function (M) { - function C() { - } // no error + function C() { } // no error })(M || (M = {})); var M; (function (M) { diff --git a/tests/baselines/reference/duplicateObjectLiteralProperty.js b/tests/baselines/reference/duplicateObjectLiteralProperty.js index 5bbeb433a0c..5fd2d1177f8 100644 --- a/tests/baselines/reference/duplicateObjectLiteralProperty.js +++ b/tests/baselines/reference/duplicateObjectLiteralProperty.js @@ -33,8 +33,7 @@ var y = { get a() { return 0; }, - set a(v) { - }, + set a(v) { }, get a() { return 0; } diff --git a/tests/baselines/reference/duplicatePropertyNames.js b/tests/baselines/reference/duplicatePropertyNames.js index c5da2a1f39f..c3cde82e2cc 100644 --- a/tests/baselines/reference/duplicatePropertyNames.js +++ b/tests/baselines/reference/duplicatePropertyNames.js @@ -52,23 +52,17 @@ var b = { // duplicate property names are an error in all types var C = (function () { function C() { - this.baz = function () { - }; - this.baz = function () { - }; + this.baz = function () { }; + this.baz = function () { }; } - C.prototype.bar = function (x) { - }; - C.prototype.bar = function (x) { - }; + C.prototype.bar = function (x) { }; + C.prototype.bar = function (x) { }; return C; })(); var a; var b = { foo: '', foo: '', - bar: function () { - }, - bar: function () { - } + bar: function () { }, + bar: function () { } }; diff --git a/tests/baselines/reference/duplicateSymbolsExportMatching.js b/tests/baselines/reference/duplicateSymbolsExportMatching.js index e34ed7c8d02..89b5a210ec4 100644 --- a/tests/baselines/reference/duplicateSymbolsExportMatching.js +++ b/tests/baselines/reference/duplicateSymbolsExportMatching.js @@ -93,8 +93,7 @@ define(["require", "exports"], function (require, exports) { (function (F) { var t; })(F || (F = {})); - function F() { - } + function F() { } M.F = F; // Only one error for duplicate identifier (don't consider visibility) })(M || (M = {})); var M; diff --git a/tests/baselines/reference/duplicateTypeParameters1.js b/tests/baselines/reference/duplicateTypeParameters1.js index 167688719ab..990048a25d7 100644 --- a/tests/baselines/reference/duplicateTypeParameters1.js +++ b/tests/baselines/reference/duplicateTypeParameters1.js @@ -3,5 +3,4 @@ function A() { } //// [duplicateTypeParameters1.js] -function A() { -} +function A() { } diff --git a/tests/baselines/reference/duplicateTypeParameters2.js b/tests/baselines/reference/duplicateTypeParameters2.js index c89f0d15fe3..65dce28ad3f 100644 --- a/tests/baselines/reference/duplicateTypeParameters2.js +++ b/tests/baselines/reference/duplicateTypeParameters2.js @@ -8,14 +8,12 @@ interface I {} var A = (function () { function A() { } - A.prototype.foo = function () { - }; + A.prototype.foo = function () { }; return A; })(); var B = (function () { function B() { } - B.prototype.bar = function () { - }; + B.prototype.bar = function () { }; return B; })(); diff --git a/tests/baselines/reference/elaboratedErrors.js b/tests/baselines/reference/elaboratedErrors.js index c245c1a8562..ae5877b2dd6 100644 --- a/tests/baselines/reference/elaboratedErrors.js +++ b/tests/baselines/reference/elaboratedErrors.js @@ -27,8 +27,7 @@ y = x; //// [elaboratedErrors.js] -function fn(s) { -} +function fn(s) { } // This should issue a large error, not a small one var WorkerFS = (function () { function WorkerFS() { diff --git a/tests/baselines/reference/emitArrowFunction.js b/tests/baselines/reference/emitArrowFunction.js index 1c00a7579b6..41c52cbfefc 100644 --- a/tests/baselines/reference/emitArrowFunction.js +++ b/tests/baselines/reference/emitArrowFunction.js @@ -8,21 +8,11 @@ foo(() => true); foo(() => { return false; }); //// [emitArrowFunction.js] -var f1 = function () { -}; -var f2 = function (x, y) { -}; -var f3 = function (x, y) { - var rest = []; - for (var _i = 2; _i < arguments.length; _i++) { - rest[_i - 2] = arguments[_i]; - } -}; -var f4 = function (x, y, z) { - if (z === void 0) { z = 10; } -}; -function foo(func) { -} +var f1 = function () { }; +var f2 = function (x, y) { }; +var f3 = function (x, y) { }; +var f4 = function (x, y, z) { }; +function foo(func) { } foo(function () { return true; }); foo(function () { return false; diff --git a/tests/baselines/reference/emitArrowFunctionAsIs.js b/tests/baselines/reference/emitArrowFunctionAsIs.js index 11df7903ad8..c6586ee95a1 100644 --- a/tests/baselines/reference/emitArrowFunctionAsIs.js +++ b/tests/baselines/reference/emitArrowFunctionAsIs.js @@ -5,9 +5,6 @@ var arrow2 = (a) => { }; var arrow3 = (a, b) => { }; //// [emitArrowFunctionAsIs.js] -var arrow1 = function (a) { -}; -var arrow2 = function (a) { -}; -var arrow3 = function (a, b) { -}; +var arrow1 = function (a) { }; +var arrow2 = function (a) { }; +var arrow3 = function (a, b) { }; diff --git a/tests/baselines/reference/emitArrowFunctionAsIsES6.js b/tests/baselines/reference/emitArrowFunctionAsIsES6.js index 9941434ae10..9876abdafcd 100644 --- a/tests/baselines/reference/emitArrowFunctionAsIsES6.js +++ b/tests/baselines/reference/emitArrowFunctionAsIsES6.js @@ -5,9 +5,6 @@ var arrow2 = (a) => { }; var arrow3 = (a, b) => { }; //// [emitArrowFunctionAsIsES6.js] -var arrow1 = a => { -}; -var arrow2 = (a) => { -}; -var arrow3 = (a, b) => { -}; +var arrow1 = a => { }; +var arrow2 = (a) => { }; +var arrow3 = (a, b) => { }; diff --git a/tests/baselines/reference/emitArrowFunctionES6.js b/tests/baselines/reference/emitArrowFunctionES6.js index c518a52f629..39d69cc1f0e 100644 --- a/tests/baselines/reference/emitArrowFunctionES6.js +++ b/tests/baselines/reference/emitArrowFunctionES6.js @@ -9,16 +9,11 @@ foo(() => { return false; }); //// [emitArrowFunctionES6.js] -var f1 = () => { -}; -var f2 = (x, y) => { -}; -var f3 = (x, y, ...rest) => { -}; -var f4 = (x, y, z = 10) => { -}; -function foo(func) { -} +var f1 = () => { }; +var f2 = (x, y) => { }; +var f3 = (x, y, ...rest) => { }; +var f4 = (x, y, z = 10) => { }; +function foo(func) { } foo(() => { return true; }); foo(() => { return false; diff --git a/tests/baselines/reference/emitArrowFunctionThisCapturing.js b/tests/baselines/reference/emitArrowFunctionThisCapturing.js index 25d9f7f100b..ac4326ea508 100644 --- a/tests/baselines/reference/emitArrowFunctionThisCapturing.js +++ b/tests/baselines/reference/emitArrowFunctionThisCapturing.js @@ -22,8 +22,7 @@ var f1 = function () { var f2 = function (x) { _this.name = x; }; -function foo(func) { -} +function foo(func) { } foo(function () { _this.age = 100; return true; diff --git a/tests/baselines/reference/emitArrowFunctionThisCapturingES6.js b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.js index bf235bc0eef..2a82ef9c800 100644 --- a/tests/baselines/reference/emitArrowFunctionThisCapturingES6.js +++ b/tests/baselines/reference/emitArrowFunctionThisCapturingES6.js @@ -21,8 +21,7 @@ var f1 = () => { var f2 = (x) => { this.name = x; }; -function foo(func) { -} +function foo(func) { } foo(() => { this.age = 100; return true; diff --git a/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.js b/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.js index 00a4c7aa051..589449fad62 100644 --- a/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.js +++ b/tests/baselines/reference/emitArrowFunctionWhenUsingArguments.js @@ -45,8 +45,7 @@ function baz() { var arg = arguments[0]; }); } -function foo(inputFunc) { -} +function foo(inputFunc) { } foo(() => { var arg = arguments[0]; // error }); diff --git a/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.js b/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.js index 0deacd409df..2f84d0843de 100644 --- a/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.js +++ b/tests/baselines/reference/emitArrowFunctionWhenUsingArgumentsES6.js @@ -45,8 +45,7 @@ function baz() { var arg = arguments[0]; }); } -function foo(inputFunc) { -} +function foo(inputFunc) { } foo(() => { var arg = arguments[0]; // error }); diff --git a/tests/baselines/reference/emitArrowFunctionsAsIs.js b/tests/baselines/reference/emitArrowFunctionsAsIs.js index ee8347dda3e..cf773efb8b7 100644 --- a/tests/baselines/reference/emitArrowFunctionsAsIs.js +++ b/tests/baselines/reference/emitArrowFunctionsAsIs.js @@ -5,9 +5,6 @@ var arrow2 = (a) => { }; var arrow3 = (a, b) => { }; //// [emitArrowFunctionsAsIs.js] -var arrow1 = function (a) { -}; -var arrow2 = function (a) { -}; -var arrow3 = function (a, b) { -}; +var arrow1 = function (a) { }; +var arrow2 = function (a) { }; +var arrow3 = function (a, b) { }; diff --git a/tests/baselines/reference/emitArrowFunctionsAsIsES6.js b/tests/baselines/reference/emitArrowFunctionsAsIsES6.js index 021e048ed88..32323a6597b 100644 --- a/tests/baselines/reference/emitArrowFunctionsAsIsES6.js +++ b/tests/baselines/reference/emitArrowFunctionsAsIsES6.js @@ -5,9 +5,6 @@ var arrow2 = (a) => { }; var arrow3 = (a, b) => { }; //// [emitArrowFunctionsAsIsES6.js] -var arrow1 = a => { -}; -var arrow2 = (a) => { -}; -var arrow3 = (a, b) => { -}; +var arrow1 = a => { }; +var arrow2 = (a) => { }; +var arrow3 = (a, b) => { }; diff --git a/tests/baselines/reference/emitDefaultParametersFunction.js b/tests/baselines/reference/emitDefaultParametersFunction.js index 6be7ae9dbfe..5808de5a5db 100644 --- a/tests/baselines/reference/emitDefaultParametersFunction.js +++ b/tests/baselines/reference/emitDefaultParametersFunction.js @@ -5,23 +5,7 @@ function bar(y = 10) { } function bar1(y = 10, ...rest) { } //// [emitDefaultParametersFunction.js] -function foo(x, y) { - if (y === void 0) { y = 10; } -} -function baz(x, y) { - if (y === void 0) { y = 5; } - var rest = []; - for (var _i = 2; _i < arguments.length; _i++) { - rest[_i - 2] = arguments[_i]; - } -} -function bar(y) { - if (y === void 0) { y = 10; } -} -function bar1(y) { - if (y === void 0) { y = 10; } - var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; - } -} +function foo(x, y) { } +function baz(x, y) { } +function bar(y) { } +function bar1(y) { } diff --git a/tests/baselines/reference/emitDefaultParametersFunctionES6.js b/tests/baselines/reference/emitDefaultParametersFunctionES6.js index f4084a16f6f..0d1c9460fed 100644 --- a/tests/baselines/reference/emitDefaultParametersFunctionES6.js +++ b/tests/baselines/reference/emitDefaultParametersFunctionES6.js @@ -5,11 +5,7 @@ function bar(y = 10) { } function bar1(y = 10, ...rest) { } //// [emitDefaultParametersFunctionES6.js] -function foo(x, y = 10) { -} -function baz(x, y = 5, ...rest) { -} -function bar(y = 10) { -} -function bar1(y = 10, ...rest) { -} +function foo(x, y = 10) { } +function baz(x, y = 5, ...rest) { } +function bar(y = 10) { } +function bar1(y = 10, ...rest) { } diff --git a/tests/baselines/reference/emitDefaultParametersFunctionExpression.js b/tests/baselines/reference/emitDefaultParametersFunctionExpression.js index bcfe5b240f2..5fc2d0794e6 100644 --- a/tests/baselines/reference/emitDefaultParametersFunctionExpression.js +++ b/tests/baselines/reference/emitDefaultParametersFunctionExpression.js @@ -10,45 +10,10 @@ var z = (function (num: number, boo = false, ...rest) { })(10) //// [emitDefaultParametersFunctionExpression.js] -var lambda1 = function (y) { - if (y === void 0) { y = "hello"; } -}; -var lambda2 = function (x, y) { - if (y === void 0) { y = "hello"; } -}; -var lambda3 = function (x, y) { - if (y === void 0) { y = "hello"; } - var rest = []; - for (var _i = 2; _i < arguments.length; _i++) { - rest[_i - 2] = arguments[_i]; - } -}; -var lambda4 = function (y) { - if (y === void 0) { y = "hello"; } - var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; - } -}; -var x = function (str) { - if (str === void 0) { str = "hello"; } - var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; - } -}; -var y = (function (num, boo) { - if (num === void 0) { num = 10; } - if (boo === void 0) { boo = false; } - var rest = []; - for (var _i = 2; _i < arguments.length; _i++) { - rest[_i - 2] = arguments[_i]; - } -})(); -var z = (function (num, boo) { - if (boo === void 0) { boo = false; } - var rest = []; - for (var _i = 2; _i < arguments.length; _i++) { - rest[_i - 2] = arguments[_i]; - } -})(10); +var lambda1 = function (y) { }; +var lambda2 = function (x, y) { }; +var lambda3 = function (x, y) { }; +var lambda4 = function (y) { }; +var x = function (str) { }; +var y = (function (num, boo) { })(); +var z = (function (num, boo) { })(10); diff --git a/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js index 5a49a200c6b..f72c245b175 100644 --- a/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js +++ b/tests/baselines/reference/emitDefaultParametersFunctionExpressionES6.js @@ -9,17 +9,10 @@ var y = (function (num = 10, boo = false, ...rest) { })() var z = (function (num: number, boo = false, ...rest) { })(10) //// [emitDefaultParametersFunctionExpressionES6.js] -var lambda1 = (y = "hello") => { -}; -var lambda2 = (x, y = "hello") => { -}; -var lambda3 = (x, y = "hello", ...rest) => { -}; -var lambda4 = (y = "hello", ...rest) => { -}; -var x = function (str = "hello", ...rest) { -}; -var y = (function (num = 10, boo = false, ...rest) { -})(); -var z = (function (num, boo = false, ...rest) { -})(10); +var lambda1 = (y = "hello") => { }; +var lambda2 = (x, y = "hello") => { }; +var lambda3 = (x, y = "hello", ...rest) => { }; +var lambda4 = (y = "hello", ...rest) => { }; +var x = function (str = "hello", ...rest) { }; +var y = (function (num = 10, boo = false, ...rest) { })(); +var z = (function (num, boo = false, ...rest) { })(10); diff --git a/tests/baselines/reference/emitDefaultParametersFunctionProperty.js b/tests/baselines/reference/emitDefaultParametersFunctionProperty.js index 16cac41a4ce..ba0e8d5e14e 100644 --- a/tests/baselines/reference/emitDefaultParametersFunctionProperty.js +++ b/tests/baselines/reference/emitDefaultParametersFunctionProperty.js @@ -9,24 +9,8 @@ var obj2 = { //// [emitDefaultParametersFunctionProperty.js] var obj2 = { - func1: function (y) { - if (y === void 0) { y = 10; } - var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; - } - }, - func2: function (x) { - if (x === void 0) { x = "hello"; } - }, - func3: function (x, z, y) { - if (y === void 0) { y = "hello"; } - }, - func4: function (x, z, y) { - if (y === void 0) { y = "hello"; } - var rest = []; - for (var _i = 3; _i < arguments.length; _i++) { - rest[_i - 3] = arguments[_i]; - } - }, + func1: function (y) { }, + func2: function (x) { }, + func3: function (x, z, y) { }, + func4: function (x, z, y) { }, }; diff --git a/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.js b/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.js index fce694a453a..4a85f4a34b0 100644 --- a/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.js +++ b/tests/baselines/reference/emitDefaultParametersFunctionPropertyES6.js @@ -8,12 +8,8 @@ var obj2 = { //// [emitDefaultParametersFunctionPropertyES6.js] var obj2 = { - func1(y = 10, ...rest) { - }, - func2(x = "hello") { - }, - func3(x, z, y = "hello") { - }, - func4(x, z, y = "hello", ...rest) { - }, + func1(y = 10, ...rest) { }, + func2(x = "hello") { }, + func3(x, z, y = "hello") { }, + func4(x, z, y = "hello", ...rest) { }, }; diff --git a/tests/baselines/reference/emitDefaultParametersMethod.js b/tests/baselines/reference/emitDefaultParametersMethod.js index 126c19305b3..5a6aede9e75 100644 --- a/tests/baselines/reference/emitDefaultParametersMethod.js +++ b/tests/baselines/reference/emitDefaultParametersMethod.js @@ -22,26 +22,10 @@ var C = (function () { function C(t, z, x, y) { if (y === void 0) { y = "hello"; } } - C.prototype.foo = function (x, t) { - if (t === void 0) { t = false; } - }; - C.prototype.foo1 = function (x, t) { - if (t === void 0) { t = false; } - var rest = []; - for (var _i = 2; _i < arguments.length; _i++) { - rest[_i - 2] = arguments[_i]; - } - }; - C.prototype.bar = function (t) { - if (t === void 0) { t = false; } - }; - C.prototype.boo = function (t) { - if (t === void 0) { t = false; } - var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; - } - }; + C.prototype.foo = function (x, t) { }; + C.prototype.foo1 = function (x, t) { }; + C.prototype.bar = function (t) { }; + C.prototype.boo = function (t) { }; return C; })(); var D = (function () { diff --git a/tests/baselines/reference/emitDefaultParametersMethodES6.js b/tests/baselines/reference/emitDefaultParametersMethodES6.js index bf96e00e375..8489b5708f1 100644 --- a/tests/baselines/reference/emitDefaultParametersMethodES6.js +++ b/tests/baselines/reference/emitDefaultParametersMethodES6.js @@ -20,14 +20,10 @@ class E { var C = (function () { function C(t, z, x, y = "hello") { } - C.prototype.foo = function (x, t = false) { - }; - C.prototype.foo1 = function (x, t = false, ...rest) { - }; - C.prototype.bar = function (t = false) { - }; - C.prototype.boo = function (t = false, ...rest) { - }; + C.prototype.foo = function (x, t = false) { }; + C.prototype.foo1 = function (x, t = false, ...rest) { }; + C.prototype.bar = function (t = false) { }; + C.prototype.boo = function (t = false, ...rest) { }; return C; })(); var D = (function () { diff --git a/tests/baselines/reference/emitRestParametersFunction.js b/tests/baselines/reference/emitRestParametersFunction.js index 01116f2ac92..4ee4ff06df9 100644 --- a/tests/baselines/reference/emitRestParametersFunction.js +++ b/tests/baselines/reference/emitRestParametersFunction.js @@ -3,15 +3,5 @@ function bar(...rest) { } function foo(x: number, y: string, ...rest) { } //// [emitRestParametersFunction.js] -function bar() { - var rest = []; - for (var _i = 0; _i < arguments.length; _i++) { - rest[_i - 0] = arguments[_i]; - } -} -function foo(x, y) { - var rest = []; - for (var _i = 2; _i < arguments.length; _i++) { - rest[_i - 2] = arguments[_i]; - } -} +function bar() { } +function foo(x, y) { } diff --git a/tests/baselines/reference/emitRestParametersFunctionES6.js b/tests/baselines/reference/emitRestParametersFunctionES6.js index 242c40f252d..a07b3a13174 100644 --- a/tests/baselines/reference/emitRestParametersFunctionES6.js +++ b/tests/baselines/reference/emitRestParametersFunctionES6.js @@ -3,7 +3,5 @@ function bar(...rest) { } function foo(x: number, y: string, ...rest) { } //// [emitRestParametersFunctionES6.js] -function bar(...rest) { -} -function foo(x, y, ...rest) { -} +function bar(...rest) { } +function foo(x, y, ...rest) { } diff --git a/tests/baselines/reference/emitRestParametersFunctionExpression.js b/tests/baselines/reference/emitRestParametersFunctionExpression.js index da87cc79f2d..6229c1e8d64 100644 --- a/tests/baselines/reference/emitRestParametersFunctionExpression.js +++ b/tests/baselines/reference/emitRestParametersFunctionExpression.js @@ -6,27 +6,7 @@ var funcExp3 = (function (...rest) { })() //// [emitRestParametersFunctionExpression.js] -var funcExp = function () { - var rest = []; - for (var _i = 0; _i < arguments.length; _i++) { - rest[_i - 0] = arguments[_i]; - } -}; -var funcExp1 = function (X) { - var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; - } -}; -var funcExp2 = function () { - var rest = []; - for (var _i = 0; _i < arguments.length; _i++) { - rest[_i - 0] = arguments[_i]; - } -}; -var funcExp3 = (function () { - var rest = []; - for (var _i = 0; _i < arguments.length; _i++) { - rest[_i - 0] = arguments[_i]; - } -})(); +var funcExp = function () { }; +var funcExp1 = function (X) { }; +var funcExp2 = function () { }; +var funcExp3 = (function () { })(); diff --git a/tests/baselines/reference/emitRestParametersFunctionExpressionES6.js b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.js index c7851db5e78..aa52a29b138 100644 --- a/tests/baselines/reference/emitRestParametersFunctionExpressionES6.js +++ b/tests/baselines/reference/emitRestParametersFunctionExpressionES6.js @@ -5,11 +5,7 @@ var funcExp2 = function (...rest) { } var funcExp3 = (function (...rest) { })() //// [emitRestParametersFunctionExpressionES6.js] -var funcExp = (...rest) => { -}; -var funcExp1 = (X, ...rest) => { -}; -var funcExp2 = function (...rest) { -}; -var funcExp3 = (function (...rest) { -})(); +var funcExp = (...rest) => { }; +var funcExp1 = (X, ...rest) => { }; +var funcExp2 = function (...rest) { }; +var funcExp3 = (function (...rest) { })(); diff --git a/tests/baselines/reference/emitRestParametersFunctionProperty.js b/tests/baselines/reference/emitRestParametersFunctionProperty.js index 4fd60a9269d..eec67fb880a 100644 --- a/tests/baselines/reference/emitRestParametersFunctionProperty.js +++ b/tests/baselines/reference/emitRestParametersFunctionProperty.js @@ -10,10 +10,5 @@ var obj2 = { //// [emitRestParametersFunctionProperty.js] var obj; var obj2 = { - func: function () { - var rest = []; - for (var _i = 0; _i < arguments.length; _i++) { - rest[_i - 0] = arguments[_i]; - } - } + func: function () { } }; diff --git a/tests/baselines/reference/emitRestParametersFunctionPropertyES6.js b/tests/baselines/reference/emitRestParametersFunctionPropertyES6.js index 87aa489ecf3..122a1f6ed52 100644 --- a/tests/baselines/reference/emitRestParametersFunctionPropertyES6.js +++ b/tests/baselines/reference/emitRestParametersFunctionPropertyES6.js @@ -10,6 +10,5 @@ var obj2 = { //// [emitRestParametersFunctionPropertyES6.js] var obj; var obj2 = { - func(...rest) { - } + func(...rest) { } }; diff --git a/tests/baselines/reference/emitRestParametersMethod.js b/tests/baselines/reference/emitRestParametersMethod.js index 5ceb6d768f8..4e4c62dc47b 100644 --- a/tests/baselines/reference/emitRestParametersMethod.js +++ b/tests/baselines/reference/emitRestParametersMethod.js @@ -21,18 +21,8 @@ var C = (function () { rest[_i - 1] = arguments[_i]; } } - C.prototype.bar = function () { - var rest = []; - for (var _i = 0; _i < arguments.length; _i++) { - rest[_i - 0] = arguments[_i]; - } - }; - C.prototype.foo = function (x) { - var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; - } - }; + C.prototype.bar = function () { }; + C.prototype.foo = function (x) { }; return C; })(); var D = (function () { @@ -42,17 +32,7 @@ var D = (function () { rest[_i - 0] = arguments[_i]; } } - D.prototype.bar = function () { - var rest = []; - for (var _i = 0; _i < arguments.length; _i++) { - rest[_i - 0] = arguments[_i]; - } - }; - D.prototype.foo = function (x) { - var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; - } - }; + D.prototype.bar = function () { }; + D.prototype.foo = function (x) { }; return D; })(); diff --git a/tests/baselines/reference/emitRestParametersMethodES6.js b/tests/baselines/reference/emitRestParametersMethodES6.js index d0a0e2a120c..ff8e040be9c 100644 --- a/tests/baselines/reference/emitRestParametersMethodES6.js +++ b/tests/baselines/reference/emitRestParametersMethodES6.js @@ -18,18 +18,14 @@ class D { var C = (function () { function C(name, ...rest) { } - C.prototype.bar = function (...rest) { - }; - C.prototype.foo = function (x, ...rest) { - }; + C.prototype.bar = function (...rest) { }; + C.prototype.foo = function (x, ...rest) { }; return C; })(); var D = (function () { function D(...rest) { } - D.prototype.bar = function (...rest) { - }; - D.prototype.foo = function (x, ...rest) { - }; + D.prototype.bar = function (...rest) { }; + D.prototype.foo = function (x, ...rest) { }; return D; })(); diff --git a/tests/baselines/reference/emptyTypeArgumentList.js b/tests/baselines/reference/emptyTypeArgumentList.js index 91fce396289..30093113be4 100644 --- a/tests/baselines/reference/emptyTypeArgumentList.js +++ b/tests/baselines/reference/emptyTypeArgumentList.js @@ -3,6 +3,5 @@ function foo() { } foo<>(); //// [emptyTypeArgumentList.js] -function foo() { -} +function foo() { } foo(); diff --git a/tests/baselines/reference/enumAssignabilityInInheritance.js b/tests/baselines/reference/enumAssignabilityInInheritance.js index bec59a3d0de..a26bd0670f8 100644 --- a/tests/baselines/reference/enumAssignabilityInInheritance.js +++ b/tests/baselines/reference/enumAssignabilityInInheritance.js @@ -144,8 +144,7 @@ var E2; E2[E2["A"] = 0] = "A"; })(E2 || (E2 = {})); var r4 = foo13(0 /* A */); -function f() { -} +function f() { } var f; (function (f) { f.bar = 1; diff --git a/tests/baselines/reference/enumIsNotASubtypeOfAnythingButNumber.js b/tests/baselines/reference/enumIsNotASubtypeOfAnythingButNumber.js index f9ac7661e3d..d932985ad7d 100644 --- a/tests/baselines/reference/enumIsNotASubtypeOfAnythingButNumber.js +++ b/tests/baselines/reference/enumIsNotASubtypeOfAnythingButNumber.js @@ -150,8 +150,7 @@ var E2; (function (E2) { E2[E2["A"] = 0] = "A"; })(E2 || (E2 = {})); -function f() { -} +function f() { } var f; (function (f) { f.bar = 1; diff --git a/tests/baselines/reference/errorOnContextuallyTypedReturnType.js b/tests/baselines/reference/errorOnContextuallyTypedReturnType.js index 2a49ccd2b67..9e0c26b6be7 100644 --- a/tests/baselines/reference/errorOnContextuallyTypedReturnType.js +++ b/tests/baselines/reference/errorOnContextuallyTypedReturnType.js @@ -4,7 +4,5 @@ var n2: () => boolean = function ():boolean { }; // expect an error here //// [errorOnContextuallyTypedReturnType.js] -var n1 = function () { -}; // expect an error here -var n2 = function () { -}; // expect an error here +var n1 = function () { }; // expect an error here +var n2 = function () { }; // expect an error here diff --git a/tests/baselines/reference/errorSuperPropertyAccess.js b/tests/baselines/reference/errorSuperPropertyAccess.js index 26c66a1222c..845bc9834f7 100644 --- a/tests/baselines/reference/errorSuperPropertyAccess.js +++ b/tests/baselines/reference/errorSuperPropertyAccess.js @@ -172,14 +172,10 @@ var SomeBase = (function () { this.privateMember = 0; this.publicMember = 0; } - SomeBase.prototype.privateFunc = function () { - }; - SomeBase.prototype.publicFunc = function () { - }; - SomeBase.privateStaticFunc = function () { - }; - SomeBase.publicStaticFunc = function () { - }; + SomeBase.prototype.privateFunc = function () { }; + SomeBase.prototype.publicFunc = function () { }; + SomeBase.privateStaticFunc = function () { }; + SomeBase.publicStaticFunc = function () { }; SomeBase.privateStaticMember = 0; SomeBase.publicStaticMember = 0; return SomeBase; diff --git a/tests/baselines/reference/errorsInGenericTypeReference.js b/tests/baselines/reference/errorsInGenericTypeReference.js index 6a9f62c5e49..1a27a681e59 100644 --- a/tests/baselines/reference/errorsInGenericTypeReference.js +++ b/tests/baselines/reference/errorsInGenericTypeReference.js @@ -88,8 +88,7 @@ var Foo = (function () { var testClass1 = (function () { function testClass1() { } - testClass1.prototype.method = function () { - }; + testClass1.prototype.method = function () { }; return testClass1; })(); var tc1 = new testClass1(); @@ -112,8 +111,7 @@ var testClass3 = (function () { return null; }; // error: could not find symbol V Object.defineProperty(testClass3.prototype, "a", { - set: function (value) { - } // error: could not find symbol V + set: function (value) { } // error: could not find symbol V , enumerable: true, configurable: true @@ -125,8 +123,7 @@ function testFunction1() { return null; } // error: could not find symbol V // in paramter types -function testFunction2(p) { -} // error: could not find symbol V +function testFunction2(p) { } // error: could not find symbol V // in var type annotation var f; // error: could not find symbol V // in constraints @@ -138,8 +135,7 @@ var testClass4 = (function () { var testClass6 = (function () { function testClass6() { } - testClass6.prototype.method = function () { - }; // error: could not find symbol V + testClass6.prototype.method = function () { }; // error: could not find symbol V return testClass6; })(); // in extends clause diff --git a/tests/baselines/reference/es6ClassTest2.js b/tests/baselines/reference/es6ClassTest2.js index 8ef7a2fa379..f4854644079 100644 --- a/tests/baselines/reference/es6ClassTest2.js +++ b/tests/baselines/reference/es6ClassTest2.js @@ -240,12 +240,7 @@ var SplatMonster = (function () { args[_i - 0] = arguments[_i]; } } - SplatMonster.prototype.roar = function (name) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } - }; + SplatMonster.prototype.roar = function (name) { }; return SplatMonster; })(); function foo() { @@ -302,10 +297,8 @@ var Visibility = (function () { this.x = 1; this.y = 2; } - Visibility.prototype.foo = function () { - }; - Visibility.prototype.bar = function () { - }; + Visibility.prototype.foo = function () { }; + Visibility.prototype.bar = function () { }; return Visibility; })(); var BaseClassWithConstructor = (function () { diff --git a/tests/baselines/reference/es6ClassTest3.js b/tests/baselines/reference/es6ClassTest3.js index 371a983d152..dc9f1c67154 100644 --- a/tests/baselines/reference/es6ClassTest3.js +++ b/tests/baselines/reference/es6ClassTest3.js @@ -22,10 +22,8 @@ var M; this.x = 1; this.y = 2; } - Visibility.prototype.foo = function () { - }; - Visibility.prototype.bar = function () { - }; + Visibility.prototype.foo = function () { }; + Visibility.prototype.bar = function () { }; return Visibility; })(); })(M || (M = {})); diff --git a/tests/baselines/reference/es6ClassTest9.js b/tests/baselines/reference/es6ClassTest9.js index d45c99d3b04..538fec5a2ab 100644 --- a/tests/baselines/reference/es6ClassTest9.js +++ b/tests/baselines/reference/es6ClassTest9.js @@ -5,5 +5,4 @@ function foo() {} //// [es6ClassTest9.js] (); -function foo() { -} +function foo() { } diff --git a/tests/baselines/reference/exportAlreadySeen.js b/tests/baselines/reference/exportAlreadySeen.js index e18c0bbf7f6..68d30a697fd 100644 --- a/tests/baselines/reference/exportAlreadySeen.js +++ b/tests/baselines/reference/exportAlreadySeen.js @@ -23,8 +23,7 @@ declare module A { var M; (function (M) { M.x = 1; - function f() { - } + function f() { } M.f = f; var N; (function (N) { diff --git a/tests/baselines/reference/exportAssignmentMergedInterface.js b/tests/baselines/reference/exportAssignmentMergedInterface.js index 3f0c0cfde29..f99d7f3a465 100644 --- a/tests/baselines/reference/exportAssignmentMergedInterface.js +++ b/tests/baselines/reference/exportAssignmentMergedInterface.js @@ -31,8 +31,7 @@ define(["require", "exports"], function (require, exports) { x("test"); x(42); var y = x.b; - if (!!x.c) { - } + if (!!x.c) { } var z = { x: 1, y: 2 }; z = x.d; }); diff --git a/tests/baselines/reference/exportCodeGen.js b/tests/baselines/reference/exportCodeGen.js index 1b1f934b2f9..30ed0b07ae9 100644 --- a/tests/baselines/reference/exportCodeGen.js +++ b/tests/baselines/reference/exportCodeGen.js @@ -94,8 +94,7 @@ var E; Color[Color["Red"] = 0] = "Red"; })(E.Color || (E.Color = {})); var Color = E.Color; - function fn() { - } + function fn() { } E.fn = fn; var C = (function () { function C() { @@ -116,8 +115,7 @@ var F; (function (Color) { Color[Color["Red"] = 0] = "Red"; })(Color || (Color = {})); - function fn() { - } + function fn() { } var C = (function () { function C() { } diff --git a/tests/baselines/reference/extendAndImplementTheSameBaseType.js b/tests/baselines/reference/extendAndImplementTheSameBaseType.js index 836db4dc362..23c9127175e 100644 --- a/tests/baselines/reference/extendAndImplementTheSameBaseType.js +++ b/tests/baselines/reference/extendAndImplementTheSameBaseType.js @@ -23,8 +23,7 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C() { } - C.prototype.bar = function () { - }; + C.prototype.bar = function () { }; return C; })(); var D = (function (_super) { @@ -32,8 +31,7 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } - D.prototype.baz = function () { - }; + D.prototype.baz = function () { }; return D; })(C); var c; diff --git a/tests/baselines/reference/extendAndImplementTheSameBaseType2.js b/tests/baselines/reference/extendAndImplementTheSameBaseType2.js index 8311f4d6ce6..234cc59ff70 100644 --- a/tests/baselines/reference/extendAndImplementTheSameBaseType2.js +++ b/tests/baselines/reference/extendAndImplementTheSameBaseType2.js @@ -36,8 +36,7 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } - D.prototype.baz = function () { - }; + D.prototype.baz = function () { }; return D; })(C); var d = new D(); diff --git a/tests/baselines/reference/extendArray.js b/tests/baselines/reference/extendArray.js index 876bf1358d9..6d5c0262209 100644 --- a/tests/baselines/reference/extendArray.js +++ b/tests/baselines/reference/extendArray.js @@ -25,8 +25,7 @@ arr.collect = function (fn) { //// [extendArray.js] var a = [1, 2]; -a.forEach(function (v, i, a) { -}); +a.forEach(function (v, i, a) { }); var arr = Array.prototype; arr.collect = function (fn) { var res = []; diff --git a/tests/baselines/reference/extendNonClassSymbol1.js b/tests/baselines/reference/extendNonClassSymbol1.js index 47a602aefaf..26f0c776dd8 100644 --- a/tests/baselines/reference/extendNonClassSymbol1.js +++ b/tests/baselines/reference/extendNonClassSymbol1.js @@ -13,8 +13,7 @@ var __extends = this.__extends || function (d, b) { var A = (function () { function A() { } - A.prototype.foo = function () { - }; + A.prototype.foo = function () { }; return A; })(); var x = A; diff --git a/tests/baselines/reference/extendsClauseAlreadySeen.js b/tests/baselines/reference/extendsClauseAlreadySeen.js index 5c328e39131..820a6910962 100644 --- a/tests/baselines/reference/extendsClauseAlreadySeen.js +++ b/tests/baselines/reference/extendsClauseAlreadySeen.js @@ -23,7 +23,6 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } - D.prototype.baz = function () { - }; + D.prototype.baz = function () { }; return D; })(C); diff --git a/tests/baselines/reference/extendsClauseAlreadySeen2.js b/tests/baselines/reference/extendsClauseAlreadySeen2.js index 3f3b7049311..ad88446c4c4 100644 --- a/tests/baselines/reference/extendsClauseAlreadySeen2.js +++ b/tests/baselines/reference/extendsClauseAlreadySeen2.js @@ -23,7 +23,6 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } - D.prototype.baz = function () { - }; + D.prototype.baz = function () { }; return D; })(C); diff --git a/tests/baselines/reference/externModule.js b/tests/baselines/reference/externModule.js index 0dc3d8e84cd..719b68451ae 100644 --- a/tests/baselines/reference/externModule.js +++ b/tests/baselines/reference/externModule.js @@ -42,8 +42,7 @@ n=XDate.UTC(1964,2,1); //// [externModule.js] declare; module; -{ -} +{ } var XDate = (function () { function XDate() { } diff --git a/tests/baselines/reference/externalModuleReferenceOfImportDeclarationWithExportModifier.js b/tests/baselines/reference/externalModuleReferenceOfImportDeclarationWithExportModifier.js index 73ef9b6b296..f9c83c83cf0 100644 --- a/tests/baselines/reference/externalModuleReferenceOfImportDeclarationWithExportModifier.js +++ b/tests/baselines/reference/externalModuleReferenceOfImportDeclarationWithExportModifier.js @@ -10,8 +10,7 @@ file1.foo(); //// [externalModuleReferenceOfImportDeclarationWithExportModifier_0.js] define(["require", "exports"], function (require, exports) { - function foo() { - } + function foo() { } exports.foo = foo; ; }); diff --git a/tests/baselines/reference/externalModuleRefernceResolutionOrderInImportDeclaration.js b/tests/baselines/reference/externalModuleRefernceResolutionOrderInImportDeclaration.js index edbdf6b90a5..f1d1d9fb561 100644 --- a/tests/baselines/reference/externalModuleRefernceResolutionOrderInImportDeclaration.js +++ b/tests/baselines/reference/externalModuleRefernceResolutionOrderInImportDeclaration.js @@ -19,8 +19,7 @@ file1.bar(); //// [externalModuleRefernceResolutionOrderInImportDeclaration_file2.js] //// [externalModuleRefernceResolutionOrderInImportDeclaration_file1.js] -function foo() { -} +function foo() { } exports.foo = foo; ; //// [externalModuleRefernceResolutionOrderInImportDeclaration_file3.js] diff --git a/tests/baselines/reference/fatarrowfunctionsErrors.js b/tests/baselines/reference/fatarrowfunctionsErrors.js index fd47f60b6a0..cdcd812c113 100644 --- a/tests/baselines/reference/fatarrowfunctionsErrors.js +++ b/tests/baselines/reference/fatarrowfunctionsErrors.js @@ -33,15 +33,7 @@ var y = x, number; x * x; false ? (function () { return null; }) : null; // missing fatarrow -var x1 = function () { -}; -var x2 = function (a) { -}; -var x3 = function (a) { -}; -var x4 = function () { - var a = []; - for (var _i = 0; _i < arguments.length; _i++) { - a[_i - 0] = arguments[_i]; - } -}; +var x1 = function () { }; +var x2 = function (a) { }; +var x3 = function (a) { }; +var x4 = function () { }; diff --git a/tests/baselines/reference/fatarrowfunctionsOptionalArgs.js b/tests/baselines/reference/fatarrowfunctionsOptionalArgs.js index 0b816cc9e09..6d6e3013fbb 100644 --- a/tests/baselines/reference/fatarrowfunctionsOptionalArgs.js +++ b/tests/baselines/reference/fatarrowfunctionsOptionalArgs.js @@ -361,12 +361,7 @@ false ? null : function () { return 108; }); // Function Parameters -function foo() { - var arg = []; - for (var _i = 0; _i < arguments.length; _i++) { - arg[_i - 0] = arguments[_i]; - } -} +function foo() { } foo(function (a) { return 110; }, (function (a) { return 111; }), function (a) { return 112; }, function (a) { return 113; }, function (a, b) { return 114; }, function (a) { return 115; }, function (a) { diff --git a/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.js b/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.js index d8521e56a14..dea003057c4 100644 --- a/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.js +++ b/tests/baselines/reference/fixTypeParameterInSignatureWithRestParameters.js @@ -3,6 +3,5 @@ function bar(item1: T, item2: T) { } bar(1, ""); // Should be ok //// [fixTypeParameterInSignatureWithRestParameters.js] -function bar(item1, item2) { -} +function bar(item1, item2) { } bar(1, ""); // Should be ok diff --git a/tests/baselines/reference/for-inStatements.js b/tests/baselines/reference/for-inStatements.js index ca0a7a2e4c5..00f1a64a8d6 100644 --- a/tests/baselines/reference/for-inStatements.js +++ b/tests/baselines/reference/for-inStatements.js @@ -88,63 +88,40 @@ var __extends = this.__extends || function (d, b) { d.prototype = new __(); }; var aString; -for (aString in {}) { -} +for (aString in {}) { } var anAny; -for (anAny in {}) { -} -for (var x in {}) { -} -for (var x in []) { -} -for (var x in [1, 2, 3, 4, 5]) { -} -function fn() { -} -for (var x in fn()) { -} -for (var x in /[a-z]/) { -} -for (var x in new Date()) { -} +for (anAny in {}) { } +for (var x in {}) { } +for (var x in []) { } +for (var x in [1, 2, 3, 4, 5]) { } +function fn() { } +for (var x in fn()) { } +for (var x in /[a-z]/) { } +for (var x in new Date()) { } var c, d, e; -for (var x in c || d) { -} -for (var x in e ? c : d) { -} -for (var x in 42 ? c : d) { -} -for (var x in '' ? c : d) { -} -for (var x in 42 ? d[x] : c[x]) { -} -for (var x in c[d]) { -} -for (var x in (function (x) { return x; })) { -} +for (var x in c || d) { } +for (var x in e ? c : d) { } +for (var x in 42 ? c : d) { } +for (var x in '' ? c : d) { } +for (var x in 42 ? d[x] : c[x]) { } +for (var x in c[d]) { } +for (var x in (function (x) { return x; })) { } for (var x in function (x, y) { return x + y; -}) { -} +}) { } var A = (function () { function A() { } A.prototype.biz = function () { - for (var x in this.biz()) { - } - for (var x in this.biz) { - } - for (var x in this) { - } + for (var x in this.biz()) { } + for (var x in this.biz) { } + for (var x in this) { } return null; }; A.baz = function () { - for (var x in this) { - } - for (var x in this.baz) { - } - for (var x in this.baz()) { - } + for (var x in this) { } + for (var x in this.baz) { } + for (var x in this.baz()) { } return null; }; return A; @@ -155,23 +132,17 @@ var B = (function (_super) { _super.apply(this, arguments); } B.prototype.boz = function () { - for (var x in this.biz()) { - } - for (var x in this.biz) { - } - for (var x in this) { - } - for (var x in _super.prototype.biz) { - } - for (var x in _super.prototype.biz.call(this)) { - } + for (var x in this.biz()) { } + for (var x in this.biz) { } + for (var x in this) { } + for (var x in _super.prototype.biz) { } + for (var x in _super.prototype.biz.call(this)) { } return null; }; return B; })(A); var i; -for (var x in i[42]) { -} +for (var x in i[42]) { } var M; (function (M) { var X = (function () { @@ -181,16 +152,12 @@ var M; })(); M.X = X; })(M || (M = {})); -for (var x in M) { -} -for (var x in M.X) { -} +for (var x in M) { } +for (var x in M.X) { } var Color; (function (Color) { Color[Color["Red"] = 0] = "Red"; Color[Color["Blue"] = 1] = "Blue"; })(Color || (Color = {})); -for (var x in Color) { -} -for (var x in 1 /* Blue */) { -} +for (var x in Color) { } +for (var x in 1 /* Blue */) { } diff --git a/tests/baselines/reference/for-inStatementsInvalid.js b/tests/baselines/reference/for-inStatementsInvalid.js index ce6350ab67c..fc43665e99e 100644 --- a/tests/baselines/reference/for-inStatementsInvalid.js +++ b/tests/baselines/reference/for-inStatementsInvalid.js @@ -71,58 +71,38 @@ var __extends = this.__extends || function (d, b) { d.prototype = new __(); }; var aNumber; -for (aNumber in {}) { -} +for (aNumber in {}) { } var aBoolean; -for (aBoolean in {}) { -} +for (aBoolean in {}) { } var aRegExp; -for (aRegExp in {}) { -} -for (var idx in {}) { -} -function fn() { -} -for (var x in fn()) { -} +for (aRegExp in {}) { } +for (var idx in {}) { } +function fn() { } +for (var x in fn()) { } var c, d, e; -for (var x in c || d) { -} -for (var x in e ? c : d) { -} -for (var x in 42 ? c : d) { -} -for (var x in '' ? c : d) { -} -for (var x in 42 ? d[x] : c[x]) { -} -for (var x in c[23]) { -} -for (var x in (function (x) { return x; })) { -} +for (var x in c || d) { } +for (var x in e ? c : d) { } +for (var x in 42 ? c : d) { } +for (var x in '' ? c : d) { } +for (var x in 42 ? d[x] : c[x]) { } +for (var x in c[23]) { } +for (var x in (function (x) { return x; })) { } for (var x in function (x, y) { return x + y; -}) { -} +}) { } var A = (function () { function A() { } A.prototype.biz = function () { - for (var x in this.biz()) { - } - for (var x in this.biz) { - } - for (var x in this) { - } + for (var x in this.biz()) { } + for (var x in this.biz) { } + for (var x in this) { } return null; }; A.baz = function () { - for (var x in this) { - } - for (var x in this.baz) { - } - for (var x in this.baz()) { - } + for (var x in this) { } + for (var x in this.baz) { } + for (var x in this.baz()) { } return null; }; return A; @@ -133,20 +113,14 @@ var B = (function (_super) { _super.apply(this, arguments); } B.prototype.boz = function () { - for (var x in this.biz()) { - } - for (var x in this.biz) { - } - for (var x in this) { - } - for (var x in _super.prototype.biz) { - } - for (var x in _super.prototype.biz.call(this)) { - } + for (var x in this.biz()) { } + for (var x in this.biz) { } + for (var x in this) { } + for (var x in _super.prototype.biz) { } + for (var x in _super.prototype.biz.call(this)) { } return null; }; return B; })(A); var i; -for (var x in i[42]) { -} +for (var x in i[42]) { } diff --git a/tests/baselines/reference/forBreakStatements.js b/tests/baselines/reference/forBreakStatements.js index 017837cded4..9ed65627c9c 100644 --- a/tests/baselines/reference/forBreakStatements.js +++ b/tests/baselines/reference/forBreakStatements.js @@ -61,7 +61,6 @@ SEVEN: for (;;) for (;;) break SEVEN; EIGHT: for (;;) { - var fn = function () { - }; + var fn = function () { }; break EIGHT; } diff --git a/tests/baselines/reference/forContinueStatements.js b/tests/baselines/reference/forContinueStatements.js index b1ace24f4b1..34f70bb1fc1 100644 --- a/tests/baselines/reference/forContinueStatements.js +++ b/tests/baselines/reference/forContinueStatements.js @@ -61,7 +61,6 @@ SEVEN: for (;;) for (;;) continue SEVEN; EIGHT: for (;;) { - var fn = function () { - }; + var fn = function () { }; continue EIGHT; } diff --git a/tests/baselines/reference/forInBreakStatements.js b/tests/baselines/reference/forInBreakStatements.js index 09f0071d4bf..24b7cc57b8d 100644 --- a/tests/baselines/reference/forInBreakStatements.js +++ b/tests/baselines/reference/forInBreakStatements.js @@ -61,7 +61,6 @@ SEVEN: for (var x in {}) for (var x in {}) break SEVEN; EIGHT: for (var x in {}) { - var fn = function () { - }; + var fn = function () { }; break EIGHT; } diff --git a/tests/baselines/reference/forInContinueStatements.js b/tests/baselines/reference/forInContinueStatements.js index 68cac5221ae..8b036c59721 100644 --- a/tests/baselines/reference/forInContinueStatements.js +++ b/tests/baselines/reference/forInContinueStatements.js @@ -61,7 +61,6 @@ SEVEN: for (var x in {}) for (var x in {}) continue SEVEN; EIGHT: for (var x in {}) { - var fn = function () { - }; + var fn = function () { }; continue EIGHT; } diff --git a/tests/baselines/reference/forStatements.js b/tests/baselines/reference/forStatements.js index 0988e9613a9..1755ff51fdc 100644 --- a/tests/baselines/reference/forStatements.js +++ b/tests/baselines/reference/forStatements.js @@ -73,39 +73,21 @@ var M; } M.F2 = F2; })(M || (M = {})); -for (var aNumber = 9.9;;) { -} -for (var aString = 'this is a string';;) { -} -for (var aDate = new Date(12);;) { -} -for (var anObject = new Object();;) { -} -for (var anAny = null;;) { -} -for (var aSecondAny = undefined;;) { -} -for (var aVoid = undefined;;) { -} -for (var anInterface = new C();;) { -} -for (var aClass = new C();;) { -} -for (var aGenericClass = new D();;) { -} -for (var anObjectLiteral = { id: 12 };;) { -} -for (var anOtherObjectLiteral = new C();;) { -} -for (var aFunction = F;;) { -} -for (var anOtherFunction = F;;) { -} -for (var aLambda = function (x) { return 2; };;) { -} -for (var aModule = M;;) { -} -for (var aClassInModule = new M.A();;) { -} -for (var aFunctionInModule = function (x) { return 'this is a string'; };;) { -} +for (var aNumber = 9.9;;) { } +for (var aString = 'this is a string';;) { } +for (var aDate = new Date(12);;) { } +for (var anObject = new Object();;) { } +for (var anAny = null;;) { } +for (var aSecondAny = undefined;;) { } +for (var aVoid = undefined;;) { } +for (var anInterface = new C();;) { } +for (var aClass = new C();;) { } +for (var aGenericClass = new D();;) { } +for (var anObjectLiteral = { id: 12 };;) { } +for (var anOtherObjectLiteral = new C();;) { } +for (var aFunction = F;;) { } +for (var anOtherFunction = F;;) { } +for (var aLambda = function (x) { return 2; };;) { } +for (var aModule = M;;) { } +for (var aClassInModule = new M.A();;) { } +for (var aFunctionInModule = function (x) { return 'this is a string'; };;) { } diff --git a/tests/baselines/reference/forStatementsMultipleInvalidDecl.js b/tests/baselines/reference/forStatementsMultipleInvalidDecl.js index 4dbfe7e62bc..5c856398be2 100644 --- a/tests/baselines/reference/forStatementsMultipleInvalidDecl.js +++ b/tests/baselines/reference/forStatementsMultipleInvalidDecl.js @@ -94,39 +94,21 @@ var M; M.F2 = F2; })(M || (M = {})); // all of these are errors -for (var a;;) { -} -for (var a = 1;;) { -} -for (var a = 'a string';;) { -} -for (var a = new C();;) { -} -for (var a = new D();;) { -} -for (var a = M;;) { -} -for (var b;;) { -} -for (var b = new C();;) { -} -for (var b = new C2();;) { -} -for (var f = F;;) { -} -for (var f = function (x) { return ''; };;) { -} -for (var arr;;) { -} -for (var arr = [1, 2, 3, 4];;) { -} -for (var arr = [new C(), new C2(), new D()];;) { -} -for (var arr2 = [new D()];;) { -} -for (var arr2 = new Array();;) { -} -for (var m;;) { -} -for (var m = M.A;;) { -} +for (var a;;) { } +for (var a = 1;;) { } +for (var a = 'a string';;) { } +for (var a = new C();;) { } +for (var a = new D();;) { } +for (var a = M;;) { } +for (var b;;) { } +for (var b = new C();;) { } +for (var b = new C2();;) { } +for (var f = F;;) { } +for (var f = function (x) { return ''; };;) { } +for (var arr;;) { } +for (var arr = [1, 2, 3, 4];;) { } +for (var arr = [new C(), new C2(), new D()];;) { } +for (var arr2 = [new D()];;) { } +for (var arr2 = new Array();;) { } +for (var m;;) { } +for (var m = M.A;;) { } diff --git a/tests/baselines/reference/forStatementsMultipleValidDecl.js b/tests/baselines/reference/forStatementsMultipleValidDecl.js index 5cc9bf3cd7d..76571ce1ff4 100644 --- a/tests/baselines/reference/forStatementsMultipleValidDecl.js +++ b/tests/baselines/reference/forStatementsMultipleValidDecl.js @@ -35,54 +35,31 @@ for (var a: typeof a; ;) { } //// [forStatementsMultipleValidDecl.js] // all expected to be valid -for (var x;;) { -} -for (var x = 2;;) { -} -for (var x = undefined;;) { -} +for (var x;;) { } +for (var x = 2;;) { } +for (var x = undefined;;) { } // new declaration space, making redeclaring x as a string valid function declSpace() { - for (var x = 'this is a string';;) { - } -} -for (var p;;) { -} -for (var p = { x: 1, y: 2 };;) { -} -for (var p = { x: 0, y: undefined };;) { -} -for (var p = { x: 1, y: undefined };;) { -} -for (var p = { x: 1, y: 2 };;) { -} -for (var p = { x: 0, y: undefined };;) { -} -for (var p;;) { + for (var x = 'this is a string';;) { } } +for (var p;;) { } +for (var p = { x: 1, y: 2 };;) { } +for (var p = { x: 0, y: undefined };;) { } +for (var p = { x: 1, y: undefined };;) { } +for (var p = { x: 1, y: 2 };;) { } +for (var p = { x: 0, y: undefined };;) { } +for (var p;;) { } for (var fn = function (s) { return 42; -};;) { -} -for (var fn = function (s) { return 3; };;) { -} -for (var fn;;) { -} -for (var fn;;) { -} -for (var fn = null;;) { -} -for (var fn;;) { -} -for (var a;;) { -} -for (var a = ['a', 'b'];;) { -} -for (var a = [];;) { -} -for (var a = [];;) { -} -for (var a = new Array();;) { -} -for (var a;;) { -} +};;) { } +for (var fn = function (s) { return 3; };;) { } +for (var fn;;) { } +for (var fn;;) { } +for (var fn = null;;) { } +for (var fn;;) { } +for (var a;;) { } +for (var a = ['a', 'b'];;) { } +for (var a = [];;) { } +for (var a = [];;) { } +for (var a = new Array();;) { } +for (var a;;) { } diff --git a/tests/baselines/reference/funClodule.js b/tests/baselines/reference/funClodule.js index 8629ed63055..cc7dba7e476 100644 --- a/tests/baselines/reference/funClodule.js +++ b/tests/baselines/reference/funClodule.js @@ -20,12 +20,10 @@ module foo3 { class foo3 { } // Should error //// [funClodule.js] -function foo3() { -} +function foo3() { } var foo3; (function (foo3) { - function x() { - } + function x() { } foo3.x = x; })(foo3 || (foo3 = {})); var foo3 = (function () { diff --git a/tests/baselines/reference/funcdecl.js b/tests/baselines/reference/funcdecl.js index de080873b9f..348d25bd670 100644 --- a/tests/baselines/reference/funcdecl.js +++ b/tests/baselines/reference/funcdecl.js @@ -115,8 +115,7 @@ function overload1(ns) { return ns.toString(); } var withOverloadSignature = overload1; -function f(n) { -} +function f(n) { } var m2; (function (m2) { function foo(n) { diff --git a/tests/baselines/reference/functionAndInterfaceWithSeparateErrors.js b/tests/baselines/reference/functionAndInterfaceWithSeparateErrors.js index 004e65d92af..d59cff501ed 100644 --- a/tests/baselines/reference/functionAndInterfaceWithSeparateErrors.js +++ b/tests/baselines/reference/functionAndInterfaceWithSeparateErrors.js @@ -8,5 +8,4 @@ interface Foo { } //// [functionAndInterfaceWithSeparateErrors.js] -function Foo(n) { -} +function Foo(n) { } diff --git a/tests/baselines/reference/functionAndPropertyNameConflict.js b/tests/baselines/reference/functionAndPropertyNameConflict.js index 1368f8241d5..28a2cd54c9e 100644 --- a/tests/baselines/reference/functionAndPropertyNameConflict.js +++ b/tests/baselines/reference/functionAndPropertyNameConflict.js @@ -10,8 +10,7 @@ class C65 { var C65 = (function () { function C65() { } - C65.prototype.aaaaa = function () { - }; + C65.prototype.aaaaa = function () { }; Object.defineProperty(C65.prototype, "aaaaa", { get: function () { return 1; diff --git a/tests/baselines/reference/functionArgShadowing.js b/tests/baselines/reference/functionArgShadowing.js index c74570902ed..451e46536e0 100644 --- a/tests/baselines/reference/functionArgShadowing.js +++ b/tests/baselines/reference/functionArgShadowing.js @@ -18,15 +18,13 @@ class C { var A = (function () { function A() { } - A.prototype.foo = function () { - }; + A.prototype.foo = function () { }; return A; })(); var B = (function () { function B() { } - B.prototype.bar = function () { - }; + B.prototype.bar = function () { }; return B; })(); function foo(x) { diff --git a/tests/baselines/reference/functionAssignment.js b/tests/baselines/reference/functionAssignment.js index ce47f0a04b8..5a3e07c9e8d 100644 --- a/tests/baselines/reference/functionAssignment.js +++ b/tests/baselines/reference/functionAssignment.js @@ -38,27 +38,21 @@ callb((a) =>{ a.length; }); //// [functionAssignment.js] -function f(n) { -} -f(function () { -}); +function f(n) { } +f(function () { }); var barbaz; var test; test.get(function (param) { - var x = barbaz.get(function () { - }); + var x = barbaz.get(function () { }); }); -function f2(n) { -} +function f2(n) { } f2(function () { var n = ''; n = 4; }); -function f3(a) { -} +function f3(a) { } f3({ a: 0, b: 0 }); -function callb(a) { -} +function callb(a) { } callb(function (a) { a.length; }); diff --git a/tests/baselines/reference/functionCall10.js b/tests/baselines/reference/functionCall10.js index 9d5cb33a56a..299d73ee24a 100644 --- a/tests/baselines/reference/functionCall10.js +++ b/tests/baselines/reference/functionCall10.js @@ -7,12 +7,7 @@ foo(1, 'bar'); //// [functionCall10.js] -function foo() { - var a = []; - for (var _i = 0; _i < arguments.length; _i++) { - a[_i - 0] = arguments[_i]; - } -} +function foo() { } ; foo(0, 1); foo('foo'); diff --git a/tests/baselines/reference/functionCall11.js b/tests/baselines/reference/functionCall11.js index 9c36dedba36..019ea213dbc 100644 --- a/tests/baselines/reference/functionCall11.js +++ b/tests/baselines/reference/functionCall11.js @@ -8,8 +8,7 @@ foo('foo', 1, 'bar'); //// [functionCall11.js] -function foo(a, b) { -} +function foo(a, b) { } foo('foo', 1); foo('foo'); foo(); diff --git a/tests/baselines/reference/functionCall12.js b/tests/baselines/reference/functionCall12.js index ca71c25a172..2c3396c209a 100644 --- a/tests/baselines/reference/functionCall12.js +++ b/tests/baselines/reference/functionCall12.js @@ -9,8 +9,7 @@ foo('foo', 1, 3); //// [functionCall12.js] -function foo(a, b, c) { -} +function foo(a, b, c) { } foo('foo', 1); foo('foo'); foo(); diff --git a/tests/baselines/reference/functionCall13.js b/tests/baselines/reference/functionCall13.js index ce57f43215e..a66ecafc8b4 100644 --- a/tests/baselines/reference/functionCall13.js +++ b/tests/baselines/reference/functionCall13.js @@ -8,12 +8,7 @@ foo('foo', 1, 3); //// [functionCall13.js] -function foo(a) { - var b = []; - for (var _i = 1; _i < arguments.length; _i++) { - b[_i - 1] = arguments[_i]; - } -} +function foo(a) { } foo('foo', 1); foo('foo'); foo(); diff --git a/tests/baselines/reference/functionCall14.js b/tests/baselines/reference/functionCall14.js index 47447f46db5..f3af9f65436 100644 --- a/tests/baselines/reference/functionCall14.js +++ b/tests/baselines/reference/functionCall14.js @@ -8,12 +8,7 @@ foo('foo', 1, 3); //// [functionCall14.js] -function foo(a) { - var b = []; - for (var _i = 1; _i < arguments.length; _i++) { - b[_i - 1] = arguments[_i]; - } -} +function foo(a) { } foo('foo', 1); foo('foo'); foo(); diff --git a/tests/baselines/reference/functionCall15.js b/tests/baselines/reference/functionCall15.js index 28fa4c917c8..baef02be27d 100644 --- a/tests/baselines/reference/functionCall15.js +++ b/tests/baselines/reference/functionCall15.js @@ -2,9 +2,4 @@ function foo(a?:string, b?:number, ...b:number[]){} //// [functionCall15.js] -function foo(a, b) { - var b = []; - for (var _i = 2; _i < arguments.length; _i++) { - b[_i - 2] = arguments[_i]; - } -} +function foo(a, b) { } diff --git a/tests/baselines/reference/functionCall16.js b/tests/baselines/reference/functionCall16.js index 187572a9a7e..d9b416581a7 100644 --- a/tests/baselines/reference/functionCall16.js +++ b/tests/baselines/reference/functionCall16.js @@ -9,12 +9,7 @@ foo('foo', 'bar', 3); //// [functionCall16.js] -function foo(a, b) { - var c = []; - for (var _i = 2; _i < arguments.length; _i++) { - c[_i - 2] = arguments[_i]; - } -} +function foo(a, b) { } foo('foo', 1); foo('foo'); foo('foo', 'bar'); diff --git a/tests/baselines/reference/functionCall17.js b/tests/baselines/reference/functionCall17.js index 73f7fd6070b..62495358210 100644 --- a/tests/baselines/reference/functionCall17.js +++ b/tests/baselines/reference/functionCall17.js @@ -9,12 +9,7 @@ foo('foo', 'bar', 3, 4); //// [functionCall17.js] -function foo(a, b, c) { - var d = []; - for (var _i = 3; _i < arguments.length; _i++) { - d[_i - 3] = arguments[_i]; - } -} +function foo(a, b, c) { } foo('foo', 1); foo('foo'); foo(); diff --git a/tests/baselines/reference/functionCall6.js b/tests/baselines/reference/functionCall6.js index 21582666b94..01197a5fd8d 100644 --- a/tests/baselines/reference/functionCall6.js +++ b/tests/baselines/reference/functionCall6.js @@ -7,8 +7,7 @@ foo(); //// [functionCall6.js] -function foo(a) { -} +function foo(a) { } ; foo('bar'); foo(2); diff --git a/tests/baselines/reference/functionCall8.js b/tests/baselines/reference/functionCall8.js index 7eb5a9f60d9..5859fdfb375 100644 --- a/tests/baselines/reference/functionCall8.js +++ b/tests/baselines/reference/functionCall8.js @@ -7,8 +7,7 @@ foo(); //// [functionCall8.js] -function foo(a) { -} +function foo(a) { } foo('foo'); foo('foo', 'bar'); foo(4); diff --git a/tests/baselines/reference/functionCall9.js b/tests/baselines/reference/functionCall9.js index d2d81a3ca04..bc7e112f0c8 100644 --- a/tests/baselines/reference/functionCall9.js +++ b/tests/baselines/reference/functionCall9.js @@ -7,8 +7,7 @@ foo('foo', 1, 'bar'); foo(); //// [functionCall9.js] -function foo(a, b) { -} +function foo(a, b) { } ; foo('foo', 1); foo('foo'); diff --git a/tests/baselines/reference/functionConstraintSatisfaction2.js b/tests/baselines/reference/functionConstraintSatisfaction2.js index e204b6c0adb..982dcb37a49 100644 --- a/tests/baselines/reference/functionConstraintSatisfaction2.js +++ b/tests/baselines/reference/functionConstraintSatisfaction2.js @@ -46,10 +46,8 @@ function foo(x) { return x; } foo(1); -foo(function () { -}, 1); -foo(1, function () { -}); +foo(function () { }, 1); +foo(1, function () { }); function foo2(x) { return x; } diff --git a/tests/baselines/reference/functionExpressionAndLambdaMatchesFunction.js b/tests/baselines/reference/functionExpressionAndLambdaMatchesFunction.js index 358b8509ceb..fe10f96f7bb 100644 --- a/tests/baselines/reference/functionExpressionAndLambdaMatchesFunction.js +++ b/tests/baselines/reference/functionExpressionAndLambdaMatchesFunction.js @@ -15,8 +15,7 @@ var CDoc = (function () { function doSomething(a) { } doSomething(function () { return undefined; }); - doSomething(function () { - }); + doSomething(function () { }); } return CDoc; })(); diff --git a/tests/baselines/reference/functionImplementations.js b/tests/baselines/reference/functionImplementations.js index 7c7b753a880..c478f892fd5 100644 --- a/tests/baselines/reference/functionImplementations.js +++ b/tests/baselines/reference/functionImplementations.js @@ -164,8 +164,7 @@ var __extends = this.__extends || function (d, b) { d.prototype = new __(); }; // FunctionExpression with no return type annotation and no return statement returns void -var v = function () { -}(); +var v = function () { }(); // FunctionExpression f with no return type annotation and directly references f in its body returns any var a = function f() { return f; diff --git a/tests/baselines/reference/functionNameConflicts.js b/tests/baselines/reference/functionNameConflicts.js index 99ede14dfde..87b61e3733d 100644 --- a/tests/baselines/reference/functionNameConflicts.js +++ b/tests/baselines/reference/functionNameConflicts.js @@ -32,22 +32,17 @@ function overrr() { //Function overload with different name from implementation signature var M; (function (M) { - function fn1() { - } + function fn1() { } var fn1; var fn2; - function fn2() { - } + function fn2() { } })(M || (M = {})); -function fn3() { -} +function fn3() { } var fn3; function func() { var fn4; - function fn4() { - } - function fn5() { - } + function fn4() { } + function fn5() { } var fn5; } function overrr() { diff --git a/tests/baselines/reference/functionOverloadAmbiguity1.js b/tests/baselines/reference/functionOverloadAmbiguity1.js index d53ec68c9d9..f2fa78e1c14 100644 --- a/tests/baselines/reference/functionOverloadAmbiguity1.js +++ b/tests/baselines/reference/functionOverloadAmbiguity1.js @@ -11,13 +11,11 @@ callb2((a) => { a.length; } ); // ok, chose first overload //// [functionOverloadAmbiguity1.js] -function callb(a) { -} +function callb(a) { } callb(function (a) { a.length; }); // error, chose first overload -function callb2(a) { -} +function callb2(a) { } callb2(function (a) { a.length; }); // ok, chose first overload diff --git a/tests/baselines/reference/functionOverloadErrors.js b/tests/baselines/reference/functionOverloadErrors.js index 623b0e6f4dc..b0c0f449456 100644 --- a/tests/baselines/reference/functionOverloadErrors.js +++ b/tests/baselines/reference/functionOverloadErrors.js @@ -119,8 +119,7 @@ function initExpr() { } //// [functionOverloadErrors.js] -function fn1() { -} +function fn1() { } function fn2a() { } function fn2b() { @@ -128,52 +127,37 @@ function fn2b() { function fn3() { return null; } -function fn6() { -} -function fn7() { -} -function fn8() { -} -function fn9() { -} -function fn10() { -} -function fn11() { -} -function fn12() { -} +function fn6() { } +function fn7() { } +function fn8() { } +function fn9() { } +function fn10() { } +function fn11() { } +function fn12() { } //Function overloads that differ by accessibility var cls = (function () { function cls() { } - cls.prototype.f = function () { - }; - cls.prototype.g = function () { - }; + cls.prototype.f = function () { }; + cls.prototype.g = function () { }; return cls; })(); //Function overloads with differing export var M; (function (M) { - function fn1() { - } - function fn2() { - } + function fn1() { } + function fn2() { } M.fn2 = fn2; })(M || (M = {})); -function dfn1() { -} -function dfn2() { -} +function dfn1() { } +function dfn2() { } function fewerParams(n) { } -function fn13(n) { -} +function fn13(n) { } function fn14() { return 3; } function fn15() { return undefined; } -function initExpr() { -} +function initExpr() { } diff --git a/tests/baselines/reference/functionOverloadErrorsSyntax.js b/tests/baselines/reference/functionOverloadErrorsSyntax.js index 3706f4da744..1a5537d2de2 100644 --- a/tests/baselines/reference/functionOverloadErrorsSyntax.js +++ b/tests/baselines/reference/functionOverloadErrorsSyntax.js @@ -12,9 +12,6 @@ function fn5() { } //// [functionOverloadErrorsSyntax.js] -function fn4a() { -} -function fn4b() { -} -function fn5() { -} +function fn4a() { } +function fn4b() { } +function fn5() { } diff --git a/tests/baselines/reference/functionOverloadImplementationOfWrongName.js b/tests/baselines/reference/functionOverloadImplementationOfWrongName.js index 6b66bc89ffa..465753f1040 100644 --- a/tests/baselines/reference/functionOverloadImplementationOfWrongName.js +++ b/tests/baselines/reference/functionOverloadImplementationOfWrongName.js @@ -4,5 +4,4 @@ function foo(x, y); function bar() { } //// [functionOverloadImplementationOfWrongName.js] -function bar() { -} +function bar() { } diff --git a/tests/baselines/reference/functionOverloadImplementationOfWrongName2.js b/tests/baselines/reference/functionOverloadImplementationOfWrongName2.js index c3008e7a6c2..34cf73d3239 100644 --- a/tests/baselines/reference/functionOverloadImplementationOfWrongName2.js +++ b/tests/baselines/reference/functionOverloadImplementationOfWrongName2.js @@ -4,5 +4,4 @@ function bar() { } function foo(x, y); //// [functionOverloadImplementationOfWrongName2.js] -function bar() { -} +function bar() { } diff --git a/tests/baselines/reference/functionOverloads10.js b/tests/baselines/reference/functionOverloads10.js index 2cd24bcd1cb..08b71698dce 100644 --- a/tests/baselines/reference/functionOverloads10.js +++ b/tests/baselines/reference/functionOverloads10.js @@ -5,5 +5,4 @@ function foo(foo:any){ } //// [functionOverloads10.js] -function foo(foo) { -} +function foo(foo) { } diff --git a/tests/baselines/reference/functionOverloads24.js b/tests/baselines/reference/functionOverloads24.js index 5ff4e248c0a..c7255063174 100644 --- a/tests/baselines/reference/functionOverloads24.js +++ b/tests/baselines/reference/functionOverloads24.js @@ -6,6 +6,5 @@ function foo(bar:any):(a)=>void { return function(){} } //// [functionOverloads24.js] function foo(bar) { - return function () { - }; + return function () { }; } diff --git a/tests/baselines/reference/functionOverloads5.js b/tests/baselines/reference/functionOverloads5.js index 15507a9fb61..b59154d2417 100644 --- a/tests/baselines/reference/functionOverloads5.js +++ b/tests/baselines/reference/functionOverloads5.js @@ -9,7 +9,6 @@ class baz { var baz = (function () { function baz() { } - baz.prototype.foo = function (bar) { - }; + baz.prototype.foo = function (bar) { }; return baz; })(); diff --git a/tests/baselines/reference/functionOverloads6.js b/tests/baselines/reference/functionOverloads6.js index b7f9fd8c1f2..2c19b376dc8 100644 --- a/tests/baselines/reference/functionOverloads6.js +++ b/tests/baselines/reference/functionOverloads6.js @@ -10,7 +10,6 @@ class foo { var foo = (function () { function foo() { } - foo.fnOverload = function (foo) { - }; + foo.fnOverload = function (foo) { }; return foo; })(); diff --git a/tests/baselines/reference/functionReturn.js b/tests/baselines/reference/functionReturn.js index bfcd12e2b95..fbb889589a0 100644 --- a/tests/baselines/reference/functionReturn.js +++ b/tests/baselines/reference/functionReturn.js @@ -15,13 +15,11 @@ function f5(): string { } //// [functionReturn.js] -function f0() { -} +function f0() { } function f1() { var n = f0(); } -function f2() { -} +function f2() { } function f3() { return; } diff --git a/tests/baselines/reference/functionType.js b/tests/baselines/reference/functionType.js index c2d6eea784c..6e3edc7347e 100644 --- a/tests/baselines/reference/functionType.js +++ b/tests/baselines/reference/functionType.js @@ -7,7 +7,6 @@ salt.apply("hello", []); //// [functionType.js] -function salt() { -} +function salt() { } salt.apply("hello", []); (new Function("return 5"))(); diff --git a/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.js b/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.js index 6bca14b063b..dae960bad68 100644 --- a/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.js +++ b/tests/baselines/reference/functionWithAnyReturnTypeAndNoReturnExpression.js @@ -6,9 +6,6 @@ var f3 = (): any => { }; //// [functionWithAnyReturnTypeAndNoReturnExpression.js] // All should be allowed -function f() { -} -var f2 = function () { -}; -var f3 = function () { -}; +function f() { } +var f2 = function () { }; +var f3 = function () { }; diff --git a/tests/baselines/reference/functionWithMultipleReturnStatements2.js b/tests/baselines/reference/functionWithMultipleReturnStatements2.js index 396c4a8d9c0..4674c6db953 100644 --- a/tests/baselines/reference/functionWithMultipleReturnStatements2.js +++ b/tests/baselines/reference/functionWithMultipleReturnStatements2.js @@ -166,22 +166,18 @@ function f10() { // returns number => void function f11() { if (true) { - return function (x) { - }; + return function (x) { }; } else { - return function (x) { - }; + return function (x) { }; } } // returns Object => void function f12() { if (true) { - return function (x) { - }; + return function (x) { }; } else { - return function (x) { - }; + return function (x) { }; } } diff --git a/tests/baselines/reference/functionsWithModifiersInBlocks1.js b/tests/baselines/reference/functionsWithModifiersInBlocks1.js index 1d381bccfe1..757fe509747 100644 --- a/tests/baselines/reference/functionsWithModifiersInBlocks1.js +++ b/tests/baselines/reference/functionsWithModifiersInBlocks1.js @@ -7,7 +7,6 @@ //// [functionsWithModifiersInBlocks1.js] { - function f() { - } + function f() { } exports.f = f; } diff --git a/tests/baselines/reference/funduleSplitAcrossFiles.js b/tests/baselines/reference/funduleSplitAcrossFiles.js index 330fbcdec74..bb59338a630 100644 --- a/tests/baselines/reference/funduleSplitAcrossFiles.js +++ b/tests/baselines/reference/funduleSplitAcrossFiles.js @@ -10,8 +10,7 @@ module D { D.y; //// [funduleSplitAcrossFiles_function.js] -function D() { -} +function D() { } //// [funduleSplitAcrossFiles_module.js] var D; (function (D) { diff --git a/tests/baselines/reference/generatedContextualTyping.js b/tests/baselines/reference/generatedContextualTyping.js index ddba62543b5..68cc22ff45e 100644 --- a/tests/baselines/reference/generatedContextualTyping.js +++ b/tests/baselines/reference/generatedContextualTyping.js @@ -1195,55 +1195,18 @@ var x120 = (function () { } return x120; })(); -function x121(parm) { - if (parm === void 0) { parm = function () { return [d1, d2]; }; } -} -function x122(parm) { - if (parm === void 0) { parm = function () { - return [d1, d2]; - }; } -} -function x123(parm) { - if (parm === void 0) { parm = function named() { - return [d1, d2]; - }; } -} -function x124(parm) { - if (parm === void 0) { parm = function () { return [d1, d2]; }; } -} -function x125(parm) { - if (parm === void 0) { parm = function () { - return [d1, d2]; - }; } -} -function x126(parm) { - if (parm === void 0) { parm = function named() { - return [d1, d2]; - }; } -} -function x127(parm) { - if (parm === void 0) { parm = [d1, d2]; } -} -function x128(parm) { - if (parm === void 0) { parm = [d1, d2]; } -} -function x129(parm) { - if (parm === void 0) { parm = [d1, d2]; } -} -function x130(parm) { - if (parm === void 0) { parm = { n: [d1, d2] }; } -} -function x131(parm) { - if (parm === void 0) { parm = function (n) { - var n; - return null; - }; } -} -function x132(parm) { - if (parm === void 0) { parm = { func: function (n) { - return [d1, d2]; - } }; } -} +function x121(parm) { } +function x122(parm) { } +function x123(parm) { } +function x124(parm) { } +function x125(parm) { } +function x126(parm) { } +function x127(parm) { } +function x128(parm) { } +function x129(parm) { } +function x130(parm) { } +function x131(parm) { } +function x132(parm) { } function x133() { return function () { return [d1, d2]; }; } @@ -1842,63 +1805,51 @@ var x319 = true ? function (n) { var x320 = true ? { func: function (n) { return [d1, d2]; } } : undefined; -function x321(n) { -} +function x321(n) { } ; x321(function () { return [d1, d2]; }); -function x322(n) { -} +function x322(n) { } ; x322(function () { return [d1, d2]; }); -function x323(n) { -} +function x323(n) { } ; x323(function named() { return [d1, d2]; }); -function x324(n) { -} +function x324(n) { } ; x324(function () { return [d1, d2]; }); -function x325(n) { -} +function x325(n) { } ; x325(function () { return [d1, d2]; }); -function x326(n) { -} +function x326(n) { } ; x326(function named() { return [d1, d2]; }); -function x327(n) { -} +function x327(n) { } ; x327([d1, d2]); -function x328(n) { -} +function x328(n) { } ; x328([d1, d2]); -function x329(n) { -} +function x329(n) { } ; x329([d1, d2]); -function x330(n) { -} +function x330(n) { } ; x330({ n: [d1, d2] }); -function x331(n) { -} +function x331(n) { } ; x331(function (n) { var n; return null; }); -function x332(n) { -} +function x332(n) { } ; x332({ func: function (n) { return [d1, d2]; @@ -1940,52 +1891,40 @@ var x344 = function (n) { return n; }; x344({ func: function (n) { return [d1, d2]; } }); -var x345 = function (n) { -}; +var x345 = function (n) { }; x345(function () { return [d1, d2]; }); -var x346 = function (n) { -}; +var x346 = function (n) { }; x346(function () { return [d1, d2]; }); -var x347 = function (n) { -}; +var x347 = function (n) { }; x347(function named() { return [d1, d2]; }); -var x348 = function (n) { -}; +var x348 = function (n) { }; x348(function () { return [d1, d2]; }); -var x349 = function (n) { -}; +var x349 = function (n) { }; x349(function () { return [d1, d2]; }); -var x350 = function (n) { -}; +var x350 = function (n) { }; x350(function named() { return [d1, d2]; }); -var x351 = function (n) { -}; +var x351 = function (n) { }; x351([d1, d2]); -var x352 = function (n) { -}; +var x352 = function (n) { }; x352([d1, d2]); -var x353 = function (n) { -}; +var x353 = function (n) { }; x353([d1, d2]); -var x354 = function (n) { -}; +var x354 = function (n) { }; x354({ n: [d1, d2] }); -var x355 = function (n) { -}; +var x355 = function (n) { }; x355(function (n) { var n; return null; }); -var x356 = function (n) { -}; +var x356 = function (n) { }; x356({ func: function (n) { return [d1, d2]; } }); diff --git a/tests/baselines/reference/generativeRecursionWithTypeOf.js b/tests/baselines/reference/generativeRecursionWithTypeOf.js index 599751ebde7..2b7eebfd11c 100644 --- a/tests/baselines/reference/generativeRecursionWithTypeOf.js +++ b/tests/baselines/reference/generativeRecursionWithTypeOf.js @@ -14,8 +14,7 @@ module M { var C = (function () { function C() { } - C.foo = function (x) { - }; + C.foo = function (x) { }; return C; })(); var M; diff --git a/tests/baselines/reference/genericAssignmentCompatOfFunctionSignatures1.js b/tests/baselines/reference/genericAssignmentCompatOfFunctionSignatures1.js index 6f1928a2601..9b7d5b713e9 100644 --- a/tests/baselines/reference/genericAssignmentCompatOfFunctionSignatures1.js +++ b/tests/baselines/reference/genericAssignmentCompatOfFunctionSignatures1.js @@ -6,9 +6,7 @@ x1 = x2; x2 = x1; //// [genericAssignmentCompatOfFunctionSignatures1.js] -var x1 = function foo3(x, z) { -}; -var x2 = function foo3(x, z) { -}; +var x1 = function foo3(x, z) { }; +var x2 = function foo3(x, z) { }; x1 = x2; x2 = x1; diff --git a/tests/baselines/reference/genericCallWithFixedArguments.js b/tests/baselines/reference/genericCallWithFixedArguments.js index 10c0e2b496b..e588c0d113d 100644 --- a/tests/baselines/reference/genericCallWithFixedArguments.js +++ b/tests/baselines/reference/genericCallWithFixedArguments.js @@ -11,17 +11,14 @@ g(7) // the parameter list is fixed, so this should not error var A = (function () { function A() { } - A.prototype.foo = function () { - }; + A.prototype.foo = function () { }; return A; })(); var B = (function () { function B() { } - B.prototype.bar = function () { - }; + B.prototype.bar = function () { }; return B; })(); -function g(x) { -} +function g(x) { } g(7); // the parameter list is fixed, so this should not error diff --git a/tests/baselines/reference/genericCallWithNonGenericArgs1.js b/tests/baselines/reference/genericCallWithNonGenericArgs1.js index 2282c64e851..4f5239630ae 100644 --- a/tests/baselines/reference/genericCallWithNonGenericArgs1.js +++ b/tests/baselines/reference/genericCallWithNonGenericArgs1.js @@ -4,6 +4,5 @@ f(null) //// [genericCallWithNonGenericArgs1.js] -function f(x) { -} +function f(x) { } f(null); diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints4.js b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints4.js index 513a0317cf3..10d32ddeae7 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints4.js +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints4.js @@ -57,11 +57,8 @@ var r4 = foo(null, null); var r5 = foo({}, null); var r6 = foo(null, {}); var r7 = foo({}, {}); -var r8 = foo(function () { -}, function () { -}); -var r9 = foo(function () { -}, function () { return 1; }); +var r8 = foo(function () { }, function () { }); +var r9 = foo(function () { }, function () { return 1; }); function other() { var r4 = foo(c, d); var r5 = foo(c, d); // error diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints5.js b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints5.js index b2cda6e2d81..95b98767a09 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints5.js +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndConstraints5.js @@ -42,8 +42,7 @@ function foo(t, t2) { var c; var d; var r2 = foo(d, c); // the constraints are self-referencing, no downstream error -var r9 = foo(function () { return 1; }, function () { -}); // the constraints are self-referencing, no downstream error +var r9 = foo(function () { return 1; }, function () { }); // the constraints are self-referencing, no downstream error function other() { var r5 = foo(c, d); // error } diff --git a/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.js b/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.js index ae104470b76..dffd3641079 100644 --- a/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.js +++ b/tests/baselines/reference/genericCallWithObjectTypeArgsAndInitializers.js @@ -19,18 +19,8 @@ function foo2(x) { if (x === void 0) { x = undefined; } return x; } // ok -function foo3(x) { - if (x === void 0) { x = 1; } -} // error -function foo4(x, y) { - if (y === void 0) { y = x; } -} // error -function foo5(x, y) { - if (y === void 0) { y = x; } -} // ok -function foo6(x, y, z) { - if (z === void 0) { z = y; } -} // error -function foo7(x, y) { - if (y === void 0) { y = x; } -} // should be ok +function foo3(x) { } // error +function foo4(x, y) { } // error +function foo5(x, y) { } // ok +function foo6(x, y, z) { } // error +function foo7(x, y) { } // should be ok diff --git a/tests/baselines/reference/genericCallbacksAndClassHierarchy.js b/tests/baselines/reference/genericCallbacksAndClassHierarchy.js index 682cd6010f1..e63c7a98272 100644 --- a/tests/baselines/reference/genericCallbacksAndClassHierarchy.js +++ b/tests/baselines/reference/genericCallbacksAndClassHierarchy.js @@ -56,13 +56,11 @@ var M; function D() { } D.prototype._subscribe = function (viewModel) { - var f = function (newValue) { - }; + var f = function (newValue) { }; var v = viewModel.value; // both of these should work v.subscribe(f); - v.subscribe(function (newValue) { - }); + v.subscribe(function (newValue) { }); }; return D; })(); diff --git a/tests/baselines/reference/genericCallsWithoutParens.js b/tests/baselines/reference/genericCallsWithoutParens.js index e51ed55224c..a479fbab375 100644 --- a/tests/baselines/reference/genericCallsWithoutParens.js +++ b/tests/baselines/reference/genericCallsWithoutParens.js @@ -10,8 +10,7 @@ var c = new C; // parse error //// [genericCallsWithoutParens.js] -function f() { -} +function f() { } var r = f(); // parse error var C = (function () { function C() { diff --git a/tests/baselines/reference/genericClassPropertyInheritanceSpecialization.js b/tests/baselines/reference/genericClassPropertyInheritanceSpecialization.js index 8d1e87cb495..5aa2c716986 100644 --- a/tests/baselines/reference/genericClassPropertyInheritanceSpecialization.js +++ b/tests/baselines/reference/genericClassPropertyInheritanceSpecialization.js @@ -91,8 +91,7 @@ var Portal; var Validator = (function () { function Validator(message) { } - Validator.prototype.destroy = function () { - }; + Validator.prototype.destroy = function () { }; Validator.prototype._validate = function (value) { return 0; }; diff --git a/tests/baselines/reference/genericClassWithStaticsUsingTypeArguments.js b/tests/baselines/reference/genericClassWithStaticsUsingTypeArguments.js index 57d33a35990..2fd410756b6 100644 --- a/tests/baselines/reference/genericClassWithStaticsUsingTypeArguments.js +++ b/tests/baselines/reference/genericClassWithStaticsUsingTypeArguments.js @@ -25,8 +25,7 @@ var Foo = (function () { Foo.f = function (xs) { return xs.reverse(); }; - Foo.a = function (n) { - }; + Foo.a = function (n) { }; Foo.c = []; Foo.d = false || (function (x) { return x || undefined; })(null); Foo.e = function (x) { diff --git a/tests/baselines/reference/genericCloduleInModule.js b/tests/baselines/reference/genericCloduleInModule.js index f3938735695..92c519aa012 100644 --- a/tests/baselines/reference/genericCloduleInModule.js +++ b/tests/baselines/reference/genericCloduleInModule.js @@ -18,10 +18,8 @@ var A; var B = (function () { function B() { } - B.prototype.foo = function () { - }; - B.bar = function () { - }; + B.prototype.foo = function () { }; + B.bar = function () { }; return B; })(); A.B = B; diff --git a/tests/baselines/reference/genericCloduleInModule2.js b/tests/baselines/reference/genericCloduleInModule2.js index 1cb3bd66403..bb8021ffe8c 100644 --- a/tests/baselines/reference/genericCloduleInModule2.js +++ b/tests/baselines/reference/genericCloduleInModule2.js @@ -21,10 +21,8 @@ var A; var B = (function () { function B() { } - B.prototype.foo = function () { - }; - B.bar = function () { - }; + B.prototype.foo = function () { }; + B.bar = function () { }; return B; })(); A.B = B; diff --git a/tests/baselines/reference/genericFunctionHasFreshTypeArgs.js b/tests/baselines/reference/genericFunctionHasFreshTypeArgs.js index b8b52179c71..30d57403aec 100644 --- a/tests/baselines/reference/genericFunctionHasFreshTypeArgs.js +++ b/tests/baselines/reference/genericFunctionHasFreshTypeArgs.js @@ -3,7 +3,6 @@ function f(p: (x: T) => void) { }; f(x => f(y => x = y)); //// [genericFunctionHasFreshTypeArgs.js] -function f(p) { -} +function f(p) { } ; f(function (x) { return f(function (y) { return x = y; }); }); diff --git a/tests/baselines/reference/genericFunctionSpecializations1.js b/tests/baselines/reference/genericFunctionSpecializations1.js index 2935959b69e..c1043f792b6 100644 --- a/tests/baselines/reference/genericFunctionSpecializations1.js +++ b/tests/baselines/reference/genericFunctionSpecializations1.js @@ -6,7 +6,5 @@ function foo4(test: string); // valid function foo4(test: T) { } //// [genericFunctionSpecializations1.js] -function foo3(test) { -} -function foo4(test) { -} +function foo3(test) { } +function foo4(test) { } diff --git a/tests/baselines/reference/genericFunctionsWithOptionalParameters3.js b/tests/baselines/reference/genericFunctionsWithOptionalParameters3.js index 2a5ce0a333c..d2e1a5ecc37 100644 --- a/tests/baselines/reference/genericFunctionsWithOptionalParameters3.js +++ b/tests/baselines/reference/genericFunctionsWithOptionalParameters3.js @@ -19,8 +19,7 @@ var r5 = utils.mapReduce(c, f1, f2); var Collection = (function () { function Collection() { } - Collection.prototype.add = function (x) { - }; + Collection.prototype.add = function (x) { }; return Collection; })(); var utils; diff --git a/tests/baselines/reference/genericOfACloduleType1.js b/tests/baselines/reference/genericOfACloduleType1.js index 435575b0152..85629db765b 100644 --- a/tests/baselines/reference/genericOfACloduleType1.js +++ b/tests/baselines/reference/genericOfACloduleType1.js @@ -26,8 +26,7 @@ var M; var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); M.C = C; diff --git a/tests/baselines/reference/genericOfACloduleType2.js b/tests/baselines/reference/genericOfACloduleType2.js index 4c73addcf72..0b10451bf2c 100644 --- a/tests/baselines/reference/genericOfACloduleType2.js +++ b/tests/baselines/reference/genericOfACloduleType2.js @@ -29,8 +29,7 @@ var M; var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); M.C = C; diff --git a/tests/baselines/reference/genericOverloadSignatures.js b/tests/baselines/reference/genericOverloadSignatures.js index ec4c9ba74dc..45a21d5a334 100644 --- a/tests/baselines/reference/genericOverloadSignatures.js +++ b/tests/baselines/reference/genericOverloadSignatures.js @@ -31,8 +31,7 @@ interface D { } //// [genericOverloadSignatures.js] -function f(a) { -} +function f(a) { } var C2 = (function () { function C2() { } diff --git a/tests/baselines/reference/genericTypeAssertions1.js b/tests/baselines/reference/genericTypeAssertions1.js index 02a22aa5c81..54637007d99 100644 --- a/tests/baselines/reference/genericTypeAssertions1.js +++ b/tests/baselines/reference/genericTypeAssertions1.js @@ -8,8 +8,7 @@ var r2: A = >>foo; // error var A = (function () { function A() { } - A.prototype.foo = function (x) { - }; + A.prototype.foo = function (x) { }; return A; })(); var foo = new A(); diff --git a/tests/baselines/reference/genericTypeAssertions2.js b/tests/baselines/reference/genericTypeAssertions2.js index c7acecb5e43..3c904c7a30e 100644 --- a/tests/baselines/reference/genericTypeAssertions2.js +++ b/tests/baselines/reference/genericTypeAssertions2.js @@ -23,8 +23,7 @@ var __extends = this.__extends || function (d, b) { var A = (function () { function A() { } - A.prototype.foo = function (x) { - }; + A.prototype.foo = function (x) { }; return A; })(); var B = (function (_super) { diff --git a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.js b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.js index dbda6074830..1b41116732a 100644 --- a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.js +++ b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument.js @@ -95,9 +95,7 @@ var D3 = (function () { } return D3; })(); -function h(x) { -} -function i(x) { -} +function h(x) { } +function i(x) { } var j = null; var k = null; diff --git a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.js b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.js index f6a22073702..f96e25301be 100644 --- a/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.js +++ b/tests/baselines/reference/genericTypeReferenceWithoutTypeArgument2.js @@ -76,9 +76,7 @@ var D2 = (function (_super) { } return D2; })(M.C); -function h(x) { -} -function i(x) { -} +function h(x) { } +function i(x) { } var j = null; var k = null; diff --git a/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.js b/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.js index 4cd7eb4165b..1a57b866d99 100644 --- a/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.js +++ b/tests/baselines/reference/genericTypeWithNonGenericBaseMisMatch.js @@ -13,8 +13,7 @@ var i: I = x; // Should not be allowed -- type of 'f' is incompatible with 'I' var X = (function () { function X() { } - X.prototype.f = function (a) { - }; + X.prototype.f = function (a) { }; return X; })(); var x = new X(); diff --git a/tests/baselines/reference/genericWithIndexerOfTypeParameterType2.js b/tests/baselines/reference/genericWithIndexerOfTypeParameterType2.js index f0a57430546..fdd2e470a55 100644 --- a/tests/baselines/reference/genericWithIndexerOfTypeParameterType2.js +++ b/tests/baselines/reference/genericWithIndexerOfTypeParameterType2.js @@ -33,8 +33,7 @@ define(["require", "exports"], function (require, exports) { function List() { _super.apply(this, arguments); } - List.prototype.Bar = function () { - }; + List.prototype.Bar = function () { }; return List; })(Collection); exports.List = List; diff --git a/tests/baselines/reference/genericsWithDuplicateTypeParameters1.js b/tests/baselines/reference/genericsWithDuplicateTypeParameters1.js index f7f638f10e0..f01f01dbf21 100644 --- a/tests/baselines/reference/genericsWithDuplicateTypeParameters1.js +++ b/tests/baselines/reference/genericsWithDuplicateTypeParameters1.js @@ -17,24 +17,21 @@ var m = { } //// [genericsWithDuplicateTypeParameters1.js] -function f() { -} +function f() { } function f2(a, b) { return null; } var C = (function () { function C() { } - C.prototype.f = function () { - }; + C.prototype.f = function () { }; C.prototype.f2 = function (a, b) { return null; }; return C; })(); var m = { - a: function f() { - }, + a: function f() { }, b: function f2(a, b) { return null; } diff --git a/tests/baselines/reference/genericsWithoutTypeParameters1.js b/tests/baselines/reference/genericsWithoutTypeParameters1.js index c06dfff13d1..8446d40cb11 100644 --- a/tests/baselines/reference/genericsWithoutTypeParameters1.js +++ b/tests/baselines/reference/genericsWithoutTypeParameters1.js @@ -46,10 +46,8 @@ var c1; var i1; var c2; var i2; -function foo(x, y) { -} -function foo2(x, y) { -} +function foo(x, y) { } +function foo2(x, y) { } var x = { a: new C() }; var x2 = { a: { bar: function () { return 1; diff --git a/tests/baselines/reference/getAndSetAsMemberNames.js b/tests/baselines/reference/getAndSetAsMemberNames.js index 22f99920fb1..41a89e6ec37 100644 --- a/tests/baselines/reference/getAndSetAsMemberNames.js +++ b/tests/baselines/reference/getAndSetAsMemberNames.js @@ -57,8 +57,7 @@ var C5 = (function () { return true; }; Object.defineProperty(C5.prototype, "t", { - set: function (x) { - }, + set: function (x) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/getAndSetNotIdenticalType.js b/tests/baselines/reference/getAndSetNotIdenticalType.js index 7e77fc25d0b..e6eb7fecc86 100644 --- a/tests/baselines/reference/getAndSetNotIdenticalType.js +++ b/tests/baselines/reference/getAndSetNotIdenticalType.js @@ -14,8 +14,7 @@ var C = (function () { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/getterSetterNonAccessor.js b/tests/baselines/reference/getterSetterNonAccessor.js index e234574d734..e32c62c497e 100644 --- a/tests/baselines/reference/getterSetterNonAccessor.js +++ b/tests/baselines/reference/getterSetterNonAccessor.js @@ -13,8 +13,7 @@ Object.defineProperty({}, "0", ({ function getFunc() { return 0; } -function setFunc(v) { -} +function setFunc(v) { } Object.defineProperty({}, "0", ({ get: getFunc, set: setFunc, diff --git a/tests/baselines/reference/gettersAndSetters.js b/tests/baselines/reference/gettersAndSetters.js index 4c94cbc43db..6fb9518cfdb 100644 --- a/tests/baselines/reference/gettersAndSetters.js +++ b/tests/baselines/reference/gettersAndSetters.js @@ -46,10 +46,8 @@ var C = (function () { function C() { this.fooBack = ""; this.bazBack = ""; - this.get = function () { - }; // ok - this.set = function () { - }; // ok + this.get = function () { }; // ok + this.set = function () { }; // ok } Object.defineProperty(C.prototype, "Foo", { get: function () { diff --git a/tests/baselines/reference/gettersAndSettersAccessibility.js b/tests/baselines/reference/gettersAndSettersAccessibility.js index 9a7564ec96d..f472fa36a98 100644 --- a/tests/baselines/reference/gettersAndSettersAccessibility.js +++ b/tests/baselines/reference/gettersAndSettersAccessibility.js @@ -13,8 +13,7 @@ var C99 = (function () { get: function () { return 0; }, - set: function (n) { - } // error - accessors do not agree in visibility + set: function (n) { } // error - accessors do not agree in visibility , enumerable: true, configurable: true diff --git a/tests/baselines/reference/gettersAndSettersErrors.js b/tests/baselines/reference/gettersAndSettersErrors.js index 514a69b2513..545517facea 100644 --- a/tests/baselines/reference/gettersAndSettersErrors.js +++ b/tests/baselines/reference/gettersAndSettersErrors.js @@ -26,8 +26,7 @@ var C = (function () { return "foo"; } // ok , - set: function (foo) { - } // ok + set: function (foo) { } // ok , enumerable: true, configurable: true @@ -37,8 +36,7 @@ var C = (function () { return null; } // error - getters must not have a parameter , - set: function (v) { - } // error - setters must not specify a return type + set: function (v) { } // error - setters must not specify a return type , enumerable: true, configurable: true @@ -52,8 +50,7 @@ var E = (function () { get: function () { return 0; }, - set: function (n) { - } // error - accessors do not agree in visibility + set: function (n) { } // error - accessors do not agree in visibility , enumerable: true, configurable: true diff --git a/tests/baselines/reference/gettersAndSettersTypesAgree.js b/tests/baselines/reference/gettersAndSettersTypesAgree.js index 48c0ac1500c..c291c457613 100644 --- a/tests/baselines/reference/gettersAndSettersTypesAgree.js +++ b/tests/baselines/reference/gettersAndSettersTypesAgree.js @@ -19,8 +19,7 @@ var C = (function () { return "foo"; } // ok , - set: function (foo) { - } // ok - type inferred from getter return statement + set: function (foo) { } // ok - type inferred from getter return statement , enumerable: true, configurable: true @@ -30,8 +29,7 @@ var C = (function () { return "foo"; } // ok , - set: function (bar) { - } // ok - type must be declared + set: function (bar) { } // ok - type must be declared , enumerable: true, configurable: true @@ -40,9 +38,7 @@ var C = (function () { })(); var o1 = { get Foo() { return 0; -}, set Foo(val) { -} }; // ok - types agree (inference) +}, set Foo(val) { } }; // ok - types agree (inference) var o2 = { get Foo() { return 0; -}, set Foo(val) { -} }; // ok - types agree +}, set Foo(val) { } }; // ok - types agree diff --git a/tests/baselines/reference/giant.js b/tests/baselines/reference/giant.js index b16d0f5231c..7f2c2453b0f 100644 --- a/tests/baselines/reference/giant.js +++ b/tests/baselines/reference/giant.js @@ -697,60 +697,50 @@ define(["require", "exports"], function (require, exports) { MAX DEPTH 3 LEVELS */ var V; - function F() { - } + function F() { } ; var C = (function () { function C() { } - C.prototype.pF = function () { - }; - C.prototype.rF = function () { - }; - C.prototype.pgF = function () { - }; + C.prototype.pF = function () { }; + C.prototype.rF = function () { }; + C.prototype.pgF = function () { }; Object.defineProperty(C.prototype, "pgF", { get: function () { }, enumerable: true, configurable: true }); - C.prototype.psF = function (param) { - }; + C.prototype.psF = function (param) { }; Object.defineProperty(C.prototype, "psF", { set: function (param) { }, enumerable: true, configurable: true }); - C.prototype.rgF = function () { - }; + C.prototype.rgF = function () { }; Object.defineProperty(C.prototype, "rgF", { get: function () { }, enumerable: true, configurable: true }); - C.prototype.rsF = function (param) { - }; + C.prototype.rsF = function (param) { }; Object.defineProperty(C.prototype, "rsF", { set: function (param) { }, enumerable: true, configurable: true }); - C.tF = function () { - }; - C.tsF = function (param) { - }; + C.tF = function () { }; + C.tsF = function (param) { }; Object.defineProperty(C, "tsF", { set: function (param) { }, enumerable: true, configurable: true }); - C.tgF = function () { - }; + C.tgF = function () { }; Object.defineProperty(C, "tgF", { get: function () { }, @@ -762,60 +752,50 @@ define(["require", "exports"], function (require, exports) { var M; (function (_M) { var V; - function F() { - } + function F() { } ; var C = (function () { function C() { } - C.prototype.pF = function () { - }; - C.prototype.rF = function () { - }; - C.prototype.pgF = function () { - }; + C.prototype.pF = function () { }; + C.prototype.rF = function () { }; + C.prototype.pgF = function () { }; Object.defineProperty(C.prototype, "pgF", { get: function () { }, enumerable: true, configurable: true }); - C.prototype.psF = function (param) { - }; + C.prototype.psF = function (param) { }; Object.defineProperty(C.prototype, "psF", { set: function (param) { }, enumerable: true, configurable: true }); - C.prototype.rgF = function () { - }; + C.prototype.rgF = function () { }; Object.defineProperty(C.prototype, "rgF", { get: function () { }, enumerable: true, configurable: true }); - C.prototype.rsF = function (param) { - }; + C.prototype.rsF = function (param) { }; Object.defineProperty(C.prototype, "rsF", { set: function (param) { }, enumerable: true, configurable: true }); - C.tF = function () { - }; - C.tsF = function (param) { - }; + C.tF = function () { }; + C.tsF = function (param) { }; Object.defineProperty(C, "tsF", { set: function (param) { }, enumerable: true, configurable: true }); - C.tgF = function () { - }; + C.tgF = function () { }; Object.defineProperty(C, "tgF", { get: function () { }, @@ -827,8 +807,7 @@ define(["require", "exports"], function (require, exports) { var M; (function (M) { var V; - function F() { - } + function F() { } ; var C = (function () { function C() { @@ -839,8 +818,7 @@ define(["require", "exports"], function (require, exports) { ; ; M.eV; - function eF() { - } + function eF() { } M.eF = eF; ; var eC = (function () { @@ -857,61 +835,51 @@ define(["require", "exports"], function (require, exports) { ; })(M || (M = {})); _M.eV; - function eF() { - } + function eF() { } _M.eF = eF; ; var eC = (function () { function eC() { } - eC.prototype.pF = function () { - }; - eC.prototype.rF = function () { - }; - eC.prototype.pgF = function () { - }; + eC.prototype.pF = function () { }; + eC.prototype.rF = function () { }; + eC.prototype.pgF = function () { }; Object.defineProperty(eC.prototype, "pgF", { get: function () { }, enumerable: true, configurable: true }); - eC.prototype.psF = function (param) { - }; + eC.prototype.psF = function (param) { }; Object.defineProperty(eC.prototype, "psF", { set: function (param) { }, enumerable: true, configurable: true }); - eC.prototype.rgF = function () { - }; + eC.prototype.rgF = function () { }; Object.defineProperty(eC.prototype, "rgF", { get: function () { }, enumerable: true, configurable: true }); - eC.prototype.rsF = function (param) { - }; + eC.prototype.rsF = function (param) { }; Object.defineProperty(eC.prototype, "rsF", { set: function (param) { }, enumerable: true, configurable: true }); - eC.tF = function () { - }; - eC.tsF = function (param) { - }; + eC.tF = function () { }; + eC.tsF = function (param) { }; Object.defineProperty(eC, "tsF", { set: function (param) { }, enumerable: true, configurable: true }); - eC.tgF = function () { - }; + eC.tgF = function () { }; Object.defineProperty(eC, "tgF", { get: function () { }, @@ -924,8 +892,7 @@ define(["require", "exports"], function (require, exports) { var eM; (function (eM) { var V; - function F() { - } + function F() { } ; var C = (function () { function C() { @@ -936,8 +903,7 @@ define(["require", "exports"], function (require, exports) { ; ; eM.eV; - function eF() { - } + function eF() { } eM.eF = eF; ; var eC = (function () { @@ -956,61 +922,51 @@ define(["require", "exports"], function (require, exports) { ; })(M || (M = {})); exports.eV; - function eF() { - } + function eF() { } exports.eF = eF; ; var eC = (function () { function eC() { } - eC.prototype.pF = function () { - }; - eC.prototype.rF = function () { - }; - eC.prototype.pgF = function () { - }; + eC.prototype.pF = function () { }; + eC.prototype.rF = function () { }; + eC.prototype.pgF = function () { }; Object.defineProperty(eC.prototype, "pgF", { get: function () { }, enumerable: true, configurable: true }); - eC.prototype.psF = function (param) { - }; + eC.prototype.psF = function (param) { }; Object.defineProperty(eC.prototype, "psF", { set: function (param) { }, enumerable: true, configurable: true }); - eC.prototype.rgF = function () { - }; + eC.prototype.rgF = function () { }; Object.defineProperty(eC.prototype, "rgF", { get: function () { }, enumerable: true, configurable: true }); - eC.prototype.rsF = function (param) { - }; + eC.prototype.rsF = function (param) { }; Object.defineProperty(eC.prototype, "rsF", { set: function (param) { }, enumerable: true, configurable: true }); - eC.tF = function () { - }; - eC.tsF = function (param) { - }; + eC.tF = function () { }; + eC.tsF = function (param) { }; Object.defineProperty(eC, "tsF", { set: function (param) { }, enumerable: true, configurable: true }); - eC.tgF = function () { - }; + eC.tgF = function () { }; Object.defineProperty(eC, "tgF", { get: function () { }, @@ -1023,60 +979,50 @@ define(["require", "exports"], function (require, exports) { var eM; (function (_eM) { var V; - function F() { - } + function F() { } ; var C = (function () { function C() { } - C.prototype.pF = function () { - }; - C.prototype.rF = function () { - }; - C.prototype.pgF = function () { - }; + C.prototype.pF = function () { }; + C.prototype.rF = function () { }; + C.prototype.pgF = function () { }; Object.defineProperty(C.prototype, "pgF", { get: function () { }, enumerable: true, configurable: true }); - C.prototype.psF = function (param) { - }; + C.prototype.psF = function (param) { }; Object.defineProperty(C.prototype, "psF", { set: function (param) { }, enumerable: true, configurable: true }); - C.prototype.rgF = function () { - }; + C.prototype.rgF = function () { }; Object.defineProperty(C.prototype, "rgF", { get: function () { }, enumerable: true, configurable: true }); - C.prototype.rsF = function (param) { - }; + C.prototype.rsF = function (param) { }; Object.defineProperty(C.prototype, "rsF", { set: function (param) { }, enumerable: true, configurable: true }); - C.tF = function () { - }; - C.tsF = function (param) { - }; + C.tF = function () { }; + C.tsF = function (param) { }; Object.defineProperty(C, "tsF", { set: function (param) { }, enumerable: true, configurable: true }); - C.tgF = function () { - }; + C.tgF = function () { }; Object.defineProperty(C, "tgF", { get: function () { }, @@ -1088,8 +1034,7 @@ define(["require", "exports"], function (require, exports) { var M; (function (M) { var V; - function F() { - } + function F() { } ; var C = (function () { function C() { @@ -1100,8 +1045,7 @@ define(["require", "exports"], function (require, exports) { ; ; M.eV; - function eF() { - } + function eF() { } M.eF = eF; ; var eC = (function () { @@ -1118,61 +1062,51 @@ define(["require", "exports"], function (require, exports) { ; })(M || (M = {})); _eM.eV; - function eF() { - } + function eF() { } _eM.eF = eF; ; var eC = (function () { function eC() { } - eC.prototype.pF = function () { - }; - eC.prototype.rF = function () { - }; - eC.prototype.pgF = function () { - }; + eC.prototype.pF = function () { }; + eC.prototype.rF = function () { }; + eC.prototype.pgF = function () { }; Object.defineProperty(eC.prototype, "pgF", { get: function () { }, enumerable: true, configurable: true }); - eC.prototype.psF = function (param) { - }; + eC.prototype.psF = function (param) { }; Object.defineProperty(eC.prototype, "psF", { set: function (param) { }, enumerable: true, configurable: true }); - eC.prototype.rgF = function () { - }; + eC.prototype.rgF = function () { }; Object.defineProperty(eC.prototype, "rgF", { get: function () { }, enumerable: true, configurable: true }); - eC.prototype.rsF = function (param) { - }; + eC.prototype.rsF = function (param) { }; Object.defineProperty(eC.prototype, "rsF", { set: function (param) { }, enumerable: true, configurable: true }); - eC.tF = function () { - }; - eC.tsF = function (param) { - }; + eC.tF = function () { }; + eC.tsF = function (param) { }; Object.defineProperty(eC, "tsF", { set: function (param) { }, enumerable: true, configurable: true }); - eC.tgF = function () { - }; + eC.tgF = function () { }; Object.defineProperty(eC, "tgF", { get: function () { }, @@ -1185,8 +1119,7 @@ define(["require", "exports"], function (require, exports) { var eM; (function (eM) { var V; - function F() { - } + function F() { } ; var C = (function () { function C() { @@ -1197,8 +1130,7 @@ define(["require", "exports"], function (require, exports) { ; ; eM.eV; - function eF() { - } + function eF() { } eM.eF = eF; ; var eC = (function () { diff --git a/tests/baselines/reference/grammarAmbiguities1.js b/tests/baselines/reference/grammarAmbiguities1.js index cb6e4b75473..6ee64527bcc 100644 --- a/tests/baselines/reference/grammarAmbiguities1.js +++ b/tests/baselines/reference/grammarAmbiguities1.js @@ -14,15 +14,13 @@ f(g < A, B > +(7)); var A = (function () { function A() { } - A.prototype.foo = function () { - }; + A.prototype.foo = function () { }; return A; })(); var B = (function () { function B() { } - B.prototype.bar = function () { - }; + B.prototype.bar = function () { }; return B; })(); function f(x) { diff --git a/tests/baselines/reference/heterogeneousArrayAndOverloads.js b/tests/baselines/reference/heterogeneousArrayAndOverloads.js index c44a0921bc6..b816b87e3d1 100644 --- a/tests/baselines/reference/heterogeneousArrayAndOverloads.js +++ b/tests/baselines/reference/heterogeneousArrayAndOverloads.js @@ -15,8 +15,7 @@ class arrTest { var arrTest = (function () { function arrTest() { } - arrTest.prototype.test = function (arg1) { - }; + arrTest.prototype.test = function (arg1) { }; arrTest.prototype.callTest = function () { this.test([1, 2, 3, 5]); this.test(["hi"]); diff --git a/tests/baselines/reference/ifDoWhileStatements.js b/tests/baselines/reference/ifDoWhileStatements.js index 613cbf6f4ec..c7f6ead6b28 100644 --- a/tests/baselines/reference/ifDoWhileStatements.js +++ b/tests/baselines/reference/ifDoWhileStatements.js @@ -219,180 +219,99 @@ var N; N.F2 = F2; })(N || (N = {})); // literals -if (true) { -} -while (true) { -} -do { -} while (true); -if (null) { -} -while (null) { -} -do { -} while (null); -if (undefined) { -} -while (undefined) { -} -do { -} while (undefined); -if (0.0) { -} -while (0.0) { -} -do { -} while (0.0); -if ('a string') { -} -while ('a string') { -} -do { -} while ('a string'); -if ('') { -} -while ('') { -} -do { -} while (''); -if (/[a-z]/) { -} -while (/[a-z]/) { -} -do { -} while (/[a-z]/); -if ([]) { -} -while ([]) { -} -do { -} while ([]); -if ([1, 2]) { -} -while ([1, 2]) { -} -do { -} while ([1, 2]); -if ({}) { -} -while ({}) { -} -do { -} while ({}); -if ({ x: 1, y: 'a' }) { -} -while ({ x: 1, y: 'a' }) { -} -do { -} while ({ x: 1, y: 'a' }); -if (function () { return 43; }) { -} -while (function () { return 43; }) { -} -do { -} while (function () { return 43; }); -if (new C()) { -} -while (new C()) { -} -do { -} while (new C()); -if (new D()) { -} -while (new D()) { -} -do { -} while (new D()); +if (true) { } +while (true) { } +do { } while (true); +if (null) { } +while (null) { } +do { } while (null); +if (undefined) { } +while (undefined) { } +do { } while (undefined); +if (0.0) { } +while (0.0) { } +do { } while (0.0); +if ('a string') { } +while ('a string') { } +do { } while ('a string'); +if ('') { } +while ('') { } +do { } while (''); +if (/[a-z]/) { } +while (/[a-z]/) { } +do { } while (/[a-z]/); +if ([]) { } +while ([]) { } +do { } while ([]); +if ([1, 2]) { } +while ([1, 2]) { } +do { } while ([1, 2]); +if ({}) { } +while ({}) { } +do { } while ({}); +if ({ x: 1, y: 'a' }) { } +while ({ x: 1, y: 'a' }) { } +do { } while ({ x: 1, y: 'a' }); +if (function () { return 43; }) { } +while (function () { return 43; }) { } +do { } while (function () { return 43; }); +if (new C()) { } +while (new C()) { } +do { } while (new C()); +if (new D()) { } +while (new D()) { } +do { } while (new D()); // references var a = true; -if (a) { -} -while (a) { -} -do { -} while (a); +if (a) { } +while (a) { } +do { } while (a); var b = null; -if (b) { -} -while (b) { -} -do { -} while (b); +if (b) { } +while (b) { } +do { } while (b); var c = undefined; -if (c) { -} -while (c) { -} -do { -} while (c); +if (c) { } +while (c) { } +do { } while (c); var d = 0.0; -if (d) { -} -while (d) { -} -do { -} while (d); +if (d) { } +while (d) { } +do { } while (d); var e = 'a string'; -if (e) { -} -while (e) { -} -do { -} while (e); +if (e) { } +while (e) { } +do { } while (e); var f = ''; -if (f) { -} -while (f) { -} -do { -} while (f); +if (f) { } +while (f) { } +do { } while (f); var g = /[a-z]/; -if (g) { -} -while (g) { -} -do { -} while (g); +if (g) { } +while (g) { } +do { } while (g); var h = []; -if (h) { -} -while (h) { -} -do { -} while (h); +if (h) { } +while (h) { } +do { } while (h); var i = [1, 2]; -if (i) { -} -while (i) { -} -do { -} while (i); +if (i) { } +while (i) { } +do { } while (i); var j = {}; -if (j) { -} -while (j) { -} -do { -} while (j); +if (j) { } +while (j) { } +do { } while (j); var k = { x: 1, y: 'a' }; -if (k) { -} -while (k) { -} -do { -} while (k); +if (k) { } +while (k) { } +do { } while (k); function fn(x) { return null; } -if (fn()) { -} -while (fn()) { -} -do { -} while (fn()); -if (fn) { -} -while (fn) { -} -do { -} while (fn); +if (fn()) { } +while (fn()) { } +do { } while (fn()); +if (fn) { } +while (fn) { } +do { } while (fn); diff --git a/tests/baselines/reference/implementsClauseAlreadySeen.js b/tests/baselines/reference/implementsClauseAlreadySeen.js index 84823c13fa8..abb28886615 100644 --- a/tests/baselines/reference/implementsClauseAlreadySeen.js +++ b/tests/baselines/reference/implementsClauseAlreadySeen.js @@ -15,7 +15,6 @@ var C = (function () { var D = (function () { function D() { } - D.prototype.baz = function () { - }; + D.prototype.baz = function () { }; return D; })(); diff --git a/tests/baselines/reference/implicitAnyDeclareFunctionExprWithoutFormalType.js b/tests/baselines/reference/implicitAnyDeclareFunctionExprWithoutFormalType.js index cba7602d049..df1c4d51e74 100644 --- a/tests/baselines/reference/implicitAnyDeclareFunctionExprWithoutFormalType.js +++ b/tests/baselines/reference/implicitAnyDeclareFunctionExprWithoutFormalType.js @@ -19,12 +19,9 @@ var lambda10 = function temp1() { return 5; } //// [implicitAnyDeclareFunctionExprWithoutFormalType.js] // these should be errors for implicit any parameter -var lambda = function (l1) { -}; // Error at "l1" -var lambd2 = function (ll1, ll2) { -}; // Error at "ll1" -var lamda3 = function myLambda3(myParam) { -}; +var lambda = function (l1) { }; // Error at "l1" +var lambd2 = function (ll1, ll2) { }; // Error at "ll1" +var lamda3 = function myLambda3(myParam) { }; var lamda4 = function () { return null; }; diff --git a/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType.js b/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType.js index 6332f444487..c9c74594760 100644 --- a/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType.js +++ b/tests/baselines/reference/implicitAnyDeclareFunctionWithoutFormalType.js @@ -13,33 +13,18 @@ function noError2(x: number, y: string) { }; //// [implicitAnyDeclareFunctionWithoutFormalType.js] // these should be errors -function foo(x) { -} +function foo(x) { } ; -function bar(x, y) { -} +function bar(x, y) { } ; // error at "y"; no error at "x" -function func2(a, b, c) { -} +function func2(a, b, c) { } ; // error at "a,b,c" -function func3() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i - 0] = arguments[_i]; - } -} +function func3() { } ; // error at "args" -function func4(z, w) { - if (z === void 0) { z = null; } - if (w === void 0) { w = undefined; } -} +function func4(z, w) { } ; // error at "z,w" // these shouldn't be errors -function noError1(x, y) { - if (x === void 0) { x = 3; } - if (y === void 0) { y = 2; } -} +function noError1(x, y) { } ; -function noError2(x, y) { -} +function noError2(x, y) { } ; diff --git a/tests/baselines/reference/implicitAnyDeclareMemberWithoutType2.js b/tests/baselines/reference/implicitAnyDeclareMemberWithoutType2.js index 1a49449529e..59d625fff4a 100644 --- a/tests/baselines/reference/implicitAnyDeclareMemberWithoutType2.js +++ b/tests/baselines/reference/implicitAnyDeclareMemberWithoutType2.js @@ -15,7 +15,6 @@ var C = (function () { function C(c1, c2, c3) { this.x = null; // error at "x" } // error at "c1, c2" - C.prototype.funcOfC = function (f1, f2, f3) { - }; // error at "f1,f2" + C.prototype.funcOfC = function (f1, f2, f3) { }; // error at "f1,f2" return C; })(); diff --git a/tests/baselines/reference/implicitAnyDeclareVariablesWithoutTypeAndInit.js b/tests/baselines/reference/implicitAnyDeclareVariablesWithoutTypeAndInit.js index ae09bf2e40e..e3c44e9b783 100644 --- a/tests/baselines/reference/implicitAnyDeclareVariablesWithoutTypeAndInit.js +++ b/tests/baselines/reference/implicitAnyDeclareVariablesWithoutTypeAndInit.js @@ -14,8 +14,7 @@ var x1: any; var y1 = new x1; //// [implicitAnyDeclareVariablesWithoutTypeAndInit.js] // this should be an error var x; // error at "x" -function func(k) { -} +function func(k) { } ; //error at "k" func(x); // this shouldn't be an error diff --git a/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js b/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js index e7642fd8420..bc5b9453665 100644 --- a/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js +++ b/tests/baselines/reference/implicitAnyFunctionInvocationWithAnyArguements.js @@ -41,18 +41,13 @@ var arg0 = null; // error at "arg0" var anyArray = [null, undefined]; // error at array literal var objL; // error at "y,z" var funcL; -function temp1(arg1) { -} // error at "temp1" -function testFunctionExprC(subReplace) { -} -function testFunctionExprC2(eq) { -} +function temp1(arg1) { } // error at "temp1" +function testFunctionExprC(subReplace) { } +function testFunctionExprC2(eq) { } ; -function testObjLiteral(objLit) { -} +function testObjLiteral(objLit) { } ; -function testFuncLiteral(funcLit) { -} +function testFuncLiteral(funcLit) { } ; // this should not be an error testFunctionExprC2(function (v1, v2) { return 1; }); @@ -61,8 +56,7 @@ testFuncLiteral(funcL); var k = temp1(null); var result = temp1(arg0); var result1 = temp1(anyArray); -function noError(variable, array) { -} +function noError(variable, array) { } noError(null, []); noError(undefined, []); noError(null, [null, undefined]); diff --git a/tests/baselines/reference/implicitAnyInCatch.js b/tests/baselines/reference/implicitAnyInCatch.js index 29a2e03a130..c35e92372e3 100644 --- a/tests/baselines/reference/implicitAnyInCatch.js +++ b/tests/baselines/reference/implicitAnyInCatch.js @@ -16,14 +16,11 @@ class C { //// [implicitAnyInCatch.js] // this should not be an error -try { -} +try { } catch (error) { - if (error.number === -2147024809) { - } -} -for (var key in this) { + if (error.number === -2147024809) { } } +for (var key in this) { } var C = (function () { function C() { } diff --git a/tests/baselines/reference/implicitAnyWidenToAny.js b/tests/baselines/reference/implicitAnyWidenToAny.js index 9f380df1cf0..838593a88ef 100644 --- a/tests/baselines/reference/implicitAnyWidenToAny.js +++ b/tests/baselines/reference/implicitAnyWidenToAny.js @@ -51,7 +51,6 @@ var array3 = [null, undefined]; var array4 = [null, undefined]; var array5 = [null, undefined]; var objLit; -function anyReturnFunc() { -} +function anyReturnFunc() { } var obj0 = new objLit(1); var obj1 = anyReturnFunc(); diff --git a/tests/baselines/reference/importAliasAnExternalModuleInsideAnInternalModule.js b/tests/baselines/reference/importAliasAnExternalModuleInsideAnInternalModule.js index 35992b86fec..3329fb810a7 100644 --- a/tests/baselines/reference/importAliasAnExternalModuleInsideAnInternalModule.js +++ b/tests/baselines/reference/importAliasAnExternalModuleInsideAnInternalModule.js @@ -17,8 +17,7 @@ module m_private { //// [importAliasAnExternalModuleInsideAnInternalModule_file0.js] var m; (function (m) { - function foo() { - } + function foo() { } m.foo = foo; })(m = exports.m || (exports.m = {})); //// [importAliasAnExternalModuleInsideAnInternalModule_file1.js] diff --git a/tests/baselines/reference/inOperator.js b/tests/baselines/reference/inOperator.js index 1407ef9d59c..10059bcf2b7 100644 --- a/tests/baselines/reference/inOperator.js +++ b/tests/baselines/reference/inOperator.js @@ -14,12 +14,9 @@ if (y in c) { } //// [inOperator.js] var a = []; -for (var x in a) { -} -if (3 in a) { -} +for (var x in a) { } +if (3 in a) { } var b = '' in 0; var c; var y; -if (y in c) { -} +if (y in c) { } diff --git a/tests/baselines/reference/incompatibleTypes.js b/tests/baselines/reference/incompatibleTypes.js index 38664e514c7..2f804f2efa1 100644 --- a/tests/baselines/reference/incompatibleTypes.js +++ b/tests/baselines/reference/incompatibleTypes.js @@ -102,8 +102,7 @@ var C4 = (function () { } return C4; })(); -function if1(a) { -} +function if1(a) { } var c1; var c2; if1(c1); diff --git a/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.js b/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.js index 9fb1c4e616e..6f76fba6d8c 100644 --- a/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.js +++ b/tests/baselines/reference/incrementOperatorWithAnyOtherTypeInvalidOperations.js @@ -74,8 +74,7 @@ ANY2++; var ANY1; var ANY2 = [1, 2]; var obj; -var obj1 = { x: "", y: function () { -} }; +var obj1 = { x: "", y: function () { } }; function foo() { var a; return a; diff --git a/tests/baselines/reference/inferSecondaryParameter.js b/tests/baselines/reference/inferSecondaryParameter.js index 9b32b33b52c..24689aa9495 100644 --- a/tests/baselines/reference/inferSecondaryParameter.js +++ b/tests/baselines/reference/inferSecondaryParameter.js @@ -11,8 +11,7 @@ b.m("test", function (bug) { //// [inferSecondaryParameter.js] // type inference on 'bug' should give 'any' -var b = { m: function (test, fn) { -} }; +var b = { m: function (test, fn) { } }; b.m("test", function (bug) { var a = bug; }); diff --git a/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.js b/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.js index 1cc86829a6b..de0c107e561 100644 --- a/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.js +++ b/tests/baselines/reference/inferTypeArgumentsInSignatureWithRestParameters.js @@ -12,26 +12,10 @@ i(a); // OK //// [inferTypeArgumentsInSignatureWithRestParameters.js] -function f(array) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } -} -function g(array) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } -} -function h(nonarray) { - var args = []; - for (var _i = 1; _i < arguments.length; _i++) { - args[_i - 1] = arguments[_i]; - } -} -function i(array, opt) { -} +function f(array) { } +function g(array) { } +function h(nonarray) { } +function i(array, opt) { } var a = [1, 2, 3, 4, 5]; f(a); // OK g(a); // OK diff --git a/tests/baselines/reference/inferenceFromParameterlessLambda.js b/tests/baselines/reference/inferenceFromParameterlessLambda.js index ad9a18b7549..40c18c9afe8 100644 --- a/tests/baselines/reference/inferenceFromParameterlessLambda.js +++ b/tests/baselines/reference/inferenceFromParameterlessLambda.js @@ -11,7 +11,6 @@ foo(n => n.length, () => 'hi'); //// [inferenceFromParameterlessLambda.js] -function foo(o, i) { -} +function foo(o, i) { } // Infer string from second argument because it isn't context sensitive foo(function (n) { return n.length; }, function () { return 'hi'; }); diff --git a/tests/baselines/reference/inheritance1.js b/tests/baselines/reference/inheritance1.js index e6dbd35e0df..f00a46922bf 100644 --- a/tests/baselines/reference/inheritance1.js +++ b/tests/baselines/reference/inheritance1.js @@ -78,8 +78,7 @@ var Button = (function (_super) { function Button() { _super.apply(this, arguments); } - Button.prototype.select = function () { - }; + Button.prototype.select = function () { }; return Button; })(Control); var TextBox = (function (_super) { @@ -87,8 +86,7 @@ var TextBox = (function (_super) { function TextBox() { _super.apply(this, arguments); } - TextBox.prototype.select = function () { - }; + TextBox.prototype.select = function () { }; return TextBox; })(Control); var ImageBase = (function (_super) { @@ -108,15 +106,13 @@ var Image1 = (function (_super) { var Locations = (function () { function Locations() { } - Locations.prototype.select = function () { - }; + Locations.prototype.select = function () { }; return Locations; })(); var Locations1 = (function () { function Locations1() { } - Locations1.prototype.select = function () { - }; + Locations1.prototype.select = function () { }; return Locations1; })(); var sc; diff --git a/tests/baselines/reference/inheritanceGrandParentPrivateMemberCollision.js b/tests/baselines/reference/inheritanceGrandParentPrivateMemberCollision.js index 45293ec3021..4544df2dcf2 100644 --- a/tests/baselines/reference/inheritanceGrandParentPrivateMemberCollision.js +++ b/tests/baselines/reference/inheritanceGrandParentPrivateMemberCollision.js @@ -20,8 +20,7 @@ var __extends = this.__extends || function (d, b) { var A = (function () { function A() { } - A.prototype.myMethod = function () { - }; + A.prototype.myMethod = function () { }; return A; })(); var B = (function (_super) { @@ -36,7 +35,6 @@ var C = (function (_super) { function C() { _super.apply(this, arguments); } - C.prototype.myMethod = function () { - }; + C.prototype.myMethod = function () { }; return C; })(B); diff --git a/tests/baselines/reference/inheritanceGrandParentPrivateMemberCollisionWithPublicMember.js b/tests/baselines/reference/inheritanceGrandParentPrivateMemberCollisionWithPublicMember.js index 339511df6ba..df6e5943173 100644 --- a/tests/baselines/reference/inheritanceGrandParentPrivateMemberCollisionWithPublicMember.js +++ b/tests/baselines/reference/inheritanceGrandParentPrivateMemberCollisionWithPublicMember.js @@ -20,8 +20,7 @@ var __extends = this.__extends || function (d, b) { var A = (function () { function A() { } - A.prototype.myMethod = function () { - }; + A.prototype.myMethod = function () { }; return A; })(); var B = (function (_super) { @@ -36,7 +35,6 @@ var C = (function (_super) { function C() { _super.apply(this, arguments); } - C.prototype.myMethod = function () { - }; + C.prototype.myMethod = function () { }; return C; })(B); diff --git a/tests/baselines/reference/inheritanceGrandParentPublicMemberCollisionWithPrivateMember.js b/tests/baselines/reference/inheritanceGrandParentPublicMemberCollisionWithPrivateMember.js index f69a4962db6..682a8ab4402 100644 --- a/tests/baselines/reference/inheritanceGrandParentPublicMemberCollisionWithPrivateMember.js +++ b/tests/baselines/reference/inheritanceGrandParentPublicMemberCollisionWithPrivateMember.js @@ -20,8 +20,7 @@ var __extends = this.__extends || function (d, b) { var A = (function () { function A() { } - A.prototype.myMethod = function () { - }; + A.prototype.myMethod = function () { }; return A; })(); var B = (function (_super) { @@ -36,7 +35,6 @@ var C = (function (_super) { function C() { _super.apply(this, arguments); } - C.prototype.myMethod = function () { - }; + C.prototype.myMethod = function () { }; return C; })(B); diff --git a/tests/baselines/reference/inheritedFunctionAssignmentCompatibility.js b/tests/baselines/reference/inheritedFunctionAssignmentCompatibility.js index 570a07ee7f6..3ea0e6e1594 100644 --- a/tests/baselines/reference/inheritedFunctionAssignmentCompatibility.js +++ b/tests/baselines/reference/inheritedFunctionAssignmentCompatibility.js @@ -9,8 +9,7 @@ fn(function (a, b) { return true; }) //// [inheritedFunctionAssignmentCompatibility.js] -function fn(cb) { -} +function fn(cb) { } fn(function (a, b) { return true; }); fn(function (a, b) { return true; diff --git a/tests/baselines/reference/innerBoundLambdaEmit.js b/tests/baselines/reference/innerBoundLambdaEmit.js index 2921cad55d0..c09cc8e5a66 100644 --- a/tests/baselines/reference/innerBoundLambdaEmit.js +++ b/tests/baselines/reference/innerBoundLambdaEmit.js @@ -18,6 +18,5 @@ var M; return Foo; })(); M.Foo = Foo; - var bar = function () { - }; + var bar = function () { }; })(M || (M = {})); diff --git a/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js b/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js index 79535360b7a..51c38282a72 100644 --- a/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js +++ b/tests/baselines/reference/instanceMemberAssignsToClassPrototype.js @@ -17,12 +17,10 @@ var C = (function () { function C() { } C.prototype.foo = function () { - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; }; C.prototype.bar = function (x) { - C.prototype.bar = function () { - }; // error + C.prototype.bar = function () { }; // error C.prototype.bar = function (x) { return x; }; // ok C.prototype.bar = function (x) { return 1; }; // ok return 1; diff --git a/tests/baselines/reference/instancePropertiesInheritedIntoClassType.js b/tests/baselines/reference/instancePropertiesInheritedIntoClassType.js index eca12f7b1ae..32507e8209e 100644 --- a/tests/baselines/reference/instancePropertiesInheritedIntoClassType.js +++ b/tests/baselines/reference/instancePropertiesInheritedIntoClassType.js @@ -60,8 +60,7 @@ var NonGeneric; get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -95,8 +94,7 @@ var Generic; get: function () { return null; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/instancePropertyInClassType.js b/tests/baselines/reference/instancePropertyInClassType.js index b2df44db6f0..ac89621b7b9 100644 --- a/tests/baselines/reference/instancePropertyInClassType.js +++ b/tests/baselines/reference/instancePropertyInClassType.js @@ -50,8 +50,7 @@ var NonGeneric; get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -78,8 +77,7 @@ var Generic; get: function () { return null; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/instanceofOperatorWithInvalidOperands.js b/tests/baselines/reference/instanceofOperatorWithInvalidOperands.js index 8309b7e7c01..9f83181a146 100644 --- a/tests/baselines/reference/instanceofOperatorWithInvalidOperands.js +++ b/tests/baselines/reference/instanceofOperatorWithInvalidOperands.js @@ -50,8 +50,7 @@ var rc1 = '' instanceof {}; var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); var x; diff --git a/tests/baselines/reference/instantiateNonGenericTypeWithTypeArguments.js b/tests/baselines/reference/instantiateNonGenericTypeWithTypeArguments.js index 15e4239eb0a..3d7d2a7d017 100644 --- a/tests/baselines/reference/instantiateNonGenericTypeWithTypeArguments.js +++ b/tests/baselines/reference/instantiateNonGenericTypeWithTypeArguments.js @@ -27,8 +27,7 @@ var C = (function () { return C; })(); var c = new C(); -function Foo() { -} +function Foo() { } var r = new Foo(); var f; var r2 = new f(); diff --git a/tests/baselines/reference/intTypeCheck.js b/tests/baselines/reference/intTypeCheck.js index 41f648610b5..ab62168007e 100644 --- a/tests/baselines/reference/intTypeCheck.js +++ b/tests/baselines/reference/intTypeCheck.js @@ -209,8 +209,7 @@ var obj87: i8 = new {}; var Base = (function () { function Base() { } - Base.prototype.foo = function () { - }; + Base.prototype.foo = function () { }; return Base; })(); var anyVar; @@ -234,8 +233,7 @@ var obj2 = new Object(); var obj3 = new obj0; var obj4 = new Base; var obj5 = null; -var obj6 = function () { -}; +var obj6 = function () { }; //var obj7: i1 = function foo() { }; var obj8 = anyVar; var obj9 = new < i1 > anyVar; @@ -265,8 +263,7 @@ var obj24 = new Object(); var obj25 = new obj22; var obj26 = new Base; var obj27 = null; -var obj28 = function () { -}; +var obj28 = function () { }; //var obj29: i3 = function foo() { }; var obj30 = anyVar; var obj31 = new < i3 > anyVar; @@ -280,8 +277,7 @@ var obj35 = new Object(); var obj36 = new obj33; var obj37 = new Base; var obj38 = null; -var obj39 = function () { -}; +var obj39 = function () { }; //var obj40: i4 = function foo() { }; var obj41 = anyVar; var obj42 = new < i4 > anyVar; @@ -295,8 +291,7 @@ var obj46 = new Object(); var obj47 = new obj44; var obj48 = new Base; var obj49 = null; -var obj50 = function () { -}; +var obj50 = function () { }; //var obj51: i5 = function foo() { }; var obj52 = anyVar; var obj53 = new < i5 > anyVar; @@ -310,8 +305,7 @@ var obj57 = new Object(); var obj58 = new obj55; var obj59 = new Base; var obj60 = null; -var obj61 = function () { -}; +var obj61 = function () { }; //var obj62: i6 = function foo() { }; var obj63 = anyVar; var obj64 = new < i6 > anyVar; @@ -325,8 +319,7 @@ var obj68 = new Object(); var obj69 = new obj66; var obj70 = new Base; var obj71 = null; -var obj72 = function () { -}; +var obj72 = function () { }; //var obj73: i7 = function foo() { }; var obj74 = anyVar; var obj75 = new < i7 > anyVar; @@ -340,8 +333,7 @@ var obj79 = new Object(); var obj80 = new obj77; var obj81 = new Base; var obj82 = null; -var obj83 = function () { -}; +var obj83 = function () { }; //var obj84: i8 = function foo() { }; var obj85 = anyVar; var obj86 = new < i8 > anyVar; diff --git a/tests/baselines/reference/interfaceDeclaration2.js b/tests/baselines/reference/interfaceDeclaration2.js index 0bd59c065e0..30f9df0fac7 100644 --- a/tests/baselines/reference/interfaceDeclaration2.js +++ b/tests/baselines/reference/interfaceDeclaration2.js @@ -19,6 +19,5 @@ var I2 = (function () { } return I2; })(); -function I3() { -} +function I3() { } var I4; diff --git a/tests/baselines/reference/interfaceDeclaration4.js b/tests/baselines/reference/interfaceDeclaration4.js index 576479c2beb..728ef7156e9 100644 --- a/tests/baselines/reference/interfaceDeclaration4.js +++ b/tests/baselines/reference/interfaceDeclaration4.js @@ -69,5 +69,4 @@ var C3 = (function () { return C3; })(); I1; -{ -} +{ } diff --git a/tests/baselines/reference/interfaceExtendingClass.js b/tests/baselines/reference/interfaceExtendingClass.js index 39db7460915..f1232d78245 100644 --- a/tests/baselines/reference/interfaceExtendingClass.js +++ b/tests/baselines/reference/interfaceExtendingClass.js @@ -23,8 +23,7 @@ i = f; var Foo = (function () { function Foo() { } - Foo.prototype.y = function () { - }; + Foo.prototype.y = function () { }; Object.defineProperty(Foo.prototype, "Z", { get: function () { return 1; diff --git a/tests/baselines/reference/interfaceExtendingClass2.js b/tests/baselines/reference/interfaceExtendingClass2.js index b0958717aa8..6e6605e2459 100644 --- a/tests/baselines/reference/interfaceExtendingClass2.js +++ b/tests/baselines/reference/interfaceExtendingClass2.js @@ -19,8 +19,7 @@ interface I2 extends Foo { // error var Foo = (function () { function Foo() { } - Foo.prototype.y = function () { - }; + Foo.prototype.y = function () { }; Object.defineProperty(Foo.prototype, "Z", { get: function () { return 1; diff --git a/tests/baselines/reference/interfaceExtendsClass1.js b/tests/baselines/reference/interfaceExtendsClass1.js index 5903726c05d..d376f2dca98 100644 --- a/tests/baselines/reference/interfaceExtendsClass1.js +++ b/tests/baselines/reference/interfaceExtendsClass1.js @@ -35,8 +35,7 @@ var Button = (function (_super) { function Button() { _super.apply(this, arguments); } - Button.prototype.select = function () { - }; + Button.prototype.select = function () { }; return Button; })(Control); var TextBox = (function (_super) { @@ -44,8 +43,7 @@ var TextBox = (function (_super) { function TextBox() { _super.apply(this, arguments); } - TextBox.prototype.select = function () { - }; + TextBox.prototype.select = function () { }; return TextBox; })(Control); var Image = (function (_super) { @@ -58,7 +56,6 @@ var Image = (function (_super) { var Location = (function () { function Location() { } - Location.prototype.select = function () { - }; + Location.prototype.select = function () { }; return Location; })(); diff --git a/tests/baselines/reference/interfaceExtendsClassWithPrivate1.js b/tests/baselines/reference/interfaceExtendsClassWithPrivate1.js index 4cf0281ac7a..a230318dcc9 100644 --- a/tests/baselines/reference/interfaceExtendsClassWithPrivate1.js +++ b/tests/baselines/reference/interfaceExtendsClassWithPrivate1.js @@ -54,8 +54,7 @@ var D = (function (_super) { D.prototype.other = function (x) { return x; }; - D.prototype.bar = function () { - }; + D.prototype.bar = function () { }; return D; })(C); var c; diff --git a/tests/baselines/reference/interfaceExtendsClassWithPrivate2.js b/tests/baselines/reference/interfaceExtendsClassWithPrivate2.js index 5805302d7d7..b55c6207661 100644 --- a/tests/baselines/reference/interfaceExtendsClassWithPrivate2.js +++ b/tests/baselines/reference/interfaceExtendsClassWithPrivate2.js @@ -52,8 +52,7 @@ var D = (function (_super) { D.prototype.other = function (x) { return x; }; - D.prototype.bar = function () { - }; + D.prototype.bar = function () { }; return D; })(C); var D2 = (function (_super) { @@ -68,7 +67,6 @@ var D2 = (function (_super) { D2.prototype.other = function (x) { return x; }; - D2.prototype.bar = function () { - }; + D2.prototype.bar = function () { }; return D2; })(C); diff --git a/tests/baselines/reference/interfaceImplementation1.js b/tests/baselines/reference/interfaceImplementation1.js index ce82a24f63d..8f02596682d 100644 --- a/tests/baselines/reference/interfaceImplementation1.js +++ b/tests/baselines/reference/interfaceImplementation1.js @@ -50,8 +50,7 @@ c["foo"]; var C1 = (function () { function C1() { } - C1.prototype.iFn = function (n, s) { - }; + C1.prototype.iFn = function (n, s) { }; return C1; })(); var C2 = (function () { diff --git a/tests/baselines/reference/interfaceImplementation3.js b/tests/baselines/reference/interfaceImplementation3.js index 626c92e83d1..da85de545cd 100644 --- a/tests/baselines/reference/interfaceImplementation3.js +++ b/tests/baselines/reference/interfaceImplementation3.js @@ -19,7 +19,6 @@ class C4 implements I1 { var C4 = (function () { function C4() { } - C4.prototype.iFn = function () { - }; + C4.prototype.iFn = function () { }; return C4; })(); diff --git a/tests/baselines/reference/interfaceImplementation4.js b/tests/baselines/reference/interfaceImplementation4.js index 94565d1b22f..4a093381b5d 100644 --- a/tests/baselines/reference/interfaceImplementation4.js +++ b/tests/baselines/reference/interfaceImplementation4.js @@ -17,7 +17,6 @@ class C5 implements I1 { var C5 = (function () { function C5() { } - C5.prototype.iFn = function () { - }; + C5.prototype.iFn = function () { }; return C5; })(); diff --git a/tests/baselines/reference/interfaceImplementation5.js b/tests/baselines/reference/interfaceImplementation5.js index 667c5f045ec..1edfdeb8294 100644 --- a/tests/baselines/reference/interfaceImplementation5.js +++ b/tests/baselines/reference/interfaceImplementation5.js @@ -48,8 +48,7 @@ var C2 = (function () { function C2() { } Object.defineProperty(C2.prototype, "getset1", { - set: function (baz) { - }, + set: function (baz) { }, enumerable: true, configurable: true }); @@ -62,8 +61,7 @@ var C3 = (function () { get: function () { return 1; }, - set: function (baz) { - }, + set: function (baz) { }, enumerable: true, configurable: true }); @@ -86,8 +84,7 @@ var C5 = (function () { function C5() { } Object.defineProperty(C5.prototype, "getset1", { - set: function (baz) { - }, + set: function (baz) { }, enumerable: true, configurable: true }); @@ -101,8 +98,7 @@ var C6 = (function () { var x; return x; }, - set: function (baz) { - }, + set: function (baz) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/interfaceNaming1.js b/tests/baselines/reference/interfaceNaming1.js index e16f186379b..2abd2106b2f 100644 --- a/tests/baselines/reference/interfaceNaming1.js +++ b/tests/baselines/reference/interfaceNaming1.js @@ -6,6 +6,5 @@ interface & { } //// [interfaceNaming1.js] interface; -{ -} +{ } interface & {}; diff --git a/tests/baselines/reference/interfaceWithPropertyOfEveryType.js b/tests/baselines/reference/interfaceWithPropertyOfEveryType.js index 10d7c641380..a7605dd52bc 100644 --- a/tests/baselines/reference/interfaceWithPropertyOfEveryType.js +++ b/tests/baselines/reference/interfaceWithPropertyOfEveryType.js @@ -48,8 +48,7 @@ var C = (function () { } return C; })(); -function f1() { -} +function f1() { } var M; (function (M) { M.y = 1; diff --git a/tests/baselines/reference/interfaceWithPropertyThatIsPrivateInBaseType2.js b/tests/baselines/reference/interfaceWithPropertyThatIsPrivateInBaseType2.js index 01907f410e3..d53ec04c183 100644 --- a/tests/baselines/reference/interfaceWithPropertyThatIsPrivateInBaseType2.js +++ b/tests/baselines/reference/interfaceWithPropertyThatIsPrivateInBaseType2.js @@ -19,14 +19,12 @@ interface Foo2 extends Base2 { // error var Base = (function () { function Base() { } - Base.prototype.x = function () { - }; + Base.prototype.x = function () { }; return Base; })(); var Base2 = (function () { function Base2() { } - Base2.prototype.x = function () { - }; + Base2.prototype.x = function () { }; return Base2; })(); diff --git a/tests/baselines/reference/invalidDoWhileBreakStatements.js b/tests/baselines/reference/invalidDoWhileBreakStatements.js index e6617ef98cd..807d58a8fea 100644 --- a/tests/baselines/reference/invalidDoWhileBreakStatements.js +++ b/tests/baselines/reference/invalidDoWhileBreakStatements.js @@ -60,8 +60,7 @@ THREE: do { // break forward do { break FIVE; - FIVE: do { - } while (true); + FIVE: do { } while (true); } while (true); // label on non-loop statement NINE: var y = 12; diff --git a/tests/baselines/reference/invalidDoWhileContinueStatements.js b/tests/baselines/reference/invalidDoWhileContinueStatements.js index d32ccfe0074..21a10a3451b 100644 --- a/tests/baselines/reference/invalidDoWhileContinueStatements.js +++ b/tests/baselines/reference/invalidDoWhileContinueStatements.js @@ -60,8 +60,7 @@ THREE: do { // continue forward do { continue FIVE; - FIVE: do { - } while (true); + FIVE: do { } while (true); } while (true); // label on non-loop statement NINE: var y = 12; diff --git a/tests/baselines/reference/invalidForBreakStatements.js b/tests/baselines/reference/invalidForBreakStatements.js index abcd078ff2d..5e3430ecb41 100644 --- a/tests/baselines/reference/invalidForBreakStatements.js +++ b/tests/baselines/reference/invalidForBreakStatements.js @@ -58,8 +58,7 @@ THREE: for (;;) { // break forward for (;;) { break FIVE; - FIVE: for (;;) { - } + FIVE: for (;;) { } } // label on non-loop statement NINE: var y = 12; diff --git a/tests/baselines/reference/invalidForContinueStatements.js b/tests/baselines/reference/invalidForContinueStatements.js index af0eba2a59a..2db1ce69ede 100644 --- a/tests/baselines/reference/invalidForContinueStatements.js +++ b/tests/baselines/reference/invalidForContinueStatements.js @@ -58,8 +58,7 @@ THREE: for (;;) { // continue forward for (;;) { continue FIVE; - FIVE: for (;;) { - } + FIVE: for (;;) { } } // label on non-loop statement NINE: var y = 12; diff --git a/tests/baselines/reference/invalidForInBreakStatements.js b/tests/baselines/reference/invalidForInBreakStatements.js index bf383613c3b..1784b9a57a6 100644 --- a/tests/baselines/reference/invalidForInBreakStatements.js +++ b/tests/baselines/reference/invalidForInBreakStatements.js @@ -59,8 +59,7 @@ THREE: for (var x in {}) { // break forward for (var x in {}) { break FIVE; - FIVE: for (var x in {}) { - } + FIVE: for (var x in {}) { } } // label on non-loop statement NINE: var y = 12; diff --git a/tests/baselines/reference/invalidForInContinueStatements.js b/tests/baselines/reference/invalidForInContinueStatements.js index d40dbd80ca0..94020d00f2b 100644 --- a/tests/baselines/reference/invalidForInContinueStatements.js +++ b/tests/baselines/reference/invalidForInContinueStatements.js @@ -59,8 +59,7 @@ THREE: for (var x in {}) { // continue forward for (var x in {}) { continue FIVE; - FIVE: for (var x in {}) { - } + FIVE: for (var x in {}) { } } // label on non-loop statement NINE: var y = 12; diff --git a/tests/baselines/reference/invalidModuleWithVarStatements.js b/tests/baselines/reference/invalidModuleWithVarStatements.js index 4014709d361..caa6b24f00f 100644 --- a/tests/baselines/reference/invalidModuleWithVarStatements.js +++ b/tests/baselines/reference/invalidModuleWithVarStatements.js @@ -35,8 +35,7 @@ var Y; })(Y || (Y = {})); var Y2; (function (Y2) { - function fn(x) { - } + function fn(x) { } })(Y2 || (Y2 = {})); var Y4; (function (Y4) { @@ -44,8 +43,7 @@ var Y4; })(Y4 || (Y4 = {})); var YY; (function (YY) { - function fn(x) { - } + function fn(x) { } })(YY || (YY = {})); var YY2; (function (YY2) { @@ -53,6 +51,5 @@ var YY2; })(YY2 || (YY2 = {})); var YY3; (function (YY3) { - function fn(x) { - } + function fn(x) { } })(YY3 || (YY3 = {})); diff --git a/tests/baselines/reference/invalidReturnStatements.js b/tests/baselines/reference/invalidReturnStatements.js index d452a1280f5..9dc30431326 100644 --- a/tests/baselines/reference/invalidReturnStatements.js +++ b/tests/baselines/reference/invalidReturnStatements.js @@ -28,21 +28,15 @@ var __extends = this.__extends || function (d, b) { d.prototype = new __(); }; // all the following should be error -function fn1() { -} -function fn2() { -} -function fn3() { -} -function fn4() { -} -function fn7() { -} // should be valid: any includes void +function fn1() { } +function fn2() { } +function fn3() { } +function fn4() { } +function fn7() { } // should be valid: any includes void var C = (function () { function C() { } - C.prototype.dispose = function () { - }; + C.prototype.dispose = function () { }; return C; })(); var D = (function (_super) { diff --git a/tests/baselines/reference/invalidTryStatements.js b/tests/baselines/reference/invalidTryStatements.js index 8afadf41b4d..343ad6e0584 100644 --- a/tests/baselines/reference/invalidTryStatements.js +++ b/tests/baselines/reference/invalidTryStatements.js @@ -21,16 +21,10 @@ function fn() { var x; // ensure x is 'Any' } // no type annotation allowed - try { - } - catch (z) { - } - try { - } - catch (a) { - } - try { - } - catch (y) { - } + try { } + catch (z) { } + try { } + catch (a) { } + try { } + catch (y) { } } diff --git a/tests/baselines/reference/invalidTryStatements2.js b/tests/baselines/reference/invalidTryStatements2.js index d2ef92ac831..1b2976dc4e7 100644 --- a/tests/baselines/reference/invalidTryStatements2.js +++ b/tests/baselines/reference/invalidTryStatements2.js @@ -36,20 +36,16 @@ function fn() { } try { } - catch (x) { - } // error missing try - finally { - } // potential error; can be absorbed by the 'catch' + catch (x) { } // error missing try + finally { } // potential error; can be absorbed by the 'catch' } function fn2() { try { } - finally { - } // error missing try + finally { } // error missing try try { } // error missing try - catch (x) { - } // error missing try + catch (x) { } // error missing try // no error try { } diff --git a/tests/baselines/reference/invalidTypeOfTarget.js b/tests/baselines/reference/invalidTypeOfTarget.js index 88128d15e85..52b39f3c76a 100644 --- a/tests/baselines/reference/invalidTypeOfTarget.js +++ b/tests/baselines/reference/invalidTypeOfTarget.js @@ -15,6 +15,5 @@ var x3 = 1; var x4 = ''; var x5; var x6 = null; -var x7 = function f() { -}; +var x7 = function f() { }; var x8 = /123/; diff --git a/tests/baselines/reference/invalidUndefinedAssignments.js b/tests/baselines/reference/invalidUndefinedAssignments.js index 0b37316e085..1feba71212d 100644 --- a/tests/baselines/reference/invalidUndefinedAssignments.js +++ b/tests/baselines/reference/invalidUndefinedAssignments.js @@ -44,7 +44,6 @@ var M; M.x = 1; })(M || (M = {})); M = x; -function i(a) { -} +function i(a) { } // BUG 767030 i = x; diff --git a/tests/baselines/reference/invalidUndefinedValues.js b/tests/baselines/reference/invalidUndefinedValues.js index 16ff454d8da..819bf114cec 100644 --- a/tests/baselines/reference/invalidUndefinedValues.js +++ b/tests/baselines/reference/invalidUndefinedValues.js @@ -54,8 +54,7 @@ var M; M.x = 1; })(M || (M = {})); x = M; -x = { f: function () { -} }; +x = { f: function () { } }; function f(a) { x = a; } diff --git a/tests/baselines/reference/invalidVoidAssignments.js b/tests/baselines/reference/invalidVoidAssignments.js index 980789cb949..40b83d329c1 100644 --- a/tests/baselines/reference/invalidVoidAssignments.js +++ b/tests/baselines/reference/invalidVoidAssignments.js @@ -59,5 +59,4 @@ var E; })(E || (E = {})); x = E; x = 0 /* A */; -x = { f: function () { -} }; +x = { f: function () { } }; diff --git a/tests/baselines/reference/invalidVoidValues.js b/tests/baselines/reference/invalidVoidValues.js index 9a626b687bb..658ebc7e1ca 100644 --- a/tests/baselines/reference/invalidVoidValues.js +++ b/tests/baselines/reference/invalidVoidValues.js @@ -46,8 +46,7 @@ var a; x = a; var b; x = b; -x = { f: function () { -} }; +x = { f: function () { } }; var M; (function (M) { M.x = 1; diff --git a/tests/baselines/reference/invalidWhileBreakStatements.js b/tests/baselines/reference/invalidWhileBreakStatements.js index a8e261f036c..7f10a08d65c 100644 --- a/tests/baselines/reference/invalidWhileBreakStatements.js +++ b/tests/baselines/reference/invalidWhileBreakStatements.js @@ -59,8 +59,7 @@ THREE: while (true) { // break forward while (true) { break FIVE; - FIVE: while (true) { - } + FIVE: while (true) { } } // label on non-loop statement NINE: var y = 12; diff --git a/tests/baselines/reference/invalidWhileContinueStatements.js b/tests/baselines/reference/invalidWhileContinueStatements.js index 544314bf68d..b8234bf9604 100644 --- a/tests/baselines/reference/invalidWhileContinueStatements.js +++ b/tests/baselines/reference/invalidWhileContinueStatements.js @@ -59,8 +59,7 @@ THREE: while (true) { // continue forward while (true) { continue FIVE; - FIVE: while (true) { - } + FIVE: while (true) { } } // label on non-loop statement NINE: var y = 12; diff --git a/tests/baselines/reference/ipromise4.js b/tests/baselines/reference/ipromise4.js index 5b65e0818c2..bb8a3f12e0b 100644 --- a/tests/baselines/reference/ipromise4.js +++ b/tests/baselines/reference/ipromise4.js @@ -18,8 +18,7 @@ p.then(function (x) { return "hello"; } ).then(function (x) { return x } ); // s //// [ipromise4.js] var p = null; -p.then(function (x) { -}); // should not error +p.then(function (x) { }); // should not error p.then(function (x) { return "hello"; }).then(function (x) { diff --git a/tests/baselines/reference/lastPropertyInLiteralWins.js b/tests/baselines/reference/lastPropertyInLiteralWins.js index 19ec4e21000..999fe45841b 100644 --- a/tests/baselines/reference/lastPropertyInLiteralWins.js +++ b/tests/baselines/reference/lastPropertyInLiteralWins.js @@ -21,14 +21,10 @@ function test(thing) { thing.thunk("str"); } test({ - thunk: function (str) { - }, - thunk: function (num) { - } + thunk: function (str) { }, + thunk: function (num) { } }); test({ - thunk: function (num) { - }, - thunk: function (str) { - } + thunk: function (num) { }, + thunk: function (str) { } }); diff --git a/tests/baselines/reference/letDeclarations-access.js b/tests/baselines/reference/letDeclarations-access.js index 404c2876310..6ae289d220f 100644 --- a/tests/baselines/reference/letDeclarations-access.js +++ b/tests/baselines/reference/letDeclarations-access.js @@ -58,11 +58,9 @@ x--; ++x; --x; var a = x + 1; -function f(v) { -} +function f(v) { } f(x); -if (x) { -} +if (x) { } x; (x); -x; diff --git a/tests/baselines/reference/letDeclarations-es5.js b/tests/baselines/reference/letDeclarations-es5.js index d5d1d96d350..4d2f5423ee0 100644 --- a/tests/baselines/reference/letDeclarations-es5.js +++ b/tests/baselines/reference/letDeclarations-es5.js @@ -20,7 +20,5 @@ let l3, l4, l5, l6; let l7 = false; let l8 = 23; let l9 = 0, l10 = "", l11 = null; -for (let l11 in {}) { -} -for (let l12 = 0; l12 < 9; l12++) { -} +for (let l11 in {}) { } +for (let l12 = 0; l12 < 9; l12++) { } diff --git a/tests/baselines/reference/letDeclarations.js b/tests/baselines/reference/letDeclarations.js index bc186b732f5..8acb82204e3 100644 --- a/tests/baselines/reference/letDeclarations.js +++ b/tests/baselines/reference/letDeclarations.js @@ -20,10 +20,8 @@ let l3, l4, l5, l6; let l7 = false; let l8 = 23; let l9 = 0, l10 = "", l11 = null; -for (let l11 in {}) { -} -for (let l12 = 0; l12 < 9; l12++) { -} +for (let l11 in {}) { } +for (let l12 = 0; l12 < 9; l12++) { } //// [letDeclarations.d.ts] diff --git a/tests/baselines/reference/literals-negative.js b/tests/baselines/reference/literals-negative.js index c0c9624e6f2..39fd4ea38a5 100644 --- a/tests/baselines/reference/literals-negative.js +++ b/tests/baselines/reference/literals-negative.js @@ -17,8 +17,6 @@ if(null === isVoid()) { } var n = (null); var s = (null); var b = (n); -function isVoid() { -} +function isVoid() { } // Expected error: Values of type null and void cannot be compared -if (null === isVoid()) { -} +if (null === isVoid()) { } diff --git a/tests/baselines/reference/localImportNameVsGlobalName.js b/tests/baselines/reference/localImportNameVsGlobalName.js index f27e7d648d1..6a4f1ceabc1 100644 --- a/tests/baselines/reference/localImportNameVsGlobalName.js +++ b/tests/baselines/reference/localImportNameVsGlobalName.js @@ -27,8 +27,7 @@ var Keyboard; var App; (function (App) { var Key = Keyboard.Key; - function foo(key) { - } + function foo(key) { } App.foo = foo; foo(0 /* UP */); foo(1 /* DOWN */); diff --git a/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.js b/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.js index 04317151f86..28366739233 100644 --- a/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/logicalNotOperatorWithAnyOtherType.js @@ -65,8 +65,7 @@ var ANY; var ANY1; var ANY2 = ["", ""]; var obj; -var obj1 = { x: "", y: function () { -} }; +var obj1 = { x: "", y: function () { } }; function foo() { var a; return a; diff --git a/tests/baselines/reference/matchingOfObjectLiteralConstraints.js b/tests/baselines/reference/matchingOfObjectLiteralConstraints.js index cf70a4be51b..1d19359894d 100644 --- a/tests/baselines/reference/matchingOfObjectLiteralConstraints.js +++ b/tests/baselines/reference/matchingOfObjectLiteralConstraints.js @@ -5,6 +5,5 @@ foo2({ y: "foo" }, "foo"); //// [matchingOfObjectLiteralConstraints.js] -function foo2(x, z) { -} +function foo2(x, z) { } foo2({ y: "foo" }, "foo"); diff --git a/tests/baselines/reference/memberFunctionsWithPrivateOverloads.js b/tests/baselines/reference/memberFunctionsWithPrivateOverloads.js index dc347e95580..584bafad6f6 100644 --- a/tests/baselines/reference/memberFunctionsWithPrivateOverloads.js +++ b/tests/baselines/reference/memberFunctionsWithPrivateOverloads.js @@ -53,27 +53,19 @@ var r4 = D.bar(''); // error var C = (function () { function C() { } - C.prototype.foo = function (x, y) { - }; - C.prototype.bar = function (x, y) { - }; - C.foo = function (x, y) { - }; - C.bar = function (x, y) { - }; + C.prototype.foo = function (x, y) { }; + C.prototype.bar = function (x, y) { }; + C.foo = function (x, y) { }; + C.bar = function (x, y) { }; return C; })(); var D = (function () { function D() { } - D.prototype.foo = function (x, y) { - }; - D.prototype.bar = function (x, y) { - }; - D.foo = function (x, y) { - }; - D.bar = function (x, y) { - }; + D.prototype.foo = function (x, y) { }; + D.prototype.bar = function (x, y) { }; + D.foo = function (x, y) { }; + D.bar = function (x, y) { }; return D; })(); var c; diff --git a/tests/baselines/reference/memberFunctionsWithPublicOverloads.js b/tests/baselines/reference/memberFunctionsWithPublicOverloads.js index 5eaf894f549..efdd6efaffa 100644 --- a/tests/baselines/reference/memberFunctionsWithPublicOverloads.js +++ b/tests/baselines/reference/memberFunctionsWithPublicOverloads.js @@ -44,26 +44,18 @@ class D { var C = (function () { function C() { } - C.prototype.foo = function (x, y) { - }; - C.prototype.bar = function (x, y) { - }; - C.foo = function (x, y) { - }; - C.bar = function (x, y) { - }; + C.prototype.foo = function (x, y) { }; + C.prototype.bar = function (x, y) { }; + C.foo = function (x, y) { }; + C.bar = function (x, y) { }; return C; })(); var D = (function () { function D() { } - D.prototype.foo = function (x, y) { - }; - D.prototype.bar = function (x, y) { - }; - D.foo = function (x, y) { - }; - D.bar = function (x, y) { - }; + D.prototype.foo = function (x, y) { }; + D.prototype.bar = function (x, y) { }; + D.foo = function (x, y) { }; + D.bar = function (x, y) { }; return D; })(); diff --git a/tests/baselines/reference/memberFunctionsWithPublicPrivateOverloads.js b/tests/baselines/reference/memberFunctionsWithPublicPrivateOverloads.js index 2726756c803..7738bf4fe4e 100644 --- a/tests/baselines/reference/memberFunctionsWithPublicPrivateOverloads.js +++ b/tests/baselines/reference/memberFunctionsWithPublicPrivateOverloads.js @@ -66,35 +66,23 @@ var r2 = d.foo(2); // error var C = (function () { function C() { } - C.prototype.foo = function (x, y) { - }; - C.prototype.bar = function (x, y) { - }; - C.foo = function (x, y) { - }; - C.prototype.baz = function (x, y) { - }; - C.bar = function (x, y) { - }; - C.baz = function (x, y) { - }; + C.prototype.foo = function (x, y) { }; + C.prototype.bar = function (x, y) { }; + C.foo = function (x, y) { }; + C.prototype.baz = function (x, y) { }; + C.bar = function (x, y) { }; + C.baz = function (x, y) { }; return C; })(); var D = (function () { function D() { } - D.prototype.foo = function (x, y) { - }; - D.prototype.bar = function (x, y) { - }; - D.prototype.baz = function (x, y) { - }; - D.foo = function (x, y) { - }; - D.bar = function (x, y) { - }; - D.baz = function (x, y) { - }; + D.prototype.foo = function (x, y) { }; + D.prototype.bar = function (x, y) { }; + D.prototype.baz = function (x, y) { }; + D.foo = function (x, y) { }; + D.bar = function (x, y) { }; + D.baz = function (x, y) { }; return D; })(); var c; diff --git a/tests/baselines/reference/mergedDeclarations4.js b/tests/baselines/reference/mergedDeclarations4.js index a3dab29ff75..64fad6bd598 100644 --- a/tests/baselines/reference/mergedDeclarations4.js +++ b/tests/baselines/reference/mergedDeclarations4.js @@ -21,8 +21,7 @@ M.f.hello; //// [mergedDeclarations4.js] var M; (function (M) { - function f() { - } + function f() { } M.f = f; f(); M.f(); diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen2.js b/tests/baselines/reference/mergedModuleDeclarationCodeGen2.js index 457bd12b8f0..bb0e846d063 100644 --- a/tests/baselines/reference/mergedModuleDeclarationCodeGen2.js +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen2.js @@ -15,8 +15,7 @@ var my; (function (data) { var foo; (function (foo) { - function buz() { - } + function buz() { } foo.buz = buz; })(foo = data.foo || (data.foo = {})); })(data = my.data || (my.data = {})); diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen3.js b/tests/baselines/reference/mergedModuleDeclarationCodeGen3.js index 0618346dd75..a03b418fcc9 100644 --- a/tests/baselines/reference/mergedModuleDeclarationCodeGen3.js +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen3.js @@ -13,8 +13,7 @@ var my; (function (my) { var data; (function (data) { - function buz() { - } + function buz() { } data.buz = buz; })(data = my.data || (my.data = {})); })(my || (my = {})); diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen4.js b/tests/baselines/reference/mergedModuleDeclarationCodeGen4.js index 2463c9cae90..9efba74a27b 100644 --- a/tests/baselines/reference/mergedModuleDeclarationCodeGen4.js +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen4.js @@ -27,8 +27,7 @@ var superContain; (function (buz) { var data; (function (data) { - function foo() { - } + function foo() { } data.foo = foo; })(data = buz.data || (buz.data = {})); })(buz = my.buz || (my.buz = {})); diff --git a/tests/baselines/reference/mergedModuleDeclarationCodeGen5.js b/tests/baselines/reference/mergedModuleDeclarationCodeGen5.js index 2c8e0bb79e4..ce453264f78 100644 --- a/tests/baselines/reference/mergedModuleDeclarationCodeGen5.js +++ b/tests/baselines/reference/mergedModuleDeclarationCodeGen5.js @@ -25,11 +25,9 @@ var M; (function (buz) { var plop; (function (plop) { - function doom() { - } + function doom() { } plop.doom = doom; - function M() { - } + function M() { } plop.M = M; })(plop = buz.plop || (buz.plop = {})); })(buz = _M.buz || (_M.buz = {})); @@ -40,10 +38,8 @@ var M; (function (_buz) { var plop; (function (_plop) { - function gunk() { - } - function buz() { - } + function gunk() { } + function buz() { } var fudge = (function () { function fudge() { } diff --git a/tests/baselines/reference/methodContainingLocalFunction.js b/tests/baselines/reference/methodContainingLocalFunction.js index 36487e3ad7c..f2f336d38b7 100644 --- a/tests/baselines/reference/methodContainingLocalFunction.js +++ b/tests/baselines/reference/methodContainingLocalFunction.js @@ -56,8 +56,7 @@ var BugExhibition = (function () { function BugExhibition() { } BugExhibition.prototype.exhibitBug = function () { - function localFunction() { - } + function localFunction() { } var x; x = localFunction; }; @@ -68,8 +67,7 @@ var BugExhibition2 = (function () { } Object.defineProperty(BugExhibition2, "exhibitBug", { get: function () { - function localFunction() { - } + function localFunction() { } var x; x = localFunction; return null; @@ -83,8 +81,7 @@ var BugExhibition3 = (function () { function BugExhibition3() { } BugExhibition3.prototype.exhibitBug = function () { - function localGenericFunction(u) { - } + function localGenericFunction(u) { } var x; x = localGenericFunction; }; @@ -94,8 +91,7 @@ var C = (function () { function C() { } C.prototype.exhibit = function () { - var funcExpr = function (u) { - }; + var funcExpr = function (u) { }; var x; x = funcExpr; }; @@ -104,8 +100,7 @@ var C = (function () { var M; (function (M) { function exhibitBug() { - function localFunction() { - } + function localFunction() { } var x; x = localFunction; } @@ -114,8 +109,7 @@ var M; var E; (function (E) { E[E["A"] = (function () { - function localFunction() { - } + function localFunction() { } var x; x = localFunction; return 0; diff --git a/tests/baselines/reference/missingSelf.js b/tests/baselines/reference/missingSelf.js index efcec0f03ec..c2c1e04ad5c 100644 --- a/tests/baselines/reference/missingSelf.js +++ b/tests/baselines/reference/missingSelf.js @@ -25,8 +25,7 @@ var CalcButton = (function () { CalcButton.prototype.a = function () { this.onClick(); }; - CalcButton.prototype.onClick = function () { - }; + CalcButton.prototype.onClick = function () { }; return CalcButton; })(); var CalcButton2 = (function () { @@ -36,8 +35,7 @@ var CalcButton2 = (function () { var _this = this; (function () { return _this.onClick(); }); }; - CalcButton2.prototype.onClick = function () { - }; + CalcButton2.prototype.onClick = function () { }; return CalcButton2; })(); var c = new CalcButton(); diff --git a/tests/baselines/reference/missingTypeArguments2.js b/tests/baselines/reference/missingTypeArguments2.js index 713023a3b6b..bc5c1d88f46 100644 --- a/tests/baselines/reference/missingTypeArguments2.js +++ b/tests/baselines/reference/missingTypeArguments2.js @@ -13,7 +13,6 @@ var A = (function () { return A; })(); var x; -(function (a) { -}); +(function (a) { }); var y; (function () { return null; }); diff --git a/tests/baselines/reference/mixingFunctionAndAmbientModule1.js b/tests/baselines/reference/mixingFunctionAndAmbientModule1.js index 3105c923304..db1bc28a144 100644 --- a/tests/baselines/reference/mixingFunctionAndAmbientModule1.js +++ b/tests/baselines/reference/mixingFunctionAndAmbientModule1.js @@ -45,13 +45,11 @@ module E { //// [mixingFunctionAndAmbientModule1.js] var A; (function (A) { - function My(s) { - } + function My(s) { } })(A || (A = {})); var B; (function (B) { - function My(s) { - } + function My(s) { } })(B || (B = {})); var C; (function (C) { diff --git a/tests/baselines/reference/mixingStaticAndInstanceOverloads.js b/tests/baselines/reference/mixingStaticAndInstanceOverloads.js index 59495280771..22367461c2c 100644 --- a/tests/baselines/reference/mixingStaticAndInstanceOverloads.js +++ b/tests/baselines/reference/mixingStaticAndInstanceOverloads.js @@ -39,37 +39,31 @@ class C5 { var C1 = (function () { function C1() { } - C1.foo1 = function (a) { - }; + C1.foo1 = function (a) { }; return C1; })(); var C2 = (function () { function C2() { } - C2.prototype.foo2 = function (a) { - }; + C2.prototype.foo2 = function (a) { }; return C2; })(); var C3 = (function () { function C3() { } - C3.prototype.foo3 = function (a) { - }; + C3.prototype.foo3 = function (a) { }; return C3; })(); var C4 = (function () { function C4() { } - C4.foo4 = function (a) { - }; + C4.foo4 = function (a) { }; return C4; })(); var C5 = (function () { function C5() { } - C5.prototype.foo5 = function (a) { - }; - C5.foo5 = function (a) { - }; + C5.prototype.foo5 = function (a) { }; + C5.foo5 = function (a) { }; return C5; })(); diff --git a/tests/baselines/reference/moduleCodeGenTest5.js b/tests/baselines/reference/moduleCodeGenTest5.js index 6f5f0a4e912..a7580e97ef7 100644 --- a/tests/baselines/reference/moduleCodeGenTest5.js +++ b/tests/baselines/reference/moduleCodeGenTest5.js @@ -24,17 +24,14 @@ var v = E2.B; //// [moduleCodeGenTest5.js] exports.x = 0; var y = 0; -function f1() { -} +function f1() { } exports.f1 = f1; -function f2() { -} +function f2() { } var C1 = (function () { function C1() { this.p1 = 0; } - C1.prototype.p2 = function () { - }; + C1.prototype.p2 = function () { }; return C1; })(); exports.C1 = C1; @@ -42,8 +39,7 @@ var C2 = (function () { function C2() { this.p1 = 0; } - C2.prototype.p2 = function () { - }; + C2.prototype.p2 = function () { }; return C2; })(); (function (E1) { diff --git a/tests/baselines/reference/moduleInTypePosition1.js b/tests/baselines/reference/moduleInTypePosition1.js index 92fcd5b16e2..972bbae63d1 100644 --- a/tests/baselines/reference/moduleInTypePosition1.js +++ b/tests/baselines/reference/moduleInTypePosition1.js @@ -19,5 +19,4 @@ var Promise = (function () { })(); exports.Promise = Promise; //// [moduleInTypePosition1_1.js] -var x = function (w1) { -}; +var x = function (w1) { }; diff --git a/tests/baselines/reference/moduleKeywordRepeatError.js b/tests/baselines/reference/moduleKeywordRepeatError.js index 8ec656f22ae..385bce001a2 100644 --- a/tests/baselines/reference/moduleKeywordRepeatError.js +++ b/tests/baselines/reference/moduleKeywordRepeatError.js @@ -6,5 +6,4 @@ module.module { } //// [moduleKeywordRepeatError.js] // "module.module { }" should raise a syntax error module.module; -{ -} +{ } diff --git a/tests/baselines/reference/moduleMemberWithoutTypeAnnotation1.js b/tests/baselines/reference/moduleMemberWithoutTypeAnnotation1.js index 63ccf613a77..1467ec18b91 100644 --- a/tests/baselines/reference/moduleMemberWithoutTypeAnnotation1.js +++ b/tests/baselines/reference/moduleMemberWithoutTypeAnnotation1.js @@ -102,8 +102,7 @@ var TypeScript; (function (TypeScript) { var Syntax; (function (Syntax) { - function childIndex() { - } + function childIndex() { } Syntax.childIndex = childIndex; var VariableWidthTokenWithTrailingTrivia = (function () { function VariableWidthTokenWithTrailingTrivia() { diff --git a/tests/baselines/reference/moduleNewExportBug.js b/tests/baselines/reference/moduleNewExportBug.js index 51e1bb24144..ce40915b2f6 100644 --- a/tests/baselines/reference/moduleNewExportBug.js +++ b/tests/baselines/reference/moduleNewExportBug.js @@ -19,8 +19,7 @@ var mod1; var C = (function () { function C() { } - C.prototype.moo = function () { - }; + C.prototype.moo = function () { }; return C; })(); })(mod1 || (mod1 = {})); diff --git a/tests/baselines/reference/multiCallOverloads.js b/tests/baselines/reference/multiCallOverloads.js index 85b008d52b7..d4e765c5514 100644 --- a/tests/baselines/reference/multiCallOverloads.js +++ b/tests/baselines/reference/multiCallOverloads.js @@ -14,15 +14,10 @@ load(function(z?) {}) // this shouldn't be an error //// [multiCallOverloads.js] -function load(f) { -} -var f1 = function (z) { -}; -var f2 = function (z) { -}; +function load(f) { } +var f1 = function (z) { }; +var f2 = function (z) { }; load(f1); // ok load(f2); // ok -load(function () { -}); // this shouldn’t be an error -load(function (z) { -}); // this shouldn't be an error +load(function () { }); // this shouldn’t be an error +load(function (z) { }); // this shouldn't be an error diff --git a/tests/baselines/reference/multiModuleClodule1.js b/tests/baselines/reference/multiModuleClodule1.js index a64abd81680..8fa142812cd 100644 --- a/tests/baselines/reference/multiModuleClodule1.js +++ b/tests/baselines/reference/multiModuleClodule1.js @@ -22,12 +22,9 @@ c.foo = C.foo; var C = (function () { function C(x) { } - C.prototype.foo = function () { - }; - C.prototype.bar = function () { - }; - C.boo = function () { - }; + C.prototype.foo = function () { }; + C.prototype.bar = function () { }; + C.boo = function () { }; return C; })(); var C; @@ -37,8 +34,7 @@ var C; })(C || (C = {})); var C; (function (C) { - function foo() { - } + function foo() { } C.foo = foo; function baz() { return ''; diff --git a/tests/baselines/reference/multiModuleFundule1.js b/tests/baselines/reference/multiModuleFundule1.js index f643ed5ee4d..6aa9cb959ba 100644 --- a/tests/baselines/reference/multiModuleFundule1.js +++ b/tests/baselines/reference/multiModuleFundule1.js @@ -13,16 +13,14 @@ var r2 = new C(2); // using void returning function as constructor var r3 = C.foo(); //// [multiModuleFundule1.js] -function C(x) { -} +function C(x) { } var C; (function (C) { C.x = 1; })(C || (C = {})); var C; (function (C) { - function foo() { - } + function foo() { } C.foo = foo; })(C || (C = {})); var r = C(2); diff --git a/tests/baselines/reference/nameCollisions.js b/tests/baselines/reference/nameCollisions.js index 51b66adcefe..2cfaba94993 100644 --- a/tests/baselines/reference/nameCollisions.js +++ b/tests/baselines/reference/nameCollisions.js @@ -76,10 +76,8 @@ var T; })(); // error var w; var f; - function f() { - } //error - function f2() { - } + function f() { } //error + function f2() { } var f2; // error var i; var C = (function () { @@ -87,17 +85,14 @@ var T; } return C; })(); - function C() { - } // error - function C2() { - } + function C() { } // error + function C2() { } var C2 = (function () { function C2() { } return C2; })(); // error - function fi() { - } + function fi() { } var cli = (function () { function cli() { } diff --git a/tests/baselines/reference/negateOperatorWithAnyOtherType.js b/tests/baselines/reference/negateOperatorWithAnyOtherType.js index 190d80eaba3..8418bbbe467 100644 --- a/tests/baselines/reference/negateOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/negateOperatorWithAnyOtherType.js @@ -59,8 +59,7 @@ var ANY; var ANY1; var ANY2 = ["", ""]; var obj; -var obj1 = { x: "", y: function () { -} }; +var obj1 = { x: "", y: function () { } }; function foo() { var a; return a; diff --git a/tests/baselines/reference/nestedClassDeclaration.js b/tests/baselines/reference/nestedClassDeclaration.js index c7f0ffe34fc..fa69ef5950e 100644 --- a/tests/baselines/reference/nestedClassDeclaration.js +++ b/tests/baselines/reference/nestedClassDeclaration.js @@ -30,8 +30,7 @@ var C2 = (function () { } return C2; })(); -function foo() { -} +function foo() { } var C3 = (function () { function C3() { } diff --git a/tests/baselines/reference/newExpressionWithCast.js b/tests/baselines/reference/newExpressionWithCast.js index 6ce025a4267..8743d9b83bc 100644 --- a/tests/baselines/reference/newExpressionWithCast.js +++ b/tests/baselines/reference/newExpressionWithCast.js @@ -15,15 +15,12 @@ var test3 = new (Test3)(); //// [newExpressionWithCast.js] -function Test() { -} +function Test() { } // valid but error with noImplicitAny var test = new Test(); -function Test2() { -} +function Test2() { } // parse error var test2 = new < any > Test2(); -function Test3() { -} +function Test3() { } // valid with noImplicitAny var test3 = new Test3(); diff --git a/tests/baselines/reference/newFunctionImplicitAny.js b/tests/baselines/reference/newFunctionImplicitAny.js index 9f8d303680b..459c7d581d8 100644 --- a/tests/baselines/reference/newFunctionImplicitAny.js +++ b/tests/baselines/reference/newFunctionImplicitAny.js @@ -6,6 +6,5 @@ var test = new Test(); //// [newFunctionImplicitAny.js] // No implicit any error given when newing a function (up for debate) -function Test() { -} +function Test() { } var test = new Test(); diff --git a/tests/baselines/reference/newOperatorConformance.js b/tests/baselines/reference/newOperatorConformance.js index 4e5c209bbff..a04b10dc8fe 100644 --- a/tests/baselines/reference/newOperatorConformance.js +++ b/tests/baselines/reference/newOperatorConformance.js @@ -104,8 +104,7 @@ function newFn2(s) { var p; } // Construct expression of void returning function -function fnVoid() { -} +function fnVoid() { } var t = new fnVoid(); var t; // Chained new expressions diff --git a/tests/baselines/reference/noImplicitAnyForMethodParameters.js b/tests/baselines/reference/noImplicitAnyForMethodParameters.js index 379cf85b5e2..fc5b94d4768 100644 --- a/tests/baselines/reference/noImplicitAnyForMethodParameters.js +++ b/tests/baselines/reference/noImplicitAnyForMethodParameters.js @@ -18,14 +18,12 @@ class D { var C = (function () { function C() { } - C.prototype.foo = function (a) { - }; // OK - non-ambient class and private method - error + C.prototype.foo = function (a) { }; // OK - non-ambient class and private method - error return C; })(); var D = (function () { function D() { } - D.prototype.foo = function (a) { - }; // OK - non-ambient class and public method - error + D.prototype.foo = function (a) { }; // OK - non-ambient class and public method - error return D; })(); diff --git a/tests/baselines/reference/noImplicitAnyParametersInBareFunctions.js b/tests/baselines/reference/noImplicitAnyParametersInBareFunctions.js index 06848d7e89a..bfa7f4b868f 100644 --- a/tests/baselines/reference/noImplicitAnyParametersInBareFunctions.js +++ b/tests/baselines/reference/noImplicitAnyParametersInBareFunctions.js @@ -46,36 +46,20 @@ var f14 = (x, ...r) => ""; //// [noImplicitAnyParametersInBareFunctions.js] // No implicit-'any' errors. -function f1() { -} +function f1() { } // Implicit-'any' error for x. -function f2(x) { -} +function f2(x) { } // No implicit-'any' errors. -function f3(x) { -} +function f3(x) { } // Implicit-'any' errors for x, y, and z. -function f4(x, y, z) { -} +function f4(x, y, z) { } // Implicit-'any' errors for x, and z. -function f5(x, y, z) { -} +function f5(x, y, z) { } // Implicit-'any[]' error for r. -function f6() { - var r = []; - for (var _i = 0; _i < arguments.length; _i++) { - r[_i - 0] = arguments[_i]; - } -} +function f6() { } // Implicit-'any'/'any[]' errors for x, r. -function f7(x) { - var r = []; - for (var _i = 1; _i < arguments.length; _i++) { - r[_i - 1] = arguments[_i]; - } -} -function f8(x3, y3) { -} +function f7(x) { } +function f8(x3, y3) { } // No implicit-'any' errors. var f9 = function () { return ""; }; // Implicit-'any' errors for x. diff --git a/tests/baselines/reference/noImplicitAnyParametersInClass.js b/tests/baselines/reference/noImplicitAnyParametersInClass.js index 82164884b80..089680781b5 100644 --- a/tests/baselines/reference/noImplicitAnyParametersInClass.js +++ b/tests/baselines/reference/noImplicitAnyParametersInClass.js @@ -145,67 +145,35 @@ var C = (function () { }; } // No implicit-'any' errors. - C.prototype.pub_f1 = function () { - }; + C.prototype.pub_f1 = function () { }; // Implicit-'any' errors for x. - C.prototype.pub_f2 = function (x) { - }; + C.prototype.pub_f2 = function (x) { }; // No implicit-'any' errors. - C.prototype.pub_f3 = function (x) { - }; + C.prototype.pub_f3 = function (x) { }; // Implicit-'any' errors for x, y, and z. - C.prototype.pub_f4 = function (x, y, z) { - }; + C.prototype.pub_f4 = function (x, y, z) { }; // Implicit-'any' errors for x, and z. - C.prototype.pub_f5 = function (x, y, z) { - }; + C.prototype.pub_f5 = function (x, y, z) { }; // Implicit-'any[]' errors for r. - C.prototype.pub_f6 = function () { - var r = []; - for (var _i = 0; _i < arguments.length; _i++) { - r[_i - 0] = arguments[_i]; - } - }; + C.prototype.pub_f6 = function () { }; // Implicit-'any'/'any[]' errors for x, r. - C.prototype.pub_f7 = function (x) { - var r = []; - for (var _i = 1; _i < arguments.length; _i++) { - r[_i - 1] = arguments[_i]; - } - }; - C.prototype.pub_f8 = function (x3, y3) { - }; + C.prototype.pub_f7 = function (x) { }; + C.prototype.pub_f8 = function (x3, y3) { }; /////////////////////////////////////////// // No implicit-'any' errors. - C.prototype.priv_f1 = function () { - }; + C.prototype.priv_f1 = function () { }; // Implicit-'any' errors for x. - C.prototype.priv_f2 = function (x) { - }; + C.prototype.priv_f2 = function (x) { }; // No implicit-'any' errors. - C.prototype.priv_f3 = function (x) { - }; + C.prototype.priv_f3 = function (x) { }; // Implicit-'any' errors for x, y, and z. - C.prototype.priv_f4 = function (x, y, z) { - }; + C.prototype.priv_f4 = function (x, y, z) { }; // Implicit-'any' errors for x, and z. - C.prototype.priv_f5 = function (x, y, z) { - }; + C.prototype.priv_f5 = function (x, y, z) { }; // Implicit-'any[]' errors for r. - C.prototype.priv_f6 = function () { - var r = []; - for (var _i = 0; _i < arguments.length; _i++) { - r[_i - 0] = arguments[_i]; - } - }; + C.prototype.priv_f6 = function () { }; // Implicit-'any'/'any[]' errors for x, r. - C.prototype.priv_f7 = function (x) { - var r = []; - for (var _i = 1; _i < arguments.length; _i++) { - r[_i - 1] = arguments[_i]; - } - }; - C.prototype.priv_f8 = function (x3, y3) { - }; + C.prototype.priv_f7 = function (x) { }; + C.prototype.priv_f8 = function (x3, y3) { }; return C; })(); diff --git a/tests/baselines/reference/noImplicitAnyParametersInModule.js b/tests/baselines/reference/noImplicitAnyParametersInModule.js index fccb16cefa7..7c31ccb8013 100644 --- a/tests/baselines/reference/noImplicitAnyParametersInModule.js +++ b/tests/baselines/reference/noImplicitAnyParametersInModule.js @@ -50,36 +50,20 @@ module M { var M; (function (M) { // No implicit-'any' errors. - function m_f1() { - } + function m_f1() { } // Implicit-'any' error for x. - function m_f2(x) { - } + function m_f2(x) { } // No implicit-'any' errors. - function m_f3(x) { - } + function m_f3(x) { } // Implicit-'any' errors for x, y, and z. - function m_f4(x, y, z) { - } + function m_f4(x, y, z) { } // Implicit-'any' errors for x and z. - function m_f5(x, y, z) { - } + function m_f5(x, y, z) { } // Implicit-'any[]' error for r. - function m_f6() { - var r = []; - for (var _i = 0; _i < arguments.length; _i++) { - r[_i - 0] = arguments[_i]; - } - } + function m_f6() { } // Implicit-'any'/'any[]' errors for x and r. - function m_f7(x) { - var r = []; - for (var _i = 1; _i < arguments.length; _i++) { - r[_i - 1] = arguments[_i]; - } - } - function m_f8(x3, y3) { - } + function m_f7(x) { } + function m_f8(x3, y3) { } // No implicit-'any' errors. var m_f9 = function () { return ""; }; // Implicit-'any' error for x. diff --git a/tests/baselines/reference/noImplicitAnyWithOverloads.js b/tests/baselines/reference/noImplicitAnyWithOverloads.js index 3bce6e18ba3..c2e9f174ada 100644 --- a/tests/baselines/reference/noImplicitAnyWithOverloads.js +++ b/tests/baselines/reference/noImplicitAnyWithOverloads.js @@ -10,8 +10,7 @@ function callb(a) { } callb((a) => { a.foo; }); // error, chose first overload //// [noImplicitAnyWithOverloads.js] -function callb(a) { -} +function callb(a) { } callb(function (a) { a.foo; }); // error, chose first overload diff --git a/tests/baselines/reference/noSelfOnVars.js b/tests/baselines/reference/noSelfOnVars.js index 2e1f5080c26..913e3a23ba2 100644 --- a/tests/baselines/reference/noSelfOnVars.js +++ b/tests/baselines/reference/noSelfOnVars.js @@ -9,7 +9,6 @@ function foo() { //// [noSelfOnVars.js] function foo() { - function bar() { - } + function bar() { } var x = bar; } diff --git a/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.js b/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.js index 717c364d52c..8afbb0c6201 100644 --- a/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.js +++ b/tests/baselines/reference/nullIsSubtypeOfEverythingButUndefined.js @@ -110,10 +110,8 @@ var r5 = true ? /1/ : null; var r5 = true ? null : /1/; var r6 = true ? { foo: 1 } : null; var r6 = true ? null : { foo: 1 }; -var r7 = true ? function () { -} : null; -var r7 = true ? null : function () { -}; +var r7 = true ? function () { } : null; +var r7 = true ? null : function () { }; var r8 = true ? function (x) { return x; } : null; @@ -147,8 +145,7 @@ var r13 = true ? E : null; var r13 = true ? null : E; var r14 = true ? 0 /* A */ : null; var r14 = true ? null : 0 /* A */; -function f() { -} +function f() { } var f; (function (f) { f.bar = 1; diff --git a/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.js b/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.js index 339f674b9da..cf08bb98217 100644 --- a/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.js +++ b/tests/baselines/reference/numericIndexerConstrainsPropertyDeclarations.js @@ -106,8 +106,7 @@ var C = (function () { get: function () { return ''; }, - set: function (v) { - } // ok + set: function (v) { } // ok , enumerable: true, configurable: true @@ -115,8 +114,7 @@ var C = (function () { C.prototype.foo = function () { return ''; }; - C.foo = function () { - }; // ok + C.foo = function () { }; // ok Object.defineProperty(C, "X", { get: function () { return 1; @@ -131,8 +129,7 @@ var a; var b = { a: '', b: 1, - c: function () { - }, + c: function () { }, "d": '', "e": 1, 1.0: '', @@ -143,8 +140,7 @@ var b = { get X() { return ''; }, - set X(v) { - }, + set X(v) { }, foo: function () { return ''; } diff --git a/tests/baselines/reference/numericIndexerConstraint1.js b/tests/baselines/reference/numericIndexerConstraint1.js index 9587863a035..ed51e3af066 100644 --- a/tests/baselines/reference/numericIndexerConstraint1.js +++ b/tests/baselines/reference/numericIndexerConstraint1.js @@ -8,8 +8,7 @@ var result: Foo = x["one"]; // error var Foo = (function () { function Foo() { } - Foo.prototype.foo = function () { - }; + Foo.prototype.foo = function () { }; return Foo; })(); var x; diff --git a/tests/baselines/reference/numericIndexerConstraint2.js b/tests/baselines/reference/numericIndexerConstraint2.js index edc9df36a13..4d8ce742e73 100644 --- a/tests/baselines/reference/numericIndexerConstraint2.js +++ b/tests/baselines/reference/numericIndexerConstraint2.js @@ -8,8 +8,7 @@ x = a; var Foo = (function () { function Foo() { } - Foo.prototype.foo = function () { - }; + Foo.prototype.foo = function () { }; return Foo; })(); var x; diff --git a/tests/baselines/reference/objectLiteralErrors.js b/tests/baselines/reference/objectLiteralErrors.js index 2a72e8a2a77..06158cb87c9 100644 --- a/tests/baselines/reference/objectLiteralErrors.js +++ b/tests/baselines/reference/objectLiteralErrors.js @@ -126,13 +126,10 @@ var f17 = { a: 0, get b() { // Get and set accessor with mismatched type annotations var g1 = { get a() { return 4; -}, set a(n) { -} }; +}, set a(n) { } }; var g2 = { get a() { return 4; -}, set a(n) { -} }; +}, set a(n) { } }; var g3 = { get a() { return undefined; -}, set a(n) { -} }; +}, set a(n) { } }; diff --git a/tests/baselines/reference/objectLiteralErrorsES3.js b/tests/baselines/reference/objectLiteralErrorsES3.js index 5b98da0039d..6543827d9f3 100644 --- a/tests/baselines/reference/objectLiteralErrorsES3.js +++ b/tests/baselines/reference/objectLiteralErrorsES3.js @@ -10,9 +10,7 @@ var e3 = { get a() { return ''; }, set a(n) { } }; var e1 = { get a() { return 4; } }; -var e2 = { set a(n) { -} }; +var e2 = { set a(n) { } }; var e3 = { get a() { return ''; -}, set a(n) { -} }; +}, set a(n) { } }; diff --git a/tests/baselines/reference/objectLiteralFunctionArgContextualTyping.js b/tests/baselines/reference/objectLiteralFunctionArgContextualTyping.js index 0cd1626222b..7f9bdc5c54a 100644 --- a/tests/baselines/reference/objectLiteralFunctionArgContextualTyping.js +++ b/tests/baselines/reference/objectLiteralFunctionArgContextualTyping.js @@ -14,8 +14,7 @@ f2({ toString: (s: string) => s }) // error, missing property value from ArgsStr f2({ value: '', toString: (s) => s.uhhh }) // error //// [objectLiteralFunctionArgContextualTyping.js] -function f2(args) { -} +function f2(args) { } f2({ hello: 1 }); // error f2({ value: '' }); // missing toString satisfied by Object's member f2({ value: '', what: 1 }); // missing toString satisfied by Object's member diff --git a/tests/baselines/reference/objectLiteralFunctionArgContextualTyping2.js b/tests/baselines/reference/objectLiteralFunctionArgContextualTyping2.js index d7e9681791e..96d1106e1ff 100644 --- a/tests/baselines/reference/objectLiteralFunctionArgContextualTyping2.js +++ b/tests/baselines/reference/objectLiteralFunctionArgContextualTyping2.js @@ -14,8 +14,7 @@ f2({ toString: (s: string) => s }) f2({ value: '', toString: (s) => s.uhhh }) //// [objectLiteralFunctionArgContextualTyping2.js] -function f2(args) { -} +function f2(args) { } f2({ hello: 1 }); f2({ value: '' }); f2({ value: '', what: 1 }); diff --git a/tests/baselines/reference/objectLiteralGettersAndSetters.js b/tests/baselines/reference/objectLiteralGettersAndSetters.js index b602650ef8d..bd261697d5f 100644 --- a/tests/baselines/reference/objectLiteralGettersAndSetters.js +++ b/tests/baselines/reference/objectLiteralGettersAndSetters.js @@ -143,35 +143,28 @@ var getter2 = { get x() { } }; var getter2; // Set accessor only, type of the property is the param type of the set accessor -var setter1 = { set x(n) { -} }; +var setter1 = { set x(n) { } }; var setter1; // Set accessor only, type of the property is Any for an unannotated set accessor -var setter2 = { set x(n) { -} }; +var setter2 = { set x(n) { } }; var setter2; var anyVar; // Get and set accessor with matching type annotations var sameType1 = { get x() { return undefined; -}, set x(n) { -} }; +}, set x(n) { } }; var sameType2 = { get x() { return undefined; -}, set x(n) { -} }; +}, set x(n) { } }; var sameType3 = { get x() { return undefined; -}, set x(n) { -} }; +}, set x(n) { } }; var sameType4 = { get x() { return undefined; -}, set x(n) { -} }; +}, set x(n) { } }; // Type of unannotated get accessor return type is the type annotation of the set accessor param var setParamType1 = { - set n(x) { - }, + set n(x) { }, get n() { return function (t) { var p; @@ -186,8 +179,7 @@ var setParamType2 = { var p = t; }; }, - set n(x) { - } + set n(x) { } }; // Type of unannotated set accessor parameter is the return type annotation of the get accessor var getParamType1 = { diff --git a/tests/baselines/reference/objectLiteralMemberWithModifiers1.js b/tests/baselines/reference/objectLiteralMemberWithModifiers1.js index 8b8c76be518..a4389d49bdf 100644 --- a/tests/baselines/reference/objectLiteralMemberWithModifiers1.js +++ b/tests/baselines/reference/objectLiteralMemberWithModifiers1.js @@ -2,5 +2,4 @@ var v = { public foo() { } } //// [objectLiteralMemberWithModifiers1.js] -var v = { foo: function () { -} }; +var v = { foo: function () { } }; diff --git a/tests/baselines/reference/objectLiteralMemberWithModifiers2.js b/tests/baselines/reference/objectLiteralMemberWithModifiers2.js index fd8e0a68430..ffe2b6678df 100644 --- a/tests/baselines/reference/objectLiteralMemberWithModifiers2.js +++ b/tests/baselines/reference/objectLiteralMemberWithModifiers2.js @@ -2,5 +2,4 @@ var v = { public get foo() { } } //// [objectLiteralMemberWithModifiers2.js] -var v = { get foo() { -} }; +var v = { get foo() { } }; diff --git a/tests/baselines/reference/objectLiteralMemberWithQuestionMark1.js b/tests/baselines/reference/objectLiteralMemberWithQuestionMark1.js index 7d646cfab8e..62f7a6eefe2 100644 --- a/tests/baselines/reference/objectLiteralMemberWithQuestionMark1.js +++ b/tests/baselines/reference/objectLiteralMemberWithQuestionMark1.js @@ -2,5 +2,4 @@ var v = { foo?() { } } //// [objectLiteralMemberWithQuestionMark1.js] -var v = { foo: function () { -} }; +var v = { foo: function () { } }; diff --git a/tests/baselines/reference/objectLiteralShorthandProperties.js b/tests/baselines/reference/objectLiteralShorthandProperties.js index 776b2bbe454..bc18ecfb948 100644 --- a/tests/baselines/reference/objectLiteralShorthandProperties.js +++ b/tests/baselines/reference/objectLiteralShorthandProperties.js @@ -32,8 +32,7 @@ var x3 = { a: 0, b: b, c: c, - d: function () { - }, + d: function () { }, x3: x3, parent: x3 }; diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.js b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.js index 2ef29a37084..c000a30181d 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.js +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignment.js @@ -18,8 +18,7 @@ var person3: { name: string; id:number } = bar("Hello", 5); var id = 10000; var name = "my name"; var person = { name: name, id: id }; -function foo(obj) { -} +function foo(obj) { } ; function bar(name, id) { return { name: name, id: id }; diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.js b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.js index b2f9004b076..ee99de6d470 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.js +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentES6.js @@ -18,8 +18,7 @@ var person3: { name: string; id: number } = bar("Hello", 5); var id = 10000; var name = "my name"; var person = { name, id }; -function foo(obj) { -} +function foo(obj) { } ; function bar(name, id) { return { name, id }; diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.js b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.js index 84a5a9342d0..1bef1cc9554 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.js +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesAssignmentError.js @@ -19,6 +19,5 @@ var person1 = name, id; function foo(name, id) { return { name: name, id: id }; } // error -function bar(obj) { -} +function bar(obj) { } bar({ name: name, id: id }); // error diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesES6.js b/tests/baselines/reference/objectLiteralShorthandPropertiesES6.js index c65087a8da7..9b19bdc8b5e 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesES6.js +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesES6.js @@ -32,8 +32,7 @@ var x3 = { a: 0, b, c, - d() { - }, + d() { }, x3, parent: x3 }; diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesErrorFromNotUsingIdentifier.js b/tests/baselines/reference/objectLiteralShorthandPropertiesErrorFromNotUsingIdentifier.js index 79e7882796f..b72f0351b9c 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesErrorFromNotUsingIdentifier.js +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesErrorFromNotUsingIdentifier.js @@ -25,10 +25,8 @@ var v = { class }; // error var y = { "stringLiteral": , 42: , - get e() { - }, - set f() { - }, + get e() { }, + set f() { }, this: , super: , var: , diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.js b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.js index f6e20b605b6..860abc24b19 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.js +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument.js @@ -14,7 +14,6 @@ var obj = { name: name, id: id }; var id = 10000; var name = "my name"; var person = { name: name, id: id }; -function foo(p) { -} +function foo(p) { } foo(person); var obj = { name: name, id: id }; diff --git a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.js b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.js index 2f3535ef78a..7e9d2e7ca8b 100644 --- a/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.js +++ b/tests/baselines/reference/objectLiteralShorthandPropertiesFunctionArgument2.js @@ -12,6 +12,5 @@ foo(person); // error var id = 10000; var name = "my name"; var person = { name: name, id: id }; -function foo(p) { -} +function foo(p) { } foo(person); // error diff --git a/tests/baselines/reference/objectTypeHidingMembersOfExtendedObject.js b/tests/baselines/reference/objectTypeHidingMembersOfExtendedObject.js index fa41e57e22e..16268c1331c 100644 --- a/tests/baselines/reference/objectTypeHidingMembersOfExtendedObject.js +++ b/tests/baselines/reference/objectTypeHidingMembersOfExtendedObject.js @@ -76,8 +76,7 @@ var B = (function (_super) { var C = (function () { function C() { } - C.prototype.valueOf = function () { - }; + C.prototype.valueOf = function () { }; return C; })(); var c; @@ -91,8 +90,7 @@ var r2b = i.data; var r2c = r2b['hm']; // should be 'Object' var r2d = i['hm']; // should be 'any' var a = { - valueOf: function () { - }, + valueOf: function () { }, data: new B() }; var r3 = a.valueOf(); diff --git a/tests/baselines/reference/objectTypeHidingMembersOfObject.js b/tests/baselines/reference/objectTypeHidingMembersOfObject.js index 113329cf8b6..291cc1858fd 100644 --- a/tests/baselines/reference/objectTypeHidingMembersOfObject.js +++ b/tests/baselines/reference/objectTypeHidingMembersOfObject.js @@ -32,8 +32,7 @@ var r4: void = b.valueOf(); var C = (function () { function C() { } - C.prototype.valueOf = function () { - }; + C.prototype.valueOf = function () { }; return C; })(); var c; @@ -41,8 +40,7 @@ var r1 = c.valueOf(); var i; var r2 = i.valueOf(); var a = { - valueOf: function () { - } + valueOf: function () { } }; var r3 = a.valueOf(); var b; diff --git a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.js b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.js index 93d985f7987..5ae0c2fb1bb 100644 --- a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.js +++ b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat.js @@ -29,16 +29,14 @@ i = o; // ok var C = (function () { function C() { } - C.prototype.toString = function () { - }; + C.prototype.toString = function () { }; return C; })(); var c; o = c; // error c = o; // ok var a = { - toString: function () { - } + toString: function () { } }; o = a; // error a = o; // ok diff --git a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.js b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.js index b8a5aa87aef..9c327ca3a38 100644 --- a/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.js +++ b/tests/baselines/reference/objectTypeHidingMembersOfObjectAssignmentCompat2.js @@ -38,8 +38,7 @@ var c; o = c; // error c = o; // error var a = { - toString: function () { - } + toString: function () { } }; o = a; // error a = o; // ok diff --git a/tests/baselines/reference/objectTypesIdentity.js b/tests/baselines/reference/objectTypesIdentity.js index adfef8574ed..7eccee23651 100644 --- a/tests/baselines/reference/objectTypesIdentity.js +++ b/tests/baselines/reference/objectTypesIdentity.js @@ -107,37 +107,20 @@ var C = (function () { })(); var a; var b = { foo: '' }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentity2.js b/tests/baselines/reference/objectTypesIdentity2.js index 19fc65e91e0..adbb9caeada 100644 --- a/tests/baselines/reference/objectTypesIdentity2.js +++ b/tests/baselines/reference/objectTypesIdentity2.js @@ -88,25 +88,14 @@ var E; E[E["A"] = 0] = "A"; })(E || (E = {})); var b = { foo: 0 /* A */ }; -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignatures.js b/tests/baselines/reference/objectTypesIdentityWithCallSignatures.js index a8d395a813f..21cfc280500 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignatures.js +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignatures.js @@ -130,41 +130,22 @@ var a; var b = { foo: function (x) { return ''; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.js b/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.js index af8496105da..0c7e54ded21 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.js +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignatures2.js @@ -130,41 +130,22 @@ var a; var b = { foo: function (x) { return ''; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignatures3.js b/tests/baselines/reference/objectTypesIdentityWithCallSignatures3.js index 289ba25bf6e..f4cfc8dc605 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignatures3.js +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignatures3.js @@ -42,17 +42,10 @@ function foo15(x: any) { } //// [objectTypesIdentityWithCallSignatures3.js] // object types are identical structurally var a; -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo14b(x) { -} -function foo15(x) { -} +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo13(x) { } +function foo14(x) { } +function foo14b(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.js b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.js index 713401d0302..434d1cdd31e 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.js +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts.js @@ -130,41 +130,22 @@ var a; var b = { foo: function (x) { return ''; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.js b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.js index fe84b3e6b92..98b17767b75 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.js +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesDifferingParamCounts2.js @@ -46,19 +46,11 @@ function foo15(x: any) { } //// [objectTypesIdentityWithCallSignaturesDifferingParamCounts2.js] // object types are identical structurally var a; -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo14b(x) { -} -function foo15(x) { -} +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo13(x) { } +function foo14(x) { } +function foo14b(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.js b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.js index 29cb6f3cd54..52dc447f5fb 100644 --- a/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.js +++ b/tests/baselines/reference/objectTypesIdentityWithCallSignaturesWithOverloads.js @@ -148,41 +148,22 @@ var b = { return ''; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithComplexConstraints.js b/tests/baselines/reference/objectTypesIdentityWithComplexConstraints.js index 9f16153da37..ca9db28223a 100644 --- a/tests/baselines/reference/objectTypesIdentityWithComplexConstraints.js +++ b/tests/baselines/reference/objectTypesIdentityWithComplexConstraints.js @@ -15,5 +15,4 @@ function foo(x: B); // error after constraints above made illegal function foo(x: any) { } //// [objectTypesIdentityWithComplexConstraints.js] -function foo(x) { -} +function foo(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.js b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.js index caf28cd05de..91208da5b90 100644 --- a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.js +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures.js @@ -105,35 +105,19 @@ var C = (function () { return C; })(); var a; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.js b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.js index 8825f8c301f..b3381ac5825 100644 --- a/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.js +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignatures2.js @@ -94,31 +94,17 @@ var a; var b = { new: function (x) { return ''; } }; // not a construct signature, function called new -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.js b/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.js index 49b2b071a7e..0010d8815b4 100644 --- a/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.js +++ b/tests/baselines/reference/objectTypesIdentityWithConstructSignaturesDifferingParamCounts.js @@ -94,31 +94,17 @@ var a; var b = { new: function (x) { return ''; } }; // not a construct signature, function called new -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.js index 939a73f4778..cc17fcbeaf3 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures.js @@ -130,41 +130,22 @@ var a; var b = { foo: function (x) { return x; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.js index e699b71eb42..0dc2c18d491 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignatures2.js @@ -130,41 +130,22 @@ var a; var b = { foo: function (x, y) { return x; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.js index a323308b2e4..b0652b29b7f 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints.js @@ -134,41 +134,22 @@ var a; var b = { foo: function (x) { return ''; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.js index 3a6261da8c0..3486157840c 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints2.js @@ -154,45 +154,24 @@ var a; var b = { foo: function (x, y) { return ''; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo5c(x) { -} -function foo6c(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo5c(x) { } +function foo6c(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.js index 4e018372033..714e7dbf142 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByConstraints3.js @@ -173,45 +173,24 @@ var a; var b = { foo: function (x, y) { return ''; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo5c(x) { -} -function foo6c(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo5c(x) { } +function foo6c(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.js index 783749605ef..e1940c41587 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType.js @@ -134,41 +134,22 @@ var a; var b = { foo: function (x) { return null; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.js index d743283e22a..b4eaf096ec8 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingByReturnType2.js @@ -134,41 +134,22 @@ var a; var b = { foo: function (x) { return null; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.js index a344917987e..2c9ad2767d9 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts.js @@ -130,41 +130,22 @@ var a; var b = { foo: function (x) { return x; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.js index 944fb7d9846..6bfd019dc86 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.js @@ -43,17 +43,10 @@ function foo15(x: any) { } //// [objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterCounts2.js] // object types are identical structurally var a; -function foo1(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo14b(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo2(x) { } +function foo3(x) { } +function foo13(x) { } +function foo14(x) { } +function foo14b(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.js index 19aea02ced0..3e98e5887a9 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesDifferingTypeParameterNames.js @@ -130,41 +130,22 @@ var a; var b = { foo: function (x) { return x; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.js index 82f87fe4904..36d17758c94 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams.js @@ -134,41 +134,22 @@ var a; var b = { foo: function (x, y) { return x; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.js index 02222da9530..4e58adda1c4 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams2.js @@ -134,41 +134,22 @@ var a; var b = { foo: function (x, y) { return x; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.js b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.js index bf0f8211205..71842d18781 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericCallSignaturesOptionalParams3.js @@ -134,41 +134,22 @@ var a; var b = { foo: function (x, y) { return x; } }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.js b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.js index e495fa98d65..6183be4fb69 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints.js @@ -95,29 +95,16 @@ var a; var b = { new: function (x) { return ''; } }; // not a construct signature, function called new -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.js b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.js index de9a9bf8c2b..59a801134d4 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints2.js @@ -112,33 +112,18 @@ var a; var b = { new: function (x, y) { return ''; } }; // not a construct signature, function called new -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5c(x) { -} -function foo6c(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5c(x) { } +function foo6c(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.js b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.js index ee06af6d5e1..d61edd07382 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByConstraints3.js @@ -131,33 +131,18 @@ var a; var b = { new: function (x, y) { return ''; } }; // not a construct signature, function called new -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5c(x) { -} -function foo6c(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5c(x) { } +function foo6c(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.js b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.js index 48b8f4a5c5d..b390f7a933b 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType.js @@ -102,33 +102,18 @@ var a; var b = { new: function (x) { return null; } }; // not a construct signature, function called new -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.js b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.js index b09dcf9ba9c..d22cc6b254e 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingByReturnType2.js @@ -98,31 +98,17 @@ var a; var b = { new: function (x) { return null; } }; // not a construct signature, function called new -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.js b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.js index 6a086c317a2..99d3f8287df 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterCounts.js @@ -90,29 +90,16 @@ var a; var b = { new: function (x) { return x; } }; -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.js b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.js index e9cb0e7b0d5..cd77c1ee3d1 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesDifferingTypeParameterNames.js @@ -90,29 +90,16 @@ var a; var b = { new: function (x) { return new C(x); } }; -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.js b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.js index 42ab74801b1..72b8e7c8d8f 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams.js @@ -94,29 +94,16 @@ var a; var b = { new: function (x, y) { return new C(x, y); } }; // not a construct signature, function called new -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.js b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.js index 182a642af91..1c781f299ce 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams2.js @@ -94,29 +94,16 @@ var a; var b = { new: function (x, y) { return new C(x, y); } }; // not a construct signature, function called new -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.js b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.js index a3714bd9dd2..8c5aca3cb1c 100644 --- a/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.js +++ b/tests/baselines/reference/objectTypesIdentityWithGenericConstructSignaturesOptionalParams3.js @@ -94,29 +94,16 @@ var a; var b = { new: function (x, y) { return new C(x, y); } }; // not a construct signature, function called new -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo12b(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo12b(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.js b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.js index 06cb05a2dd6..1dc6505456a 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.js +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers1.js @@ -161,49 +161,26 @@ var PB = (function (_super) { })(B); var a; var b = { foo: '' }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo5c(x) { -} -function foo5d(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo11b(x) { -} -function foo11c(x) { -} -function foo12(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} -function foo16(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo5c(x) { } +function foo5d(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo11b(x) { } +function foo11c(x) { } +function foo12(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } +function foo16(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.js b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.js index b51f8383d4f..e2fd1b99bfa 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.js +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers2.js @@ -176,49 +176,26 @@ var PB = (function (_super) { })(B); var a; var b = { foo: null }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo5c(x) { -} -function foo5d(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo11b(x) { -} -function foo11c(x) { -} -function foo12(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} -function foo16(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo5c(x) { } +function foo5d(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo11b(x) { } +function foo11c(x) { } +function foo12(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } +function foo16(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.js b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.js index f0c434d860b..11d64efc9d5 100644 --- a/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.js +++ b/tests/baselines/reference/objectTypesIdentityWithNumericIndexers3.js @@ -161,49 +161,26 @@ var PB = (function (_super) { })(B); var a; var b = { foo: '' }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo5c(x) { -} -function foo5d(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo11b(x) { -} -function foo11c(x) { -} -function foo12(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} -function foo16(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo5c(x) { } +function foo5d(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo11b(x) { } +function foo11c(x) { } +function foo12(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } +function foo16(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithOptionality.js b/tests/baselines/reference/objectTypesIdentityWithOptionality.js index 642e0617c69..2a61cda1bb9 100644 --- a/tests/baselines/reference/objectTypesIdentityWithOptionality.js +++ b/tests/baselines/reference/objectTypesIdentityWithOptionality.js @@ -75,21 +75,12 @@ var C = (function () { })(); var a; var b = { foo: '' }; -function foo2(x) { -} -function foo3(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo10(x) { -} -function foo12(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo2(x) { } +function foo3(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo10(x) { } +function foo12(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithPrivates.js b/tests/baselines/reference/objectTypesIdentityWithPrivates.js index 17e7240353d..5c8a0afed72 100644 --- a/tests/baselines/reference/objectTypesIdentityWithPrivates.js +++ b/tests/baselines/reference/objectTypesIdentityWithPrivates.js @@ -159,49 +159,26 @@ var PB = (function (_super) { })(B); var a; var b = { foo: '' }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo5c(x) { -} -function foo5d(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo11b(x) { -} -function foo11c(x) { -} -function foo12(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} -function foo16(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo5c(x) { } +function foo5d(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo11b(x) { } +function foo11c(x) { } +function foo12(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } +function foo16(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithPrivates2.js b/tests/baselines/reference/objectTypesIdentityWithPrivates2.js index 4e62e7b551a..36c3e67c70e 100644 --- a/tests/baselines/reference/objectTypesIdentityWithPrivates2.js +++ b/tests/baselines/reference/objectTypesIdentityWithPrivates2.js @@ -58,17 +58,11 @@ var D = (function (_super) { } return D; })(C); -function foo1(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} +function foo1(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } var r = foo4(new C()); var r = foo4(new D()); -function foo5(x) { -} -function foo6(x) { -} +function foo5(x) { } +function foo6(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithPublics.js b/tests/baselines/reference/objectTypesIdentityWithPublics.js index 061275372ac..7c36eb48f2c 100644 --- a/tests/baselines/reference/objectTypesIdentityWithPublics.js +++ b/tests/baselines/reference/objectTypesIdentityWithPublics.js @@ -107,37 +107,20 @@ var C = (function () { })(); var a; var b = { foo: '' }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo12(x) { -} -function foo13(x) { -} -function foo14(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo12(x) { } +function foo13(x) { } +function foo14(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithStringIndexers.js b/tests/baselines/reference/objectTypesIdentityWithStringIndexers.js index 538c6267710..37c5537aa4b 100644 --- a/tests/baselines/reference/objectTypesIdentityWithStringIndexers.js +++ b/tests/baselines/reference/objectTypesIdentityWithStringIndexers.js @@ -161,49 +161,26 @@ var PB = (function (_super) { })(B); var a; var b = { foo: '' }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo5c(x) { -} -function foo5d(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo11b(x) { -} -function foo11c(x) { -} -function foo12(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} -function foo16(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo5c(x) { } +function foo5d(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo11b(x) { } +function foo11c(x) { } +function foo12(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } +function foo16(x) { } diff --git a/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.js b/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.js index cbf4dfff6c4..e90dc8598e4 100644 --- a/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.js +++ b/tests/baselines/reference/objectTypesIdentityWithStringIndexers2.js @@ -176,49 +176,26 @@ var PB = (function (_super) { })(B); var a; var b = { foo: null }; -function foo1(x) { -} -function foo1b(x) { -} -function foo1c(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} -function foo5b(x) { -} -function foo5c(x) { -} -function foo5d(x) { -} -function foo6(x) { -} -function foo7(x) { -} -function foo8(x) { -} -function foo9(x) { -} -function foo10(x) { -} -function foo11(x) { -} -function foo11b(x) { -} -function foo11c(x) { -} -function foo12(x) { -} -function foo13(x) { -} -function foo14(x) { -} -function foo15(x) { -} -function foo16(x) { -} +function foo1(x) { } +function foo1b(x) { } +function foo1c(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } +function foo5b(x) { } +function foo5c(x) { } +function foo5d(x) { } +function foo6(x) { } +function foo7(x) { } +function foo8(x) { } +function foo9(x) { } +function foo10(x) { } +function foo11(x) { } +function foo11b(x) { } +function foo11c(x) { } +function foo12(x) { } +function foo13(x) { } +function foo14(x) { } +function foo15(x) { } +function foo16(x) { } diff --git a/tests/baselines/reference/objectTypesWithOptionalProperties2.js b/tests/baselines/reference/objectTypesWithOptionalProperties2.js index 3faa10447b6..7a237223d7c 100644 --- a/tests/baselines/reference/objectTypesWithOptionalProperties2.js +++ b/tests/baselines/reference/objectTypesWithOptionalProperties2.js @@ -42,7 +42,6 @@ var C2 = (function () { return C2; })(); var b = { - x: function () { - }, + x: function () { }, 1: // error }; diff --git a/tests/baselines/reference/optionalArgsWithDefaultValues.js b/tests/baselines/reference/optionalArgsWithDefaultValues.js index 12ab7c9f330..ab1aa2f5c15 100644 --- a/tests/baselines/reference/optionalArgsWithDefaultValues.js +++ b/tests/baselines/reference/optionalArgsWithDefaultValues.js @@ -10,21 +10,12 @@ var a = (x?=0) => { return 1; }; var b = (x, y?:number = 2) => { x; }; //// [optionalArgsWithDefaultValues.js] -function foo(x, y, z) { - if (y === void 0) { y = false; } - if (z === void 0) { z = 0; } -} +function foo(x, y, z) { } var CCC = (function () { function CCC() { } - CCC.prototype.foo = function (x, y, z) { - if (y === void 0) { y = false; } - if (z === void 0) { z = 0; } - }; - CCC.foo2 = function (x, y, z) { - if (y === void 0) { y = false; } - if (z === void 0) { z = 0; } - }; + CCC.prototype.foo = function (x, y, z) { }; + CCC.foo2 = function (x, y, z) { }; return CCC; })(); var a = function (x) { diff --git a/tests/baselines/reference/optionalConstructorArgInSuper.js b/tests/baselines/reference/optionalConstructorArgInSuper.js index 45c0e032cd8..5204d7f8307 100644 --- a/tests/baselines/reference/optionalConstructorArgInSuper.js +++ b/tests/baselines/reference/optionalConstructorArgInSuper.js @@ -20,8 +20,7 @@ var __extends = this.__extends || function (d, b) { var Base = (function () { function Base(opt) { } - Base.prototype.foo = function (other) { - }; + Base.prototype.foo = function (other) { }; return Base; })(); var Derived = (function (_super) { diff --git a/tests/baselines/reference/optionalParamArgsTest.js b/tests/baselines/reference/optionalParamArgsTest.js index 942b95d245e..6f9b97036ed 100644 --- a/tests/baselines/reference/optionalParamArgsTest.js +++ b/tests/baselines/reference/optionalParamArgsTest.js @@ -260,11 +260,7 @@ c1o1.C1M4(); i1o1.C1M4(); F4(); L4(); -function fnOpt1(id, children, expectedPath, isRoot) { - if (children === void 0) { children = []; } - if (expectedPath === void 0) { expectedPath = []; } -} -function fnOpt2(id, children, expectedPath, isRoot) { -} +function fnOpt1(id, children, expectedPath, isRoot) { } +function fnOpt2(id, children, expectedPath, isRoot) { } fnOpt1(1, [2, 3], [1], true); fnOpt2(1, [2, 3], [1], true); diff --git a/tests/baselines/reference/optionalParamInOverride.js b/tests/baselines/reference/optionalParamInOverride.js index 0a094c6534c..cfdfce368d0 100644 --- a/tests/baselines/reference/optionalParamInOverride.js +++ b/tests/baselines/reference/optionalParamInOverride.js @@ -17,8 +17,7 @@ var __extends = this.__extends || function (d, b) { var Z = (function () { function Z() { } - Z.prototype.func = function () { - }; + Z.prototype.func = function () { }; return Z; })(); var Y = (function (_super) { @@ -26,7 +25,6 @@ var Y = (function (_super) { function Y() { _super.apply(this, arguments); } - Y.prototype.func = function (value) { - }; + Y.prototype.func = function (value) { }; return Y; })(Z); diff --git a/tests/baselines/reference/optionalPropertiesTest.js b/tests/baselines/reference/optionalPropertiesTest.js index 708f2803a38..617db8d6185 100644 --- a/tests/baselines/reference/optionalPropertiesTest.js +++ b/tests/baselines/reference/optionalPropertiesTest.js @@ -46,8 +46,7 @@ var foo; foo = { id: 1234 }; // Ok foo = { id: 1234, name: "test" }; // Ok foo = { name: "test" }; // Error, id missing -foo = { id: 1234, print: function () { -} }; // Ok +foo = { id: 1234, print: function () { } }; // Ok var s = foo.name || "default"; if (foo.print !== undefined) foo.print(); @@ -59,11 +58,9 @@ var test1 = {}; var test2 = {}; var test3 = {}; var test4 = {}; -var test5 = { M: function () { -} }; +var test5 = { M: function () { } }; var test6 = { M: 5 }; -var test7 = { M: function () { -} }; +var test7 = { M: function () { } }; test7 = {}; var test8 = { M: 5 }; test8 = {}; diff --git a/tests/baselines/reference/optionalSetterParam.js b/tests/baselines/reference/optionalSetterParam.js index 4b9b7f01360..1632f33be9f 100644 --- a/tests/baselines/reference/optionalSetterParam.js +++ b/tests/baselines/reference/optionalSetterParam.js @@ -10,8 +10,7 @@ var foo = (function () { function foo() { } Object.defineProperty(foo.prototype, "bar", { - set: function (param) { - }, + set: function (param) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/overloadModifiersMustAgree.js b/tests/baselines/reference/overloadModifiersMustAgree.js index 8cb537c4410..3f9f7eb1415 100644 --- a/tests/baselines/reference/overloadModifiersMustAgree.js +++ b/tests/baselines/reference/overloadModifiersMustAgree.js @@ -19,9 +19,7 @@ interface I { var baz = (function () { function baz() { } - baz.prototype.foo = function (bar) { - }; // error - access modifiers do not agree + baz.prototype.foo = function (bar) { }; // error - access modifiers do not agree return baz; })(); -function bar(s) { -} +function bar(s) { } diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks1.js b/tests/baselines/reference/overloadOnConstConstraintChecks1.js index a59ca2ceda1..eb613586118 100644 --- a/tests/baselines/reference/overloadOnConstConstraintChecks1.js +++ b/tests/baselines/reference/overloadOnConstConstraintChecks1.js @@ -32,8 +32,7 @@ var __extends = this.__extends || function (d, b) { var Base = (function () { function Base() { } - Base.prototype.foo = function () { - }; + Base.prototype.foo = function () { }; return Base; })(); var Derived1 = (function (_super) { @@ -41,8 +40,7 @@ var Derived1 = (function (_super) { function Derived1() { _super.apply(this, arguments); } - Derived1.prototype.bar = function () { - }; + Derived1.prototype.bar = function () { }; return Derived1; })(Base); var Derived2 = (function (_super) { @@ -50,8 +48,7 @@ var Derived2 = (function (_super) { function Derived2() { _super.apply(this, arguments); } - Derived2.prototype.baz = function () { - }; + Derived2.prototype.baz = function () { }; return Derived2; })(Base); var Derived3 = (function (_super) { @@ -59,8 +56,7 @@ var Derived3 = (function (_super) { function Derived3() { _super.apply(this, arguments); } - Derived3.prototype.biz = function () { - }; + Derived3.prototype.biz = function () { }; return Derived3; })(Base); var D = (function () { diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks2.js b/tests/baselines/reference/overloadOnConstConstraintChecks2.js index 071b9372636..25759d0a839 100644 --- a/tests/baselines/reference/overloadOnConstConstraintChecks2.js +++ b/tests/baselines/reference/overloadOnConstConstraintChecks2.js @@ -35,8 +35,7 @@ var C = (function (_super) { function C() { _super.apply(this, arguments); } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(A); function foo(name) { diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks3.js b/tests/baselines/reference/overloadOnConstConstraintChecks3.js index 961411bf6e5..5980c852f41 100644 --- a/tests/baselines/reference/overloadOnConstConstraintChecks3.js +++ b/tests/baselines/reference/overloadOnConstConstraintChecks3.js @@ -37,8 +37,7 @@ var C = (function (_super) { function C() { _super.apply(this, arguments); } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(A); function foo(name) { diff --git a/tests/baselines/reference/overloadOnConstConstraintChecks4.js b/tests/baselines/reference/overloadOnConstConstraintChecks4.js index 5192afc35a2..b2ae1125750 100644 --- a/tests/baselines/reference/overloadOnConstConstraintChecks4.js +++ b/tests/baselines/reference/overloadOnConstConstraintChecks4.js @@ -45,8 +45,7 @@ var C = (function (_super) { function C() { _super.apply(this, arguments); } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(A); function foo(name) { diff --git a/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.js b/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.js index 51bf62f7ba3..9bd8ca3a274 100644 --- a/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.js +++ b/tests/baselines/reference/overloadOnConstInObjectLiteralImplementingAnInterface.js @@ -6,5 +6,4 @@ interface I { var i2: I = { x1: (a: number, cb: (x: 'hi') => number) => { } }; // error //// [overloadOnConstInObjectLiteralImplementingAnInterface.js] -var i2 = { x1: function (a, cb) { -} }; // error +var i2 = { x1: function (a, cb) { } }; // error diff --git a/tests/baselines/reference/overloadOnConstNoNonSpecializedSignature.js b/tests/baselines/reference/overloadOnConstNoNonSpecializedSignature.js index 33cc9c81b2c..980dfcb2145 100644 --- a/tests/baselines/reference/overloadOnConstNoNonSpecializedSignature.js +++ b/tests/baselines/reference/overloadOnConstNoNonSpecializedSignature.js @@ -9,7 +9,6 @@ class C { var C = (function () { function C() { } - C.prototype.x1 = function (a) { - }; + C.prototype.x1 = function (a) { }; return C; })(); diff --git a/tests/baselines/reference/overloadOnConstantsInvalidOverload1.js b/tests/baselines/reference/overloadOnConstantsInvalidOverload1.js index f4037c3f668..cf9bc526b51 100644 --- a/tests/baselines/reference/overloadOnConstantsInvalidOverload1.js +++ b/tests/baselines/reference/overloadOnConstantsInvalidOverload1.js @@ -21,8 +21,7 @@ var __extends = this.__extends || function (d, b) { var Base = (function () { function Base() { } - Base.prototype.foo = function () { - }; + Base.prototype.foo = function () { }; return Base; })(); var Derived1 = (function (_super) { @@ -30,8 +29,7 @@ var Derived1 = (function (_super) { function Derived1() { _super.apply(this, arguments); } - Derived1.prototype.bar = function () { - }; + Derived1.prototype.bar = function () { }; return Derived1; })(Base); var Derived2 = (function (_super) { @@ -39,8 +37,7 @@ var Derived2 = (function (_super) { function Derived2() { _super.apply(this, arguments); } - Derived2.prototype.baz = function () { - }; + Derived2.prototype.baz = function () { }; return Derived2; })(Base); var Derived3 = (function (_super) { @@ -48,8 +45,7 @@ var Derived3 = (function (_super) { function Derived3() { _super.apply(this, arguments); } - Derived3.prototype.biz = function () { - }; + Derived3.prototype.biz = function () { }; return Derived3; })(Base); function foo(name) { diff --git a/tests/baselines/reference/overloadResolution.js b/tests/baselines/reference/overloadResolution.js index fc8fa501efc..8737708beda 100644 --- a/tests/baselines/reference/overloadResolution.js +++ b/tests/baselines/reference/overloadResolution.js @@ -158,8 +158,7 @@ var s = fn3('', '', ''); var n = fn3('', '', 3); // Generic overloads with differing arity called with type argument count that doesn't match any overload fn3(); // Error -function fn4() { -} +function fn4() { } fn4('', 3); fn4(3, ''); // Error fn4('', 3); // Error diff --git a/tests/baselines/reference/overloadResolutionOverCTLambda.js b/tests/baselines/reference/overloadResolutionOverCTLambda.js index 07cd4232bde..18ad08c9c82 100644 --- a/tests/baselines/reference/overloadResolutionOverCTLambda.js +++ b/tests/baselines/reference/overloadResolutionOverCTLambda.js @@ -3,6 +3,5 @@ function foo(b: (item: number) => boolean) { } foo(a => a); // can not convert (number)=>bool to (number)=>number //// [overloadResolutionOverCTLambda.js] -function foo(b) { -} +function foo(b) { } foo(function (a) { return a; }); // can not convert (number)=>bool to (number)=>number diff --git a/tests/baselines/reference/overloadWithCallbacksWithDifferingOptionalityOnArgs.js b/tests/baselines/reference/overloadWithCallbacksWithDifferingOptionalityOnArgs.js index d4d0287bc00..03063855267 100644 --- a/tests/baselines/reference/overloadWithCallbacksWithDifferingOptionalityOnArgs.js +++ b/tests/baselines/reference/overloadWithCallbacksWithDifferingOptionalityOnArgs.js @@ -7,7 +7,6 @@ x2((x) => 1 ); //// [overloadWithCallbacksWithDifferingOptionalityOnArgs.js] -function x2(callback) { -} +function x2(callback) { } x2(function () { return 1; }); x2(function (x) { return 1; }); diff --git a/tests/baselines/reference/overloadingOnConstants1.js b/tests/baselines/reference/overloadingOnConstants1.js index e325e7ad8c0..7ebeeb2890f 100644 --- a/tests/baselines/reference/overloadingOnConstants1.js +++ b/tests/baselines/reference/overloadingOnConstants1.js @@ -35,8 +35,7 @@ var __extends = this.__extends || function (d, b) { var Base = (function () { function Base() { } - Base.prototype.foo = function () { - }; + Base.prototype.foo = function () { }; return Base; })(); var Derived1 = (function (_super) { @@ -44,8 +43,7 @@ var Derived1 = (function (_super) { function Derived1() { _super.apply(this, arguments); } - Derived1.prototype.bar = function () { - }; + Derived1.prototype.bar = function () { }; return Derived1; })(Base); var Derived2 = (function (_super) { @@ -53,8 +51,7 @@ var Derived2 = (function (_super) { function Derived2() { _super.apply(this, arguments); } - Derived2.prototype.baz = function () { - }; + Derived2.prototype.baz = function () { }; return Derived2; })(Base); var Derived3 = (function (_super) { @@ -62,8 +59,7 @@ var Derived3 = (function (_super) { function Derived3() { _super.apply(this, arguments); } - Derived3.prototype.biz = function () { - }; + Derived3.prototype.biz = function () { }; return Derived3; })(Base); var d2; diff --git a/tests/baselines/reference/overloadingStaticFunctionsInFunctions.js b/tests/baselines/reference/overloadingStaticFunctionsInFunctions.js index 7e926a6250a..591826725b1 100644 --- a/tests/baselines/reference/overloadingStaticFunctionsInFunctions.js +++ b/tests/baselines/reference/overloadingStaticFunctionsInFunctions.js @@ -10,6 +10,5 @@ function boo() { test(); test(name, string); test(name ? : any); - { - } + { } } diff --git a/tests/baselines/reference/overloadsInDifferentContainersDisagreeOnAmbient.js b/tests/baselines/reference/overloadsInDifferentContainersDisagreeOnAmbient.js index 4d0ac15c717..42c371dd218 100644 --- a/tests/baselines/reference/overloadsInDifferentContainersDisagreeOnAmbient.js +++ b/tests/baselines/reference/overloadsInDifferentContainersDisagreeOnAmbient.js @@ -11,7 +11,6 @@ module M { //// [overloadsInDifferentContainersDisagreeOnAmbient.js] var M; (function (M) { - function f() { - } + function f() { } M.f = f; })(M || (M = {})); diff --git a/tests/baselines/reference/overloadsWithinClasses.js b/tests/baselines/reference/overloadsWithinClasses.js index 79f3c332be5..4ac612502c7 100644 --- a/tests/baselines/reference/overloadsWithinClasses.js +++ b/tests/baselines/reference/overloadsWithinClasses.js @@ -27,17 +27,14 @@ class X { var foo = (function () { function foo() { } - foo.fnOverload = function () { - }; - foo.fnOverload = function (foo) { - }; // error + foo.fnOverload = function () { }; + foo.fnOverload = function (foo) { }; // error return foo; })(); var bar = (function () { function bar() { } - bar.fnOverload = function (foo) { - }; // no error + bar.fnOverload = function (foo) { }; // no error return bar; })(); var X = (function () { diff --git a/tests/baselines/reference/parameterInitializersForwardReferencing.js b/tests/baselines/reference/parameterInitializersForwardReferencing.js index 90fa1bdcd23..d810db54695 100644 --- a/tests/baselines/reference/parameterInitializersForwardReferencing.js +++ b/tests/baselines/reference/parameterInitializersForwardReferencing.js @@ -73,25 +73,14 @@ function outside() { var b; } } -function defaultArgFunction(a, b) { - if (a === void 0) { a = function () { - return b; - }; } - if (b === void 0) { b = 1; } -} -function defaultArgArrow(a, b) { - if (a === void 0) { a = function () { return function () { return b; }; }; } - if (b === void 0) { b = 3; } -} +function defaultArgFunction(a, b) { } +function defaultArgArrow(a, b) { } var C = (function () { function C(a, b) { if (a === void 0) { a = b; } if (b === void 0) { b = 1; } } - C.prototype.method = function (a, b) { - if (a === void 0) { a = b; } - if (b === void 0) { b = 1; } - }; + C.prototype.method = function (a, b) { }; return C; })(); // Function expressions diff --git a/tests/baselines/reference/parser509669.js b/tests/baselines/reference/parser509669.js index e4ce2b90312..3fa4cf696c0 100644 --- a/tests/baselines/reference/parser509669.js +++ b/tests/baselines/reference/parser509669.js @@ -5,6 +5,5 @@ function foo():any { //// [parser509669.js] function foo() { - return function () { - }; + return function () { }; } diff --git a/tests/baselines/reference/parser521128.js b/tests/baselines/reference/parser521128.js index e16cbad6c33..2471f740d77 100644 --- a/tests/baselines/reference/parser521128.js +++ b/tests/baselines/reference/parser521128.js @@ -3,5 +3,4 @@ module.module { } //// [parser521128.js] module.module; -{ -} +{ } diff --git a/tests/baselines/reference/parser553699.js b/tests/baselines/reference/parser553699.js index f245ecc3446..8570780e74a 100644 --- a/tests/baselines/reference/parser553699.js +++ b/tests/baselines/reference/parser553699.js @@ -12,8 +12,7 @@ class Bar { var Foo = (function () { function Foo() { } - Foo.prototype.banana = function (x) { - }; + Foo.prototype.banana = function (x) { }; return Foo; })(); var Bar = (function () { diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic10.js b/tests/baselines/reference/parserAccessibilityAfterStatic10.js index feded66fe95..6756a57ce7e 100644 --- a/tests/baselines/reference/parserAccessibilityAfterStatic10.js +++ b/tests/baselines/reference/parserAccessibilityAfterStatic10.js @@ -9,7 +9,6 @@ static public intI() {} var Outer = (function () { function Outer() { } - Outer.intI = function () { - }; + Outer.intI = function () { }; return Outer; })(); diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic11.js b/tests/baselines/reference/parserAccessibilityAfterStatic11.js index 094202014a1..8b16153b797 100644 --- a/tests/baselines/reference/parserAccessibilityAfterStatic11.js +++ b/tests/baselines/reference/parserAccessibilityAfterStatic11.js @@ -9,7 +9,6 @@ static public() {} var Outer = (function () { function Outer() { } - Outer.public = function () { - }; + Outer.public = function () { }; return Outer; })(); diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic14.js b/tests/baselines/reference/parserAccessibilityAfterStatic14.js index b2a6be7464c..4455936a859 100644 --- a/tests/baselines/reference/parserAccessibilityAfterStatic14.js +++ b/tests/baselines/reference/parserAccessibilityAfterStatic14.js @@ -9,7 +9,6 @@ static public() {} var Outer = (function () { function Outer() { } - Outer.public = function () { - }; + Outer.public = function () { }; return Outer; })(); diff --git a/tests/baselines/reference/parserAccessibilityAfterStatic7.js b/tests/baselines/reference/parserAccessibilityAfterStatic7.js index a2bc5c7fba3..2d94be8ea50 100644 --- a/tests/baselines/reference/parserAccessibilityAfterStatic7.js +++ b/tests/baselines/reference/parserAccessibilityAfterStatic7.js @@ -9,7 +9,6 @@ static public intI() {} var Outer = (function () { function Outer() { } - Outer.intI = function () { - }; + Outer.intI = function () { }; return Outer; })(); diff --git a/tests/baselines/reference/parserAccessors1.js b/tests/baselines/reference/parserAccessors1.js index b4cc809e7b2..6b47a46ede1 100644 --- a/tests/baselines/reference/parserAccessors1.js +++ b/tests/baselines/reference/parserAccessors1.js @@ -8,8 +8,7 @@ var C = (function () { function C() { } Object.defineProperty(C.prototype, "Foo", { - get: function () { - }, + get: function () { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/parserAccessors10.js b/tests/baselines/reference/parserAccessors10.js index f1bed41edee..d5d7e89a7d0 100644 --- a/tests/baselines/reference/parserAccessors10.js +++ b/tests/baselines/reference/parserAccessors10.js @@ -5,6 +5,5 @@ var v = { //// [parserAccessors10.js] var v = { - get foo() { - } + get foo() { } }; diff --git a/tests/baselines/reference/parserAccessors2.js b/tests/baselines/reference/parserAccessors2.js index 71cbd6f466b..482daa74a64 100644 --- a/tests/baselines/reference/parserAccessors2.js +++ b/tests/baselines/reference/parserAccessors2.js @@ -8,8 +8,7 @@ var C = (function () { function C() { } Object.defineProperty(C.prototype, "Foo", { - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/parserAccessors3.js b/tests/baselines/reference/parserAccessors3.js index 68d8ec15e63..287f607725a 100644 --- a/tests/baselines/reference/parserAccessors3.js +++ b/tests/baselines/reference/parserAccessors3.js @@ -2,5 +2,4 @@ var v = { get Foo() { } }; //// [parserAccessors3.js] -var v = { get Foo() { -} }; +var v = { get Foo() { } }; diff --git a/tests/baselines/reference/parserAccessors4.js b/tests/baselines/reference/parserAccessors4.js index 9ebd1f0e82e..0716078a8c8 100644 --- a/tests/baselines/reference/parserAccessors4.js +++ b/tests/baselines/reference/parserAccessors4.js @@ -2,5 +2,4 @@ var v = { set Foo(a) { } }; //// [parserAccessors4.js] -var v = { set Foo(a) { -} }; +var v = { set Foo(a) { } }; diff --git a/tests/baselines/reference/parserAccessors7.js b/tests/baselines/reference/parserAccessors7.js index 2703480ef53..4b7f2d55860 100644 --- a/tests/baselines/reference/parserAccessors7.js +++ b/tests/baselines/reference/parserAccessors7.js @@ -2,5 +2,4 @@ var v = { get foo(v: number) { } }; //// [parserAccessors7.js] -var v = { get foo(v) { -} }; +var v = { get foo(v) { } }; diff --git a/tests/baselines/reference/parserAccessors8.js b/tests/baselines/reference/parserAccessors8.js index 609fde320dc..18fb4454071 100644 --- a/tests/baselines/reference/parserAccessors8.js +++ b/tests/baselines/reference/parserAccessors8.js @@ -2,5 +2,4 @@ var v = { set foo() { } } //// [parserAccessors8.js] -var v = { set foo() { -} }; +var v = { set foo() { } }; diff --git a/tests/baselines/reference/parserAccessors9.js b/tests/baselines/reference/parserAccessors9.js index 07c9d5cbc1e..448d93a2c01 100644 --- a/tests/baselines/reference/parserAccessors9.js +++ b/tests/baselines/reference/parserAccessors9.js @@ -2,5 +2,4 @@ var v = { set foo(a, b) { } } //// [parserAccessors9.js] -var v = { set foo(a, b) { -} }; +var v = { set foo(a, b) { } }; diff --git a/tests/baselines/reference/parserAmbiguityWithBinaryOperator1.js b/tests/baselines/reference/parserAmbiguityWithBinaryOperator1.js index 18a1dee3e9f..6c74814917a 100644 --- a/tests/baselines/reference/parserAmbiguityWithBinaryOperator1.js +++ b/tests/baselines/reference/parserAmbiguityWithBinaryOperator1.js @@ -7,6 +7,5 @@ function f1() { //// [parserAmbiguityWithBinaryOperator1.js] function f1() { var a, b, c; - if (a < b || b > (c + 1)) { - } + if (a < b || b > (c + 1)) { } } diff --git a/tests/baselines/reference/parserAmbiguityWithBinaryOperator2.js b/tests/baselines/reference/parserAmbiguityWithBinaryOperator2.js index 9589d57e3af..6cd6de58d47 100644 --- a/tests/baselines/reference/parserAmbiguityWithBinaryOperator2.js +++ b/tests/baselines/reference/parserAmbiguityWithBinaryOperator2.js @@ -7,6 +7,5 @@ function f() { //// [parserAmbiguityWithBinaryOperator2.js] function f() { var a, b, c; - if (a < b && b > (c + 1)) { - } + if (a < b && b > (c + 1)) { } } diff --git a/tests/baselines/reference/parserAmbiguityWithBinaryOperator3.js b/tests/baselines/reference/parserAmbiguityWithBinaryOperator3.js index 95745263c71..e3df2894777 100644 --- a/tests/baselines/reference/parserAmbiguityWithBinaryOperator3.js +++ b/tests/baselines/reference/parserAmbiguityWithBinaryOperator3.js @@ -8,6 +8,5 @@ function f() { //// [parserAmbiguityWithBinaryOperator3.js] function f() { var a, b, c; - if (a < b && b < (c + 1)) { - } + if (a < b && b < (c + 1)) { } } diff --git a/tests/baselines/reference/parserAmbiguityWithBinaryOperator4.js b/tests/baselines/reference/parserAmbiguityWithBinaryOperator4.js index cdcec030ae7..a6ba380112b 100644 --- a/tests/baselines/reference/parserAmbiguityWithBinaryOperator4.js +++ b/tests/baselines/reference/parserAmbiguityWithBinaryOperator4.js @@ -7,6 +7,5 @@ function g() { //// [parserAmbiguityWithBinaryOperator4.js] function g() { var a, b, c; - if (a(c + 1)) { - } + if (a(c + 1)) { } } diff --git a/tests/baselines/reference/parserArrowFunctionExpression1.js b/tests/baselines/reference/parserArrowFunctionExpression1.js index 5ab29fee64c..e4ae59fdb99 100644 --- a/tests/baselines/reference/parserArrowFunctionExpression1.js +++ b/tests/baselines/reference/parserArrowFunctionExpression1.js @@ -2,5 +2,4 @@ var v = (public x: string) => { }; //// [parserArrowFunctionExpression1.js] -var v = function (x) { -}; +var v = function (x) { }; diff --git a/tests/baselines/reference/parserArrowFunctionExpression2.js b/tests/baselines/reference/parserArrowFunctionExpression2.js index 5059cf32182..9004468ec76 100644 --- a/tests/baselines/reference/parserArrowFunctionExpression2.js +++ b/tests/baselines/reference/parserArrowFunctionExpression2.js @@ -2,6 +2,5 @@ a = () => { } || a //// [parserArrowFunctionExpression2.js] -a = function () { -}; +a = function () { }; || a; diff --git a/tests/baselines/reference/parserArrowFunctionExpression3.js b/tests/baselines/reference/parserArrowFunctionExpression3.js index 68ea230d87b..9e6b2706108 100644 --- a/tests/baselines/reference/parserArrowFunctionExpression3.js +++ b/tests/baselines/reference/parserArrowFunctionExpression3.js @@ -2,5 +2,4 @@ a = (() => { } || a) //// [parserArrowFunctionExpression3.js] -a = (function () { -}) || a; +a = (function () { }) || a; diff --git a/tests/baselines/reference/parserArrowFunctionExpression4.js b/tests/baselines/reference/parserArrowFunctionExpression4.js index 53aaee9e6ff..e77a42162cd 100644 --- a/tests/baselines/reference/parserArrowFunctionExpression4.js +++ b/tests/baselines/reference/parserArrowFunctionExpression4.js @@ -2,5 +2,4 @@ a = (() => { }, a) //// [parserArrowFunctionExpression4.js] -a = (function () { -}, a); +a = (function () { }, a); diff --git a/tests/baselines/reference/parserClassDeclaration11.js b/tests/baselines/reference/parserClassDeclaration11.js index 80a27d71e6c..078d3553a43 100644 --- a/tests/baselines/reference/parserClassDeclaration11.js +++ b/tests/baselines/reference/parserClassDeclaration11.js @@ -8,7 +8,6 @@ class C { var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); diff --git a/tests/baselines/reference/parserClassDeclaration13.js b/tests/baselines/reference/parserClassDeclaration13.js index dcb704ae1d3..93ce76fb168 100644 --- a/tests/baselines/reference/parserClassDeclaration13.js +++ b/tests/baselines/reference/parserClassDeclaration13.js @@ -8,7 +8,6 @@ class C { var C = (function () { function C() { } - C.prototype.bar = function () { - }; + C.prototype.bar = function () { }; return C; })(); diff --git a/tests/baselines/reference/parserClassDeclaration16.js b/tests/baselines/reference/parserClassDeclaration16.js index 7048980597e..a6a92d73afa 100644 --- a/tests/baselines/reference/parserClassDeclaration16.js +++ b/tests/baselines/reference/parserClassDeclaration16.js @@ -8,7 +8,6 @@ class C { var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); diff --git a/tests/baselines/reference/parserClassDeclaration19.js b/tests/baselines/reference/parserClassDeclaration19.js index 5b77e263ec9..7900aa4d552 100644 --- a/tests/baselines/reference/parserClassDeclaration19.js +++ b/tests/baselines/reference/parserClassDeclaration19.js @@ -8,7 +8,6 @@ class C { var C = (function () { function C() { } - C.prototype["foo"] = function () { - }; + C.prototype["foo"] = function () { }; return C; })(); diff --git a/tests/baselines/reference/parserClassDeclaration20.js b/tests/baselines/reference/parserClassDeclaration20.js index 68d97b66bb9..7c99f2d8ee6 100644 --- a/tests/baselines/reference/parserClassDeclaration20.js +++ b/tests/baselines/reference/parserClassDeclaration20.js @@ -8,7 +8,6 @@ class C { var C = (function () { function C() { } - C.prototype["0"] = function () { - }; + C.prototype["0"] = function () { }; return C; })(); diff --git a/tests/baselines/reference/parserClassDeclaration21.js b/tests/baselines/reference/parserClassDeclaration21.js index 248f10e8681..fa4cef46e0e 100644 --- a/tests/baselines/reference/parserClassDeclaration21.js +++ b/tests/baselines/reference/parserClassDeclaration21.js @@ -8,7 +8,6 @@ class C { var C = (function () { function C() { } - C.prototype[1] = function () { - }; + C.prototype[1] = function () { }; return C; })(); diff --git a/tests/baselines/reference/parserClassDeclaration22.js b/tests/baselines/reference/parserClassDeclaration22.js index 60f708d4835..596f7a4474b 100644 --- a/tests/baselines/reference/parserClassDeclaration22.js +++ b/tests/baselines/reference/parserClassDeclaration22.js @@ -8,7 +8,6 @@ class C { var C = (function () { function C() { } - C.prototype["bar"] = function () { - }; + C.prototype["bar"] = function () { }; return C; })(); diff --git a/tests/baselines/reference/parserComputedPropertyName12.js b/tests/baselines/reference/parserComputedPropertyName12.js index 96e62b626e7..f879d4166dd 100644 --- a/tests/baselines/reference/parserComputedPropertyName12.js +++ b/tests/baselines/reference/parserComputedPropertyName12.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.prototype[e] = function () { - }; + C.prototype[e] = function () { }; return C; })(); diff --git a/tests/baselines/reference/parserComputedPropertyName17.js b/tests/baselines/reference/parserComputedPropertyName17.js index 98d61ab8bca..f1fc4caacb3 100644 --- a/tests/baselines/reference/parserComputedPropertyName17.js +++ b/tests/baselines/reference/parserComputedPropertyName17.js @@ -2,5 +2,4 @@ var v = { set [e](v) { } } //// [parserComputedPropertyName17.js] -var v = { set [e](v) { -} }; +var v = { set [e](v) { } }; diff --git a/tests/baselines/reference/parserComputedPropertyName24.js b/tests/baselines/reference/parserComputedPropertyName24.js index 0b9467fb26d..13f14f2e466 100644 --- a/tests/baselines/reference/parserComputedPropertyName24.js +++ b/tests/baselines/reference/parserComputedPropertyName24.js @@ -8,8 +8,7 @@ var C = (function () { function C() { } Object.defineProperty(C.prototype, e, { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/parserComputedPropertyName3.js b/tests/baselines/reference/parserComputedPropertyName3.js index 2e73fe87d3a..70273ed501d 100644 --- a/tests/baselines/reference/parserComputedPropertyName3.js +++ b/tests/baselines/reference/parserComputedPropertyName3.js @@ -2,5 +2,4 @@ var v = { [e]() { } }; //// [parserComputedPropertyName3.js] -var v = { [e]() { -} }; +var v = { [e]() { } }; diff --git a/tests/baselines/reference/parserComputedPropertyName33.js b/tests/baselines/reference/parserComputedPropertyName33.js index 1cc06c06780..924bb872115 100644 --- a/tests/baselines/reference/parserComputedPropertyName33.js +++ b/tests/baselines/reference/parserComputedPropertyName33.js @@ -13,5 +13,4 @@ var C = (function () { } return C; })(); -{ -} +{ } diff --git a/tests/baselines/reference/parserComputedPropertyName38.js b/tests/baselines/reference/parserComputedPropertyName38.js index 487ff4078fd..6fc40f0802a 100644 --- a/tests/baselines/reference/parserComputedPropertyName38.js +++ b/tests/baselines/reference/parserComputedPropertyName38.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.prototype[public] = function () { - }; + C.prototype[public] = function () { }; return C; })(); diff --git a/tests/baselines/reference/parserComputedPropertyName39.js b/tests/baselines/reference/parserComputedPropertyName39.js index c37312f0034..2849acd0562 100644 --- a/tests/baselines/reference/parserComputedPropertyName39.js +++ b/tests/baselines/reference/parserComputedPropertyName39.js @@ -11,5 +11,4 @@ var C = (function () { } return C; })(); -(() => { -}); +(() => { }); diff --git a/tests/baselines/reference/parserComputedPropertyName4.js b/tests/baselines/reference/parserComputedPropertyName4.js index a88545566e6..e456ca74f93 100644 --- a/tests/baselines/reference/parserComputedPropertyName4.js +++ b/tests/baselines/reference/parserComputedPropertyName4.js @@ -2,5 +2,4 @@ var v = { get [e]() { } }; //// [parserComputedPropertyName4.js] -var v = { get [e]() { -} }; +var v = { get [e]() { } }; diff --git a/tests/baselines/reference/parserComputedPropertyName40.js b/tests/baselines/reference/parserComputedPropertyName40.js index 5f6381360fc..dc77466492d 100644 --- a/tests/baselines/reference/parserComputedPropertyName40.js +++ b/tests/baselines/reference/parserComputedPropertyName40.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.prototype[a ? "" : ""] = function () { - }; + C.prototype[a ? "" : ""] = function () { }; return C; })(); diff --git a/tests/baselines/reference/parserComputedPropertyName5.js b/tests/baselines/reference/parserComputedPropertyName5.js index aa86d54d09c..b94acd5523b 100644 --- a/tests/baselines/reference/parserComputedPropertyName5.js +++ b/tests/baselines/reference/parserComputedPropertyName5.js @@ -2,5 +2,4 @@ var v = { public get [e]() { } }; //// [parserComputedPropertyName5.js] -var v = { get [e]() { -} }; +var v = { get [e]() { } }; diff --git a/tests/baselines/reference/parserES3Accessors1.js b/tests/baselines/reference/parserES3Accessors1.js index 4900c1f32d9..b4d0b9d6576 100644 --- a/tests/baselines/reference/parserES3Accessors1.js +++ b/tests/baselines/reference/parserES3Accessors1.js @@ -8,8 +8,7 @@ var C = (function () { function C() { } Object.defineProperty(C.prototype, "Foo", { - get: function () { - }, + get: function () { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/parserES3Accessors2.js b/tests/baselines/reference/parserES3Accessors2.js index 08259f2655e..3d18e8ac280 100644 --- a/tests/baselines/reference/parserES3Accessors2.js +++ b/tests/baselines/reference/parserES3Accessors2.js @@ -8,8 +8,7 @@ var C = (function () { function C() { } Object.defineProperty(C.prototype, "Foo", { - set: function (a) { - }, + set: function (a) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/parserES3Accessors3.js b/tests/baselines/reference/parserES3Accessors3.js index 57ceb566dcb..f623fc546fd 100644 --- a/tests/baselines/reference/parserES3Accessors3.js +++ b/tests/baselines/reference/parserES3Accessors3.js @@ -2,5 +2,4 @@ var v = { get Foo() { } }; //// [parserES3Accessors3.js] -var v = { get Foo() { -} }; +var v = { get Foo() { } }; diff --git a/tests/baselines/reference/parserES3Accessors4.js b/tests/baselines/reference/parserES3Accessors4.js index 5c87923ed5e..2bc5c9d1f78 100644 --- a/tests/baselines/reference/parserES3Accessors4.js +++ b/tests/baselines/reference/parserES3Accessors4.js @@ -2,5 +2,4 @@ var v = { set Foo(a) { } }; //// [parserES3Accessors4.js] -var v = { set Foo(a) { -} }; +var v = { set Foo(a) { } }; diff --git a/tests/baselines/reference/parserES5ComputedPropertyName3.js b/tests/baselines/reference/parserES5ComputedPropertyName3.js index 4e07049b29d..f83253b531d 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName3.js +++ b/tests/baselines/reference/parserES5ComputedPropertyName3.js @@ -2,5 +2,4 @@ var v = { [e]() { } }; //// [parserES5ComputedPropertyName3.js] -var v = { [e]: function () { -} }; +var v = { [e]: function () { } }; diff --git a/tests/baselines/reference/parserES5ComputedPropertyName4.js b/tests/baselines/reference/parserES5ComputedPropertyName4.js index 50e240dcf20..568b54500ac 100644 --- a/tests/baselines/reference/parserES5ComputedPropertyName4.js +++ b/tests/baselines/reference/parserES5ComputedPropertyName4.js @@ -2,5 +2,4 @@ var v = { get [e]() { } }; //// [parserES5ComputedPropertyName4.js] -var v = { get [e]() { -} }; +var v = { get [e]() { } }; diff --git a/tests/baselines/reference/parserErrantSemicolonInClass1.js b/tests/baselines/reference/parserErrantSemicolonInClass1.js index 2f38e2b5323..f761b04ca78 100644 --- a/tests/baselines/reference/parserErrantSemicolonInClass1.js +++ b/tests/baselines/reference/parserErrantSemicolonInClass1.js @@ -39,8 +39,7 @@ class a { var a = (function () { function a(ns) { } - a.prototype.pgF = function () { - }; + a.prototype.pgF = function () { }; Object.defineProperty(a.prototype, "d", { get: function () { return 30; diff --git a/tests/baselines/reference/parserErrorRecovery_Block3.js b/tests/baselines/reference/parserErrorRecovery_Block3.js index 30183fb7d8b..55b0a4d65e7 100644 --- a/tests/baselines/reference/parserErrorRecovery_Block3.js +++ b/tests/baselines/reference/parserErrorRecovery_Block3.js @@ -10,8 +10,7 @@ class C { var C = (function () { function C() { } - C.prototype.a = function () { - }; + C.prototype.a = function () { }; C.prototype.b = function () { }; return C; diff --git a/tests/baselines/reference/parserErrorRecovery_ParameterList6.js b/tests/baselines/reference/parserErrorRecovery_ParameterList6.js index e83c045208d..060ad14766b 100644 --- a/tests/baselines/reference/parserErrorRecovery_ParameterList6.js +++ b/tests/baselines/reference/parserErrorRecovery_ParameterList6.js @@ -11,5 +11,4 @@ var Foo = (function () { return Foo; })(); break ; -{ -} +{ } diff --git a/tests/baselines/reference/parserFunctionDeclaration4.js b/tests/baselines/reference/parserFunctionDeclaration4.js index 285f36e6838..a36a41e0809 100644 --- a/tests/baselines/reference/parserFunctionDeclaration4.js +++ b/tests/baselines/reference/parserFunctionDeclaration4.js @@ -3,5 +3,4 @@ function foo(); function bar() { } //// [parserFunctionDeclaration4.js] -function bar() { -} +function bar() { } diff --git a/tests/baselines/reference/parserFunctionDeclaration5.js b/tests/baselines/reference/parserFunctionDeclaration5.js index 1c80f842c0d..fd35c14675e 100644 --- a/tests/baselines/reference/parserFunctionDeclaration5.js +++ b/tests/baselines/reference/parserFunctionDeclaration5.js @@ -3,5 +3,4 @@ function foo(); function foo() { } //// [parserFunctionDeclaration5.js] -function foo() { -} +function foo() { } diff --git a/tests/baselines/reference/parserFunctionDeclaration6.js b/tests/baselines/reference/parserFunctionDeclaration6.js index 6f877b07b14..05afe2d33a8 100644 --- a/tests/baselines/reference/parserFunctionDeclaration6.js +++ b/tests/baselines/reference/parserFunctionDeclaration6.js @@ -6,6 +6,5 @@ //// [parserFunctionDeclaration6.js] { - function bar() { - } + function bar() { } } diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment1.js b/tests/baselines/reference/parserFunctionPropertyAssignment1.js index 9135f98ff6d..ea7b20f05d5 100644 --- a/tests/baselines/reference/parserFunctionPropertyAssignment1.js +++ b/tests/baselines/reference/parserFunctionPropertyAssignment1.js @@ -2,5 +2,4 @@ var v = { foo() { } }; //// [parserFunctionPropertyAssignment1.js] -var v = { foo: function () { -} }; +var v = { foo: function () { } }; diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment2.js b/tests/baselines/reference/parserFunctionPropertyAssignment2.js index 928b0113342..668e8df2cfc 100644 --- a/tests/baselines/reference/parserFunctionPropertyAssignment2.js +++ b/tests/baselines/reference/parserFunctionPropertyAssignment2.js @@ -2,5 +2,4 @@ var v = { 0() { } }; //// [parserFunctionPropertyAssignment2.js] -var v = { 0: function () { -} }; +var v = { 0: function () { } }; diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment3.js b/tests/baselines/reference/parserFunctionPropertyAssignment3.js index 03318edc134..87a98ac402c 100644 --- a/tests/baselines/reference/parserFunctionPropertyAssignment3.js +++ b/tests/baselines/reference/parserFunctionPropertyAssignment3.js @@ -2,5 +2,4 @@ var v = { "foo"() { } }; //// [parserFunctionPropertyAssignment3.js] -var v = { "foo": function () { -} }; +var v = { "foo": function () { } }; diff --git a/tests/baselines/reference/parserFunctionPropertyAssignment4.js b/tests/baselines/reference/parserFunctionPropertyAssignment4.js index 8366fb296ff..e9b41e754e6 100644 --- a/tests/baselines/reference/parserFunctionPropertyAssignment4.js +++ b/tests/baselines/reference/parserFunctionPropertyAssignment4.js @@ -2,5 +2,4 @@ var v = { 0() { } }; //// [parserFunctionPropertyAssignment4.js] -var v = { 0: function () { -} }; +var v = { 0: function () { } }; diff --git a/tests/baselines/reference/parserFuzz1.js b/tests/baselines/reference/parserFuzz1.js index 969c07c1659..b9ffb540049 100644 --- a/tests/baselines/reference/parserFuzz1.js +++ b/tests/baselines/reference/parserFuzz1.js @@ -6,8 +6,6 @@ cla (1, 'hm'); // error //// [primitiveConstraints1.js] -function foo1(t, u) { -} +function foo1(t, u) { } foo1('hm', 1); // no error -function foo2(t, u) { -} +function foo2(t, u) { } foo2(1, 'hm'); // error diff --git a/tests/baselines/reference/primitiveMembers.js b/tests/baselines/reference/primitiveMembers.js index 7f9710bea48..f41d2a65bba 100644 --- a/tests/baselines/reference/primitiveMembers.js +++ b/tests/baselines/reference/primitiveMembers.js @@ -57,8 +57,7 @@ var n3 = 5 || {}; var baz = (function () { function baz() { } - baz.prototype.bar = function () { - }; + baz.prototype.bar = function () { }; return baz; })(); var foo = (function (_super) { diff --git a/tests/baselines/reference/primtiveTypesAreIdentical.js b/tests/baselines/reference/primtiveTypesAreIdentical.js index 00a77fac917..19bdadb4cee 100644 --- a/tests/baselines/reference/primtiveTypesAreIdentical.js +++ b/tests/baselines/reference/primtiveTypesAreIdentical.js @@ -33,21 +33,14 @@ function foo7(x: any) { } //// [primtiveTypesAreIdentical.js] // primitive types are identical to themselves so these overloads will all cause errors -function foo1(x) { -} -function foo2(x) { -} -function foo3(x) { -} -function foo4(x) { -} -function foo5(x) { -} +function foo1(x) { } +function foo2(x) { } +function foo3(x) { } +function foo4(x) { } +function foo5(x) { } var E; (function (E) { E[E["A"] = 0] = "A"; })(E || (E = {})); -function foo6(x) { -} -function foo7(x) { -} +function foo6(x) { } +function foo7(x) { } diff --git a/tests/baselines/reference/privateVisibility.js b/tests/baselines/reference/privateVisibility.js index 80e0bf51a1b..9565b6fc25d 100644 --- a/tests/baselines/reference/privateVisibility.js +++ b/tests/baselines/reference/privateVisibility.js @@ -35,8 +35,7 @@ var Foo = (function () { Foo.prototype.pubMeth = function () { this.privMeth(); }; - Foo.prototype.privMeth = function () { - }; + Foo.prototype.privMeth = function () { }; return Foo; })(); var f = new Foo(); diff --git a/tests/baselines/reference/project/nonRelative/amd/lib/bar/a.js b/tests/baselines/reference/project/nonRelative/amd/lib/bar/a.js index 5351258111e..6ffe8c53445 100644 --- a/tests/baselines/reference/project/nonRelative/amd/lib/bar/a.js +++ b/tests/baselines/reference/project/nonRelative/amd/lib/bar/a.js @@ -1,5 +1,4 @@ define(["require", "exports"], function (require, exports) { - function hello() { - } + function hello() { } exports.hello = hello; }); diff --git a/tests/baselines/reference/project/nonRelative/amd/lib/foo/a.js b/tests/baselines/reference/project/nonRelative/amd/lib/foo/a.js index 5351258111e..6ffe8c53445 100644 --- a/tests/baselines/reference/project/nonRelative/amd/lib/foo/a.js +++ b/tests/baselines/reference/project/nonRelative/amd/lib/foo/a.js @@ -1,5 +1,4 @@ define(["require", "exports"], function (require, exports) { - function hello() { - } + function hello() { } exports.hello = hello; }); diff --git a/tests/baselines/reference/project/nonRelative/amd/lib/foo/b.js b/tests/baselines/reference/project/nonRelative/amd/lib/foo/b.js index 5351258111e..6ffe8c53445 100644 --- a/tests/baselines/reference/project/nonRelative/amd/lib/foo/b.js +++ b/tests/baselines/reference/project/nonRelative/amd/lib/foo/b.js @@ -1,5 +1,4 @@ define(["require", "exports"], function (require, exports) { - function hello() { - } + function hello() { } exports.hello = hello; }); diff --git a/tests/baselines/reference/project/nonRelative/node/lib/bar/a.js b/tests/baselines/reference/project/nonRelative/node/lib/bar/a.js index 3bc8930ed53..58114de3a4d 100644 --- a/tests/baselines/reference/project/nonRelative/node/lib/bar/a.js +++ b/tests/baselines/reference/project/nonRelative/node/lib/bar/a.js @@ -1,3 +1,2 @@ -function hello() { -} +function hello() { } exports.hello = hello; diff --git a/tests/baselines/reference/project/nonRelative/node/lib/foo/a.js b/tests/baselines/reference/project/nonRelative/node/lib/foo/a.js index 3bc8930ed53..58114de3a4d 100644 --- a/tests/baselines/reference/project/nonRelative/node/lib/foo/a.js +++ b/tests/baselines/reference/project/nonRelative/node/lib/foo/a.js @@ -1,3 +1,2 @@ -function hello() { -} +function hello() { } exports.hello = hello; diff --git a/tests/baselines/reference/project/nonRelative/node/lib/foo/b.js b/tests/baselines/reference/project/nonRelative/node/lib/foo/b.js index 3bc8930ed53..58114de3a4d 100644 --- a/tests/baselines/reference/project/nonRelative/node/lib/foo/b.js +++ b/tests/baselines/reference/project/nonRelative/node/lib/foo/b.js @@ -1,3 +1,2 @@ -function hello() { -} +function hello() { } exports.hello = hello; diff --git a/tests/baselines/reference/project/quotesInFileAndDirectoryNames/amd/li'b/class'A.js b/tests/baselines/reference/project/quotesInFileAndDirectoryNames/amd/li'b/class'A.js index 649db9a606d..115b5fff25f 100644 --- a/tests/baselines/reference/project/quotesInFileAndDirectoryNames/amd/li'b/class'A.js +++ b/tests/baselines/reference/project/quotesInFileAndDirectoryNames/amd/li'b/class'A.js @@ -3,8 +3,7 @@ var test; var ClassA = (function () { function ClassA() { } - ClassA.prototype.method = function () { - }; + ClassA.prototype.method = function () { }; return ClassA; })(); test.ClassA = ClassA; diff --git a/tests/baselines/reference/project/quotesInFileAndDirectoryNames/node/li'b/class'A.js b/tests/baselines/reference/project/quotesInFileAndDirectoryNames/node/li'b/class'A.js index 649db9a606d..115b5fff25f 100644 --- a/tests/baselines/reference/project/quotesInFileAndDirectoryNames/node/li'b/class'A.js +++ b/tests/baselines/reference/project/quotesInFileAndDirectoryNames/node/li'b/class'A.js @@ -3,8 +3,7 @@ var test; var ClassA = (function () { function ClassA() { } - ClassA.prototype.method = function () { - }; + ClassA.prototype.method = function () { }; return ClassA; })(); test.ClassA = ClassA; diff --git a/tests/baselines/reference/propertyAccess.js b/tests/baselines/reference/propertyAccess.js index e0b89f39de0..735c8d3908f 100644 --- a/tests/baselines/reference/propertyAccess.js +++ b/tests/baselines/reference/propertyAccess.js @@ -179,8 +179,7 @@ var Compass; var numIndex = { 3: 'three', 'three': 'three' }; var strIndex = { 'N': 0 /* North */, 'E': 2 /* East */ }; var bothIndex; -function noIndex() { -} +function noIndex() { } var obj = { 10: 'ten', x: 'hello', diff --git a/tests/baselines/reference/propertyAndAccessorWithSameName.js b/tests/baselines/reference/propertyAndAccessorWithSameName.js index f466483cede..f8978ac4d18 100644 --- a/tests/baselines/reference/propertyAndAccessorWithSameName.js +++ b/tests/baselines/reference/propertyAndAccessorWithSameName.js @@ -36,8 +36,7 @@ var D = (function () { function D() { } Object.defineProperty(D.prototype, "x", { - set: function (v) { - } // error + set: function (v) { } // error , enumerable: true, configurable: true @@ -51,8 +50,7 @@ var E = (function () { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/propertyAndFunctionWithSameName.js b/tests/baselines/reference/propertyAndFunctionWithSameName.js index ec5f1903e8a..eb0b437fd5c 100644 --- a/tests/baselines/reference/propertyAndFunctionWithSameName.js +++ b/tests/baselines/reference/propertyAndFunctionWithSameName.js @@ -23,7 +23,6 @@ var C = (function () { var D = (function () { function D() { } - D.prototype.x = function (v) { - }; // error + D.prototype.x = function (v) { }; // error return D; })(); diff --git a/tests/baselines/reference/propertyWrappedInTry.js b/tests/baselines/reference/propertyWrappedInTry.js index 459e35f91ae..e7f8a28d688 100644 --- a/tests/baselines/reference/propertyWrappedInTry.js +++ b/tests/baselines/reference/propertyWrappedInTry.js @@ -28,8 +28,7 @@ var Foo = (function () { try { bar = someInitThatMightFail(); } -catch (e) { -} +catch (e) { } baz(); { return this.bar; // doesn't get rewritten to Foo.bar. diff --git a/tests/baselines/reference/prototypes.js b/tests/baselines/reference/prototypes.js index 4ecdafb3dc4..4d7ddc4a4d5 100644 --- a/tests/baselines/reference/prototypes.js +++ b/tests/baselines/reference/prototypes.js @@ -7,6 +7,5 @@ f.prototype; //// [prototypes.js] Object.prototype; // ok new Object().prototype; // error -function f() { -} +function f() { } f.prototype; diff --git a/tests/baselines/reference/qualifiedModuleLocals.js b/tests/baselines/reference/qualifiedModuleLocals.js index 2909be7639d..45d61949c63 100644 --- a/tests/baselines/reference/qualifiedModuleLocals.js +++ b/tests/baselines/reference/qualifiedModuleLocals.js @@ -13,8 +13,7 @@ A.a(); //// [qualifiedModuleLocals.js] var A; (function (A) { - function b() { - } + function b() { } function a() { A.b(); } diff --git a/tests/baselines/reference/quotedFunctionName1.js b/tests/baselines/reference/quotedFunctionName1.js index 28d75186474..69f4f2cfaa3 100644 --- a/tests/baselines/reference/quotedFunctionName1.js +++ b/tests/baselines/reference/quotedFunctionName1.js @@ -7,7 +7,6 @@ class Test1 { var Test1 = (function () { function Test1() { } - Test1.prototype["prop1"] = function () { - }; + Test1.prototype["prop1"] = function () { }; return Test1; })(); diff --git a/tests/baselines/reference/quotedFunctionName2.js b/tests/baselines/reference/quotedFunctionName2.js index 46d8d9bae9d..3173ec29f13 100644 --- a/tests/baselines/reference/quotedFunctionName2.js +++ b/tests/baselines/reference/quotedFunctionName2.js @@ -7,7 +7,6 @@ class Test1 { var Test1 = (function () { function Test1() { } - Test1["prop1"] = function () { - }; + Test1["prop1"] = function () { }; return Test1; })(); diff --git a/tests/baselines/reference/recur1.js b/tests/baselines/reference/recur1.js index 3dd0e14ad97..37a8b6eb3f2 100644 --- a/tests/baselines/reference/recur1.js +++ b/tests/baselines/reference/recur1.js @@ -9,8 +9,6 @@ cobalt.pitch = function() {} //// [recur1.js] var salt = new salt.pepper(); -salt.pepper = function () { -}; +salt.pepper = function () { }; var cobalt = new cobalt.pitch(); -cobalt.pitch = function () { -}; +cobalt.pitch = function () { }; diff --git a/tests/baselines/reference/recursiveBaseConstructorCreation1.js b/tests/baselines/reference/recursiveBaseConstructorCreation1.js index 69a71a4f79c..c475f604b14 100644 --- a/tests/baselines/reference/recursiveBaseConstructorCreation1.js +++ b/tests/baselines/reference/recursiveBaseConstructorCreation1.js @@ -16,8 +16,7 @@ var __extends = this.__extends || function (d, b) { var C1 = (function () { function C1() { } - C1.prototype.func = function (param) { - }; + C1.prototype.func = function (param) { }; return C1; })(); var C2 = (function (_super) { diff --git a/tests/baselines/reference/recursiveFunctionTypes.js b/tests/baselines/reference/recursiveFunctionTypes.js index 6f10ef99080..1158fb539d0 100644 --- a/tests/baselines/reference/recursiveFunctionTypes.js +++ b/tests/baselines/reference/recursiveFunctionTypes.js @@ -52,12 +52,9 @@ var x = fn; // error var y = fn; // ok var f; var g; -function f1(d) { -} -function f2() { -} -function g2() { -} +function f1(d) { } +function f2() { } +function g2() { } function f3() { return f3; } @@ -65,8 +62,7 @@ var a = f3; // error var C = (function () { function C() { } - C.g = function (t) { - }; + C.g = function (t) { }; return C; })(); C.g(3); // error diff --git a/tests/baselines/reference/recursiveFunctionTypes1.js b/tests/baselines/reference/recursiveFunctionTypes1.js index 2f2d072cb6b..c4c255d5e44 100644 --- a/tests/baselines/reference/recursiveFunctionTypes1.js +++ b/tests/baselines/reference/recursiveFunctionTypes1.js @@ -7,7 +7,6 @@ class C { var C = (function () { function C() { } - C.g = function (t) { - }; + C.g = function (t) { }; return C; })(); diff --git a/tests/baselines/reference/recursiveInferenceBug.js b/tests/baselines/reference/recursiveInferenceBug.js index cffa96415dc..ff9b1c31434 100644 --- a/tests/baselines/reference/recursiveInferenceBug.js +++ b/tests/baselines/reference/recursiveInferenceBug.js @@ -17,8 +17,7 @@ function f(x) { return x; } var zz = { - g: function () { - }, + g: function () { }, get f() { return "abc"; } diff --git a/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.js b/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.js index b056e90e909..0d972d3e86c 100644 --- a/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.js +++ b/tests/baselines/reference/recursiveTypesUsedAsFunctionParameters.js @@ -59,10 +59,8 @@ function foo(x) { function foo2(x) { } function other() { - function foo3(x) { - } - function foo4(x) { - } + function foo3(x) { } + function foo4(x) { } function foo5(x) { return null; } diff --git a/tests/baselines/reference/restArgAssignmentCompat.js b/tests/baselines/reference/restArgAssignmentCompat.js index a52cff7ec5c..3f8749f332d 100644 --- a/tests/baselines/reference/restArgAssignmentCompat.js +++ b/tests/baselines/reference/restArgAssignmentCompat.js @@ -17,8 +17,7 @@ function f() { } x.forEach(function (n, i) { return void ('item ' + i + ' = ' + n); }); } -function g(x, y) { -} +function g(x, y) { } var n = g; n = f; n([4], 'foo'); diff --git a/tests/baselines/reference/restArgMissingName.js b/tests/baselines/reference/restArgMissingName.js index b87800c7dac..bbd3641478e 100644 --- a/tests/baselines/reference/restArgMissingName.js +++ b/tests/baselines/reference/restArgMissingName.js @@ -3,9 +3,4 @@ function sum (...) {} //// [restArgMissingName.js] -function sum() { - var = []; - for (var _i = 0; _i < arguments.length; _i++) { - [_i - 0] = arguments[_i]; - } -} +function sum() { } diff --git a/tests/baselines/reference/restParamAsOptional.js b/tests/baselines/reference/restParamAsOptional.js index 59aea1cc9c4..717df925f35 100644 --- a/tests/baselines/reference/restParamAsOptional.js +++ b/tests/baselines/reference/restParamAsOptional.js @@ -3,16 +3,5 @@ function f(...x?) { } function f2(...x = []) { } //// [restParamAsOptional.js] -function f() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -} -function f2() { - if (x === void 0) { x = []; } - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -} +function f() { } +function f2() { } diff --git a/tests/baselines/reference/restParameterNotLast.js b/tests/baselines/reference/restParameterNotLast.js index 791d83849a1..4ca416a47ec 100644 --- a/tests/baselines/reference/restParameterNotLast.js +++ b/tests/baselines/reference/restParameterNotLast.js @@ -2,5 +2,4 @@ function f(...x, y) { } //// [restParameterNotLast.js] -function f(x, y) { -} +function f(x, y) { } diff --git a/tests/baselines/reference/restParameterWithoutAnnotationIsAnyArray.js b/tests/baselines/reference/restParameterWithoutAnnotationIsAnyArray.js index c800c628c9c..30547f3f637 100644 --- a/tests/baselines/reference/restParameterWithoutAnnotationIsAnyArray.js +++ b/tests/baselines/reference/restParameterWithoutAnnotationIsAnyArray.js @@ -28,53 +28,18 @@ var b = { //// [restParameterWithoutAnnotationIsAnyArray.js] // Rest parameters without type annotations are 'any', errors only for the functions with 2 rest params -function foo() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -} -var f = function foo() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -}; -var f2 = function (x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } -}; +function foo() { } +var f = function foo() { }; +var f2 = function (x) { }; var C = (function () { function C() { } - C.prototype.foo = function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }; + C.prototype.foo = function () { }; return C; })(); var a; var b = { - foo: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }, - a: function foo(x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } - }, - b: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - } + foo: function () { }, + a: function foo(x) { }, + b: function () { } }; diff --git a/tests/baselines/reference/restParameters.js b/tests/baselines/reference/restParameters.js index 2e5b7bb4c92..f71401d2f18 100644 --- a/tests/baselines/reference/restParameters.js +++ b/tests/baselines/reference/restParameters.js @@ -8,27 +8,7 @@ function f20(a:string, b?:string, ...c:number[]){} function f21(a:string, b?:string, c?:number, ...d:number[]){} //// [restParameters.js] -function f18(a) { - var b = []; - for (var _i = 1; _i < arguments.length; _i++) { - b[_i - 1] = arguments[_i]; - } -} -function f19(a, b) { - var c = []; - for (var _i = 2; _i < arguments.length; _i++) { - c[_i - 2] = arguments[_i]; - } -} -function f20(a, b) { - var c = []; - for (var _i = 2; _i < arguments.length; _i++) { - c[_i - 2] = arguments[_i]; - } -} -function f21(a, b, c) { - var d = []; - for (var _i = 3; _i < arguments.length; _i++) { - d[_i - 3] = arguments[_i]; - } -} +function f18(a) { } +function f19(a, b) { } +function f20(a, b) { } +function f21(a, b, c) { } diff --git a/tests/baselines/reference/restParametersOfNonArrayTypes.js b/tests/baselines/reference/restParametersOfNonArrayTypes.js index f6f6a8af44d..b1b2d7d2fb2 100644 --- a/tests/baselines/reference/restParametersOfNonArrayTypes.js +++ b/tests/baselines/reference/restParametersOfNonArrayTypes.js @@ -27,53 +27,18 @@ var b = { //// [restParametersOfNonArrayTypes.js] // Rest parameters must be an array type if they have a type annotation, so all these are errors -function foo() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -} -var f = function foo() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -}; -var f2 = function (x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } -}; +function foo() { } +var f = function foo() { }; +var f2 = function (x) { }; var C = (function () { function C() { } - C.prototype.foo = function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }; + C.prototype.foo = function () { }; return C; })(); var a; var b = { - foo: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }, - a: function foo(x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } - }, - b: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - } + foo: function () { }, + a: function foo(x) { }, + b: function () { } }; diff --git a/tests/baselines/reference/restParametersOfNonArrayTypes2.js b/tests/baselines/reference/restParametersOfNonArrayTypes2.js index 73d0ddaeef2..c6ad1f2ce25 100644 --- a/tests/baselines/reference/restParametersOfNonArrayTypes2.js +++ b/tests/baselines/reference/restParametersOfNonArrayTypes2.js @@ -59,103 +59,33 @@ var b2 = { //// [restParametersOfNonArrayTypes2.js] // Rest parameters must be an array type if they have a type annotation, // user defined subtypes of array do not count, all of these are errors -function foo() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -} -var f = function foo() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -}; -var f2 = function (x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } -}; +function foo() { } +var f = function foo() { }; +var f2 = function (x) { }; var C = (function () { function C() { } - C.prototype.foo = function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }; + C.prototype.foo = function () { }; return C; })(); var a; var b = { - foo: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }, - a: function foo(x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } - }, - b: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - } -}; -function foo2() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -} -var f3 = function foo() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -}; -var f4 = function (x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } + foo: function () { }, + a: function foo(x) { }, + b: function () { } }; +function foo2() { } +var f3 = function foo() { }; +var f4 = function (x) { }; var C2 = (function () { function C2() { } - C2.prototype.foo = function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }; + C2.prototype.foo = function () { }; return C2; })(); var a2; var b2 = { - foo: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }, - a: function foo(x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } - }, - b: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - } + foo: function () { }, + a: function foo(x) { }, + b: function () { } }; diff --git a/tests/baselines/reference/restParametersWithArrayTypeAnnotations.js b/tests/baselines/reference/restParametersWithArrayTypeAnnotations.js index c7d1dee9295..a199edea2c6 100644 --- a/tests/baselines/reference/restParametersWithArrayTypeAnnotations.js +++ b/tests/baselines/reference/restParametersWithArrayTypeAnnotations.js @@ -54,103 +54,33 @@ var b2 = { //// [restParametersWithArrayTypeAnnotations.js] // Rest parameters must be an array type if they have a type annotation, errors only for the functions with 2 rest params -function foo() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -} -var f = function foo() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -}; -var f2 = function (x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } -}; +function foo() { } +var f = function foo() { }; +var f2 = function (x) { }; var C = (function () { function C() { } - C.prototype.foo = function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }; + C.prototype.foo = function () { }; return C; })(); var a; var b = { - foo: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }, - a: function foo(x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } - }, - b: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - } -}; -function foo2() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -} -var f3 = function foo() { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } -}; -var f4 = function (x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } + foo: function () { }, + a: function foo(x) { }, + b: function () { } }; +function foo2() { } +var f3 = function foo() { }; +var f4 = function (x) { }; var C2 = (function () { function C2() { } - C2.prototype.foo = function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }; + C2.prototype.foo = function () { }; return C2; })(); var a2; var b2 = { - foo: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - }, - a: function foo(x) { - var y = []; - for (var _i = 1; _i < arguments.length; _i++) { - y[_i - 1] = arguments[_i]; - } - }, - b: function () { - var x = []; - for (var _i = 0; _i < arguments.length; _i++) { - x[_i - 0] = arguments[_i]; - } - } + foo: function () { }, + a: function foo(x) { }, + b: function () { } }; diff --git a/tests/baselines/reference/restParamsWithNonRestParams.js b/tests/baselines/reference/restParamsWithNonRestParams.js index 6b0caa72394..b58870f1346 100644 --- a/tests/baselines/reference/restParamsWithNonRestParams.js +++ b/tests/baselines/reference/restParamsWithNonRestParams.js @@ -7,24 +7,9 @@ function foo3(a?:string, ...b:number[]){} foo3(); // error but shouldn't be //// [restParamsWithNonRestParams.js] -function foo() { - var b = []; - for (var _i = 0; _i < arguments.length; _i++) { - b[_i - 0] = arguments[_i]; - } -} +function foo() { } foo(); // ok -function foo2(a) { - var b = []; - for (var _i = 1; _i < arguments.length; _i++) { - b[_i - 1] = arguments[_i]; - } -} +function foo2(a) { } foo2(); // should be an error -function foo3(a) { - var b = []; - for (var _i = 1; _i < arguments.length; _i++) { - b[_i - 1] = arguments[_i]; - } -} +function foo3(a) { } foo3(); // error but shouldn't be diff --git a/tests/baselines/reference/returnInConstructor1.js b/tests/baselines/reference/returnInConstructor1.js index 7594821f56c..0096c4d65b6 100644 --- a/tests/baselines/reference/returnInConstructor1.js +++ b/tests/baselines/reference/returnInConstructor1.js @@ -77,32 +77,28 @@ var A = (function () { function A() { return; } - A.prototype.foo = function () { - }; + A.prototype.foo = function () { }; return A; })(); var B = (function () { function B() { return 1; // error } - B.prototype.foo = function () { - }; + B.prototype.foo = function () { }; return B; })(); var C = (function () { function C() { return this; } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); var D = (function () { function D() { return "test"; // error } - D.prototype.foo = function () { - }; + D.prototype.foo = function () { }; return D; })(); var E = (function () { @@ -121,10 +117,8 @@ var G = (function () { function G() { this.test = 2; } - G.prototype.test1 = function () { - }; - G.prototype.foo = function () { - }; + G.prototype.test1 = function () { }; + G.prototype.foo = function () { }; return G; })(); var H = (function (_super) { diff --git a/tests/baselines/reference/returnStatements.js b/tests/baselines/reference/returnStatements.js index 4894caa47fa..59a91566043 100644 --- a/tests/baselines/reference/returnStatements.js +++ b/tests/baselines/reference/returnStatements.js @@ -59,8 +59,7 @@ function fn8() { var C = (function () { function C() { } - C.prototype.dispose = function () { - }; + C.prototype.dispose = function () { }; return C; })(); var D = (function (_super) { diff --git a/tests/baselines/reference/returnTypeParameter.js b/tests/baselines/reference/returnTypeParameter.js index 58667207055..75e8a998942 100644 --- a/tests/baselines/reference/returnTypeParameter.js +++ b/tests/baselines/reference/returnTypeParameter.js @@ -3,8 +3,7 @@ function f(a: T): T { } // error, no return statement function f2(a: T): T { return T; } // bug was that this satisfied the return statement requirement //// [returnTypeParameter.js] -function f(a) { -} // error, no return statement +function f(a) { } // error, no return statement function f2(a) { return T; } // bug was that this satisfied the return statement requirement diff --git a/tests/baselines/reference/scopingInCatchBlocks.js b/tests/baselines/reference/scopingInCatchBlocks.js index 2d3ca7098b5..3121f4e9c79 100644 --- a/tests/baselines/reference/scopingInCatchBlocks.js +++ b/tests/baselines/reference/scopingInCatchBlocks.js @@ -11,17 +11,12 @@ var x = ex1; // should error //// [scopingInCatchBlocks.js] -try { -} +try { } catch (ex1) { throw ex1; } -try { -} -catch (ex1) { -} // should not error -try { -} -catch (ex1) { -} // should not error +try { } +catch (ex1) { } // should not error +try { } +catch (ex1) { } // should not error var x = ex1; // should error diff --git a/tests/baselines/reference/separate1-2.js b/tests/baselines/reference/separate1-2.js index bda277467e8..6ef155ca0f4 100644 --- a/tests/baselines/reference/separate1-2.js +++ b/tests/baselines/reference/separate1-2.js @@ -6,7 +6,6 @@ module X { //// [separate1-2.js] var X; (function (X) { - function f() { - } + function f() { } X.f = f; })(X || (X = {})); diff --git a/tests/baselines/reference/shadowPrivateMembers.js b/tests/baselines/reference/shadowPrivateMembers.js index 3d7e3db7ef1..098a7914a71 100644 --- a/tests/baselines/reference/shadowPrivateMembers.js +++ b/tests/baselines/reference/shadowPrivateMembers.js @@ -13,8 +13,7 @@ var __extends = this.__extends || function (d, b) { var base = (function () { function base() { } - base.prototype.n = function () { - }; + base.prototype.n = function () { }; return base; })(); var derived = (function (_super) { @@ -22,7 +21,6 @@ var derived = (function (_super) { function derived() { _super.apply(this, arguments); } - derived.prototype.n = function () { - }; + derived.prototype.n = function () { }; return derived; })(base); diff --git a/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.js b/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.js index b360b0e45a7..289d29d02bd 100644 --- a/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.js +++ b/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.js @@ -2,6 +2,5 @@ var x = { n() { } }; //// [sourceMapValidationFunctionPropertyAssignment.js] -var x = { n: function () { -} }; +var x = { n: function () { } }; //# sourceMappingURL=sourceMapValidationFunctionPropertyAssignment.js.map \ No newline at end of file diff --git a/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.js.map b/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.js.map index cc78ea833bb..9170a8e3a2d 100644 --- a/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.js.map +++ b/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.js.map @@ -1,2 +1,2 @@ //// [sourceMapValidationFunctionPropertyAssignment.js.map] -{"version":3,"file":"sourceMapValidationFunctionPropertyAssignment.js","sourceRoot":"","sources":["sourceMapValidationFunctionPropertyAssignment.ts"],"names":["n"],"mappings":"AAAA,IAAI,CAAC,GAAG,EAAE,CAAC;AAAKA,CAACA,EAAE,CAAC"} \ No newline at end of file +{"version":3,"file":"sourceMapValidationFunctionPropertyAssignment.js","sourceRoot":"","sources":["sourceMapValidationFunctionPropertyAssignment.ts"],"names":[],"mappings":"AAAA,IAAI,CAAC,GAAG,EAAE,CAAC,iBAAM,EAAE,CAAC"} \ No newline at end of file diff --git a/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.sourcemap.txt b/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.sourcemap.txt index a1f780ae2fe..1ba2024cee0 100644 --- a/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.sourcemap.txt +++ b/tests/baselines/reference/sourceMapValidationFunctionPropertyAssignment.sourcemap.txt @@ -8,39 +8,34 @@ sources: sourceMapValidationFunctionPropertyAssignment.ts emittedFile:tests/cases/compiler/sourceMapValidationFunctionPropertyAssignment.js sourceFile:sourceMapValidationFunctionPropertyAssignment.ts ------------------------------------------------------------------- ->>>var x = { n: function () { +>>>var x = { n: function () { } }; 1 > 2 >^^^^ 3 > ^ 4 > ^^^ 5 > ^^ 6 > ^ +7 > ^^^^^^^^^^^^^^^^^ +8 > ^^ +9 > ^ +10> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > 2 >var 3 > x 4 > = 5 > { 6 > n +7 > () { } +8 > } +9 > ; 1 >Emitted(1, 1) Source(1, 1) + SourceIndex(0) 2 >Emitted(1, 5) Source(1, 5) + SourceIndex(0) 3 >Emitted(1, 6) Source(1, 6) + SourceIndex(0) 4 >Emitted(1, 9) Source(1, 9) + SourceIndex(0) 5 >Emitted(1, 11) Source(1, 11) + SourceIndex(0) 6 >Emitted(1, 12) Source(1, 12) + SourceIndex(0) ---- ->>>} }; -1 > -2 >^ -3 > ^^ -4 > ^ -5 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> -1 >() { -2 >} -3 > } -4 > ; -1 >Emitted(2, 1) Source(1, 17) + SourceIndex(0) name (n) -2 >Emitted(2, 2) Source(1, 18) + SourceIndex(0) name (n) -3 >Emitted(2, 4) Source(1, 20) + SourceIndex(0) -4 >Emitted(2, 5) Source(1, 21) + SourceIndex(0) +7 >Emitted(1, 29) Source(1, 18) + SourceIndex(0) +8 >Emitted(1, 31) Source(1, 20) + SourceIndex(0) +9 >Emitted(1, 32) Source(1, 21) + SourceIndex(0) --- >>>//# sourceMappingURL=sourceMapValidationFunctionPropertyAssignment.js.map \ No newline at end of file diff --git a/tests/baselines/reference/specializedOverloadWithRestParameters.js b/tests/baselines/reference/specializedOverloadWithRestParameters.js index 56bf07f6fdf..f091a39677c 100644 --- a/tests/baselines/reference/specializedOverloadWithRestParameters.js +++ b/tests/baselines/reference/specializedOverloadWithRestParameters.js @@ -22,8 +22,7 @@ var __extends = this.__extends || function (d, b) { var Base = (function () { function Base() { } - Base.prototype.foo = function () { - }; + Base.prototype.foo = function () { }; return Base; })(); var Derived1 = (function (_super) { @@ -31,8 +30,7 @@ var Derived1 = (function (_super) { function Derived1() { _super.apply(this, arguments); } - Derived1.prototype.bar = function () { - }; + Derived1.prototype.bar = function () { }; return Derived1; })(Base); function f(tagName) { diff --git a/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.js b/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.js index eaf0605ef17..e5e06d48a8d 100644 --- a/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.js +++ b/tests/baselines/reference/specializedSignatureIsNotSubtypeOfNonSpecializedSignature.js @@ -69,27 +69,23 @@ var a3: { //// [specializedSignatureIsNotSubtypeOfNonSpecializedSignature.js] // Specialized signatures must be a subtype of a non-specialized signature // All the below should be errors -function foo(x) { -} +function foo(x) { } var C = (function () { function C() { } - C.prototype.foo = function (x) { - }; + C.prototype.foo = function (x) { }; return C; })(); var C2 = (function () { function C2() { } - C2.prototype.foo = function (x) { - }; + C2.prototype.foo = function (x) { }; return C2; })(); var C3 = (function () { function C3() { } - C3.prototype.foo = function (x) { - }; + C3.prototype.foo = function (x) { }; return C3; })(); var a; diff --git a/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.js b/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.js index 882d0da9124..17a886a0784 100644 --- a/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.js +++ b/tests/baselines/reference/specializedSignatureIsSubtypeOfNonSpecializedSignature.js @@ -84,27 +84,23 @@ var a3: { //// [specializedSignatureIsSubtypeOfNonSpecializedSignature.js] // Specialized signatures must be a subtype of a non-specialized signature // All the below should not be errors -function foo(x) { -} +function foo(x) { } var C = (function () { function C() { } - C.prototype.foo = function (x) { - }; + C.prototype.foo = function (x) { }; return C; })(); var C2 = (function () { function C2() { } - C2.prototype.foo = function (x) { - }; + C2.prototype.foo = function (x) { }; return C2; })(); var C3 = (function () { function C3() { } - C3.prototype.foo = function (x) { - }; + C3.prototype.foo = function (x) { }; return C3; })(); var a; diff --git a/tests/baselines/reference/staticAndMemberFunctions.js b/tests/baselines/reference/staticAndMemberFunctions.js index 0d1d9e81900..71f146b72f7 100644 --- a/tests/baselines/reference/staticAndMemberFunctions.js +++ b/tests/baselines/reference/staticAndMemberFunctions.js @@ -8,9 +8,7 @@ class T { var T = (function () { function T() { } - T.x = function () { - }; - T.prototype.y = function () { - }; + T.x = function () { }; + T.prototype.y = function () { }; return T; })(); diff --git a/tests/baselines/reference/staticAndNonStaticPropertiesSameName.js b/tests/baselines/reference/staticAndNonStaticPropertiesSameName.js index ccfbcc85602..be667ae1f3b 100644 --- a/tests/baselines/reference/staticAndNonStaticPropertiesSameName.js +++ b/tests/baselines/reference/staticAndNonStaticPropertiesSameName.js @@ -11,9 +11,7 @@ class C { var C = (function () { function C() { } - C.prototype.f = function () { - }; - C.f = function () { - }; + C.prototype.f = function () { }; + C.f = function () { }; return C; })(); diff --git a/tests/baselines/reference/staticClassProps.js b/tests/baselines/reference/staticClassProps.js index 3dc7dbb67d0..aad40e29b76 100644 --- a/tests/baselines/reference/staticClassProps.js +++ b/tests/baselines/reference/staticClassProps.js @@ -12,8 +12,7 @@ class C var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; C.z = 1; return C; })(); diff --git a/tests/baselines/reference/staticGetterAndSetter.js b/tests/baselines/reference/staticGetterAndSetter.js index 7c6ef26e739..64fcc134ad9 100644 --- a/tests/baselines/reference/staticGetterAndSetter.js +++ b/tests/baselines/reference/staticGetterAndSetter.js @@ -13,8 +13,7 @@ var Foo = (function () { get: function () { return 0; }, - set: function (n) { - }, + set: function (n) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/staticInheritance.js b/tests/baselines/reference/staticInheritance.js index dfe39119d32..a577bad3a86 100644 --- a/tests/baselines/reference/staticInheritance.js +++ b/tests/baselines/reference/staticInheritance.js @@ -18,8 +18,7 @@ var __extends = this.__extends || function (d, b) { __.prototype = b.prototype; d.prototype = new __(); }; -function doThing(x) { -} +function doThing(x) { } var A = (function () { function A() { this.p = doThing(A); // OK diff --git a/tests/baselines/reference/staticInstanceResolution4.js b/tests/baselines/reference/staticInstanceResolution4.js index 6e81d67dc00..c74030d047e 100644 --- a/tests/baselines/reference/staticInstanceResolution4.js +++ b/tests/baselines/reference/staticInstanceResolution4.js @@ -9,8 +9,7 @@ A.foo(); var A = (function () { function A() { } - A.prototype.foo = function () { - }; + A.prototype.foo = function () { }; return A; })(); A.foo(); diff --git a/tests/baselines/reference/staticInstanceResolution5.js b/tests/baselines/reference/staticInstanceResolution5.js index 6ca976ae46a..843b79ec6f1 100644 --- a/tests/baselines/reference/staticInstanceResolution5.js +++ b/tests/baselines/reference/staticInstanceResolution5.js @@ -19,10 +19,7 @@ function z(w3: WinJS) { } //// [staticInstanceResolution5_1.js] define(["require", "exports"], function (require, exports) { // these 3 should be errors - var x = function (w1) { - }; - var y = function (w2) { - }; - function z(w3) { - } + var x = function (w1) { }; + var y = function (w2) { }; + function z(w3) { } }); diff --git a/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js b/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js index 062e252b393..edd657d7da1 100644 --- a/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js +++ b/tests/baselines/reference/staticMemberAssignsToConstructorFunctionMembers.js @@ -17,12 +17,10 @@ var C = (function () { function C() { } C.foo = function () { - C.foo = function () { - }; + C.foo = function () { }; }; C.bar = function (x) { - C.bar = function () { - }; // error + C.bar = function () { }; // error C.bar = function (x) { return x; }; // ok C.bar = function (x) { return 1; }; // ok return 1; diff --git a/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.js b/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.js index 23e6fa9dd06..7b24a29b326 100644 --- a/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.js +++ b/tests/baselines/reference/staticMemberOfClassAndPublicMemberOfAnotherClassAssignment.js @@ -29,15 +29,13 @@ c = a; var B = (function () { function B() { } - B.prototype.name = function () { - }; + B.prototype.name = function () { }; return B; })(); var C = (function () { function C() { } - C.name = function () { - }; + C.name = function () { }; return C; })(); var a = new B(); diff --git a/tests/baselines/reference/staticMembersUsingClassTypeParameter.js b/tests/baselines/reference/staticMembersUsingClassTypeParameter.js index 1c31ef82d91..0c728cdbab6 100644 --- a/tests/baselines/reference/staticMembersUsingClassTypeParameter.js +++ b/tests/baselines/reference/staticMembersUsingClassTypeParameter.js @@ -20,21 +20,18 @@ class C3 { var C = (function () { function C() { } - C.f = function (x) { - }; + C.f = function (x) { }; return C; })(); var C2 = (function () { function C2() { } - C2.f = function (x) { - }; + C2.f = function (x) { }; return C2; })(); var C3 = (function () { function C3() { } - C3.f = function (x) { - }; + C3.f = function (x) { }; return C3; })(); diff --git a/tests/baselines/reference/staticModifierAlreadySeen.js b/tests/baselines/reference/staticModifierAlreadySeen.js index b097f3924e4..d767a9b51d1 100644 --- a/tests/baselines/reference/staticModifierAlreadySeen.js +++ b/tests/baselines/reference/staticModifierAlreadySeen.js @@ -8,8 +8,7 @@ class C { var C = (function () { function C() { } - C.bar = function () { - }; + C.bar = function () { }; C.foo = 1; return C; })(); diff --git a/tests/baselines/reference/staticOffOfInstance1.js b/tests/baselines/reference/staticOffOfInstance1.js index 41b7cd895bb..58cf24d0529 100644 --- a/tests/baselines/reference/staticOffOfInstance1.js +++ b/tests/baselines/reference/staticOffOfInstance1.js @@ -13,7 +13,6 @@ var List = (function () { List.prototype.Blah = function () { this.Foo(); }; - List.Foo = function () { - }; + List.Foo = function () { }; return List; })(); diff --git a/tests/baselines/reference/staticOffOfInstance2.js b/tests/baselines/reference/staticOffOfInstance2.js index ff139859bf7..ceac77419a4 100644 --- a/tests/baselines/reference/staticOffOfInstance2.js +++ b/tests/baselines/reference/staticOffOfInstance2.js @@ -16,7 +16,6 @@ var List = (function () { this.Foo(); // no error List.Foo(); }; - List.Foo = function () { - }; + List.Foo = function () { }; return List; })(); diff --git a/tests/baselines/reference/staticPropertyAndFunctionWithSameName.js b/tests/baselines/reference/staticPropertyAndFunctionWithSameName.js index 0308805cd7b..50252c606f4 100644 --- a/tests/baselines/reference/staticPropertyAndFunctionWithSameName.js +++ b/tests/baselines/reference/staticPropertyAndFunctionWithSameName.js @@ -18,7 +18,6 @@ var C = (function () { var D = (function () { function D() { } - D.prototype.f = function () { - }; + D.prototype.f = function () { }; return D; })(); diff --git a/tests/baselines/reference/staticPropertyNotInClassType.js b/tests/baselines/reference/staticPropertyNotInClassType.js index 22ff4276deb..3a00c80e033 100644 --- a/tests/baselines/reference/staticPropertyNotInClassType.js +++ b/tests/baselines/reference/staticPropertyNotInClassType.js @@ -54,8 +54,7 @@ var NonGeneric; get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -85,8 +84,7 @@ var Generic; get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/staticPrototypeProperty.js b/tests/baselines/reference/staticPrototypeProperty.js index cfd81bedeec..471ec743b59 100644 --- a/tests/baselines/reference/staticPrototypeProperty.js +++ b/tests/baselines/reference/staticPrototypeProperty.js @@ -11,8 +11,7 @@ class C2 { var C = (function () { function C() { } - C.prototype = function () { - }; + C.prototype = function () { }; return C; })(); var C2 = (function () { diff --git a/tests/baselines/reference/staticsInAFunction.js b/tests/baselines/reference/staticsInAFunction.js index e6959b7757a..e918f4b2901 100644 --- a/tests/baselines/reference/staticsInAFunction.js +++ b/tests/baselines/reference/staticsInAFunction.js @@ -11,6 +11,5 @@ function boo() { test(); test(name, string); test(name ? : any); - { - } + { } } diff --git a/tests/baselines/reference/staticsInConstructorBodies.js b/tests/baselines/reference/staticsInConstructorBodies.js index 044f183b370..bb91b52a18a 100644 --- a/tests/baselines/reference/staticsInConstructorBodies.js +++ b/tests/baselines/reference/staticsInConstructorBodies.js @@ -10,8 +10,7 @@ class C { var C = (function () { function C() { } - C.m1 = function () { - }; // ERROR + C.m1 = function () { }; // ERROR C.p1 = 0; // ERROR return C; })(); diff --git a/tests/baselines/reference/strictMode5.js b/tests/baselines/reference/strictMode5.js index c46de926dbb..8e4021820f1 100644 --- a/tests/baselines/reference/strictMode5.js +++ b/tests/baselines/reference/strictMode5.js @@ -36,8 +36,7 @@ var A = (function () { return _this.n(); }; }; - A.prototype.n = function () { - }; + A.prototype.n = function () { }; return A; })(); function bar(x) { diff --git a/tests/baselines/reference/stringIndexerAndConstructor.js b/tests/baselines/reference/stringIndexerAndConstructor.js index 6d4cc3747c0..db3b9b8770b 100644 --- a/tests/baselines/reference/stringIndexerAndConstructor.js +++ b/tests/baselines/reference/stringIndexerAndConstructor.js @@ -17,7 +17,6 @@ interface I { var C = (function () { function C() { } - C.v = function () { - }; + C.v = function () { }; return C; })(); diff --git a/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.js b/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.js index ed96311f526..9d70b66887c 100644 --- a/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.js +++ b/tests/baselines/reference/stringIndexerConstrainsPropertyDeclarations.js @@ -106,8 +106,7 @@ var C = (function () { get: function () { return ''; }, - set: function (v) { - } // ok + set: function (v) { } // ok , enumerable: true, configurable: true @@ -115,8 +114,7 @@ var C = (function () { C.prototype.foo = function () { return ''; }; - C.foo = function () { - }; // ok + C.foo = function () { }; // ok Object.defineProperty(C, "X", { get: function () { return 1; @@ -131,8 +129,7 @@ var a; var b = { a: '', b: 1, - c: function () { - }, + c: function () { }, "d": '', "e": 1, 1.0: '', @@ -143,8 +140,7 @@ var b = { get X() { return ''; }, - set X(v) { - }, + set X(v) { }, foo: function () { return ''; } diff --git a/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.js b/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.js index 37aa59bef43..3a6280b15ba 100644 --- a/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.js +++ b/tests/baselines/reference/stringLiteralTypeIsSubtypeOfString.js @@ -101,24 +101,15 @@ function f16(x: any) { } //// [stringLiteralTypeIsSubtypeOfString.js] // string literal types are subtypes of string, any -function f1(x) { -} -function f2(x) { -} -function f3(x) { -} -function f4(x) { -} -function f5(x) { -} -function f6(x) { -} -function f7(x) { -} -function f8(x) { -} -function f9(x) { -} +function f1(x) { } +function f2(x) { } +function f3(x) { } +function f4(x) { } +function f5(x) { } +function f6(x) { } +function f7(x) { } +function f8(x) { } +function f9(x) { } var C = (function () { function C() { } @@ -185,21 +176,14 @@ var C = (function () { }; return C; })(); -function f10(x) { -} -function f11(x) { -} -function f12(x) { -} -function f13(x) { -} +function f10(x) { } +function f11(x) { } +function f12(x) { } +function f13(x) { } var E; (function (E) { E[E["A"] = 0] = "A"; })(E || (E = {})); -function f14(x) { -} -function f15(x) { -} -function f16(x) { -} +function f14(x) { } +function f15(x) { } +function f16(x) { } diff --git a/tests/baselines/reference/stringLiteralTypesInImplementationSignatures.js b/tests/baselines/reference/stringLiteralTypesInImplementationSignatures.js index dc2b2a73412..724c20c6309 100644 --- a/tests/baselines/reference/stringLiteralTypesInImplementationSignatures.js +++ b/tests/baselines/reference/stringLiteralTypesInImplementationSignatures.js @@ -28,25 +28,18 @@ var b = { //// [stringLiteralTypesInImplementationSignatures.js] // String literal types are only valid in overload signatures -function foo(x) { -} -var f = function foo(x) { -}; -var f2 = function (x, y) { -}; +function foo(x) { } +var f = function foo(x) { }; +var f2 = function (x, y) { }; var C = (function () { function C() { } - C.prototype.foo = function (x) { - }; + C.prototype.foo = function (x) { }; return C; })(); var a; var b = { - foo: function (x) { - }, - a: function foo(x, y) { - }, - b: function (x) { - } + foo: function (x) { }, + a: function foo(x, y) { }, + b: function (x) { } }; diff --git a/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.js b/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.js index 2ecd3330e20..5050709c213 100644 --- a/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.js +++ b/tests/baselines/reference/stringLiteralTypesInImplementationSignatures2.js @@ -31,19 +31,15 @@ var b = { //// [stringLiteralTypesInImplementationSignatures2.js] // String literal types are only valid in overload signatures -function foo(x) { -} +function foo(x) { } var C = (function () { function C() { } - C.prototype.foo = function (x) { - }; + C.prototype.foo = function (x) { }; return C; })(); var a; var b = { - foo: function (x) { - }, - foo: function (x) { - } + foo: function (x) { }, + foo: function (x) { } }; diff --git a/tests/baselines/reference/stringPropCodeGen.js b/tests/baselines/reference/stringPropCodeGen.js index 46e1a6eb920..ae8cfa3d5aa 100644 --- a/tests/baselines/reference/stringPropCodeGen.js +++ b/tests/baselines/reference/stringPropCodeGen.js @@ -15,8 +15,7 @@ a.bar.toString(); //// [stringPropCodeGen.js] var a = { - "foo": function () { - }, + "foo": function () { }, "bar": 5 }; a.foo(); diff --git a/tests/baselines/reference/stripInternal1.js b/tests/baselines/reference/stripInternal1.js index 9deadf1fc31..c5d350bcd86 100644 --- a/tests/baselines/reference/stripInternal1.js +++ b/tests/baselines/reference/stripInternal1.js @@ -10,11 +10,9 @@ class C { var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; // @internal - C.prototype.bar = function () { - }; + C.prototype.bar = function () { }; return C; })(); diff --git a/tests/baselines/reference/subtypesOfAny.js b/tests/baselines/reference/subtypesOfAny.js index 973db6a9a74..e73a120ed63 100644 --- a/tests/baselines/reference/subtypesOfAny.js +++ b/tests/baselines/reference/subtypesOfAny.js @@ -149,8 +149,7 @@ var E; (function (E) { E[E["A"] = 0] = "A"; })(E || (E = {})); -function f() { -} +function f() { } var f; (function (f) { f.bar = 1; diff --git a/tests/baselines/reference/subtypesOfTypeParameter.js b/tests/baselines/reference/subtypesOfTypeParameter.js index a7a31e881fd..5a5a02733ba 100644 --- a/tests/baselines/reference/subtypesOfTypeParameter.js +++ b/tests/baselines/reference/subtypesOfTypeParameter.js @@ -143,8 +143,7 @@ var E; (function (E) { E[E["A"] = 0] = "A"; })(E || (E = {})); -function f() { -} +function f() { } var f; (function (f) { f.bar = 1; @@ -177,10 +176,8 @@ function f2(x, y) { var r5 = true ? x : /1/; var r6 = true ? { foo: 1 } : x; var r6 = true ? x : { foo: 1 }; - var r7 = true ? function () { - } : x; - var r7 = true ? x : function () { - }; + var r7 = true ? function () { } : x; + var r7 = true ? x : function () { }; var r8 = true ? function (x) { return x; } : x; diff --git a/tests/baselines/reference/subtypesOfTypeParameterWithConstraints2.js b/tests/baselines/reference/subtypesOfTypeParameterWithConstraints2.js index bd729f36222..0687a434ae6 100644 --- a/tests/baselines/reference/subtypesOfTypeParameterWithConstraints2.js +++ b/tests/baselines/reference/subtypesOfTypeParameterWithConstraints2.js @@ -199,8 +199,7 @@ var E; (function (E) { E[E["A"] = 0] = "A"; })(E || (E = {})); -function f() { -} +function f() { } var f; (function (f) { f.bar = 1; @@ -246,10 +245,8 @@ function f10(x) { var r6 = true ? x : { foo: 1 }; // ok } function f11(x) { - var r7 = true ? function () { - } : x; // ok - var r7 = true ? x : function () { - }; // ok + var r7 = true ? function () { } : x; // ok + var r7 = true ? x : function () { }; // ok } function f12(x) { var r8 = true ? function (x) { diff --git a/tests/baselines/reference/subtypesOfUnion.js b/tests/baselines/reference/subtypesOfUnion.js index a18ebb944b9..926efc3e921 100644 --- a/tests/baselines/reference/subtypesOfUnion.js +++ b/tests/baselines/reference/subtypesOfUnion.js @@ -68,8 +68,7 @@ var A2 = (function () { } return A2; })(); -function f() { -} +function f() { } var f; (function (f) { f.bar = 1; diff --git a/tests/baselines/reference/subtypingWithCallSignatures2.js b/tests/baselines/reference/subtypingWithCallSignatures2.js index a887c52d2a1..e1341914739 100644 --- a/tests/baselines/reference/subtypingWithCallSignatures2.js +++ b/tests/baselines/reference/subtypingWithCallSignatures2.js @@ -217,8 +217,7 @@ var r2 = foo2(r2arg1); var r2a = [r2arg1, r2arg2]; var r2b = [r2arg2, r2arg1]; var r3arg1 = function (x) { return x; }; -var r3arg2 = function (x) { -}; +var r3arg2 = function (x) { }; var r3 = foo3(r3arg1); var r3a = [r3arg1, r3arg2]; var r3b = [r3arg2, r3arg1]; diff --git a/tests/baselines/reference/subtypingWithCallSignatures4.js b/tests/baselines/reference/subtypingWithCallSignatures4.js index 023b08c6d8d..cbdf92e2e60 100644 --- a/tests/baselines/reference/subtypingWithCallSignatures4.js +++ b/tests/baselines/reference/subtypingWithCallSignatures4.js @@ -156,8 +156,7 @@ var r2 = foo2(r2arg); var r2a = [r2arg, r2arg2]; var r2b = [r2arg2, r2arg]; var r3arg = function (x) { return null; }; -var r3arg2 = function (x) { -}; +var r3arg2 = function (x) { }; var r3 = foo3(r3arg); var r3a = [r3arg, r3arg2]; var r3b = [r3arg2, r3arg]; diff --git a/tests/baselines/reference/superAccess2.js b/tests/baselines/reference/superAccess2.js index 077eefc4e91..7d8f7a9e643 100644 --- a/tests/baselines/reference/superAccess2.js +++ b/tests/baselines/reference/superAccess2.js @@ -34,10 +34,8 @@ var __extends = this.__extends || function (d, b) { var P = (function () { function P() { } - P.prototype.x = function () { - }; - P.y = function () { - }; + P.prototype.x = function () { }; + P.y = function () { }; return P; })(); var Q = (function (_super) { diff --git a/tests/baselines/reference/superCallOutsideConstructor.js b/tests/baselines/reference/superCallOutsideConstructor.js index 32d45b044f5..94f41cccb57 100644 --- a/tests/baselines/reference/superCallOutsideConstructor.js +++ b/tests/baselines/reference/superCallOutsideConstructor.js @@ -32,8 +32,7 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); var D = (function (_super) { diff --git a/tests/baselines/reference/superCalls.js b/tests/baselines/reference/superCalls.js index e714a4db191..2928793feb6 100644 --- a/tests/baselines/reference/superCalls.js +++ b/tests/baselines/reference/superCalls.js @@ -43,8 +43,7 @@ var Base = (function () { } return Base; })(); -function v() { -} +function v() { } var Derived = (function (_super) { __extends(Derived, _super); //super call in class constructor of derived type diff --git a/tests/baselines/reference/superCallsInConstructor.js b/tests/baselines/reference/superCallsInConstructor.js index 912bfab349b..0c19e365d92 100644 --- a/tests/baselines/reference/superCallsInConstructor.js +++ b/tests/baselines/reference/superCallsInConstructor.js @@ -30,10 +30,8 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C() { } - C.prototype.foo = function () { - }; - C.prototype.bar = function () { - }; + C.prototype.foo = function () { }; + C.prototype.bar = function () { }; return C; })(); var Base = (function () { @@ -49,8 +47,7 @@ var Derived = (function (_super) { _super.call(this); bar(); } - try { - } + try { } catch (e) { _super.call(this); } diff --git a/tests/baselines/reference/superInCatchBlock1.js b/tests/baselines/reference/superInCatchBlock1.js index f94c0511277..1b9085ec266 100644 --- a/tests/baselines/reference/superInCatchBlock1.js +++ b/tests/baselines/reference/superInCatchBlock1.js @@ -23,8 +23,7 @@ var __extends = this.__extends || function (d, b) { var A = (function () { function A() { } - A.prototype.m = function () { - }; + A.prototype.m = function () { }; return A; })(); var B = (function (_super) { diff --git a/tests/baselines/reference/superPropertyAccess.js b/tests/baselines/reference/superPropertyAccess.js index a9ee2352c76..13dfe1ee3a7 100644 --- a/tests/baselines/reference/superPropertyAccess.js +++ b/tests/baselines/reference/superPropertyAccess.js @@ -45,22 +45,19 @@ var __extends = this.__extends || function (d, b) { }; var MyBase = (function () { function MyBase() { - this.m2 = function () { - }; + this.m2 = function () { }; this.d1 = 42; this.d2 = 42; } MyBase.prototype.m1 = function (a) { return a; }; - MyBase.prototype.p1 = function () { - }; + MyBase.prototype.p1 = function () { }; Object.defineProperty(MyBase.prototype, "value", { get: function () { return 0; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/superPropertyAccess1.js b/tests/baselines/reference/superPropertyAccess1.js index 8b1e855e0a3..a0a52526f93 100644 --- a/tests/baselines/reference/superPropertyAccess1.js +++ b/tests/baselines/reference/superPropertyAccess1.js @@ -37,8 +37,7 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; Object.defineProperty(C.prototype, "x", { get: function () { return 1; @@ -46,8 +45,7 @@ var C = (function () { enumerable: true, configurable: true }); - C.prototype.bar = function () { - }; + C.prototype.bar = function () { }; return C; })(); var D = (function (_super) { diff --git a/tests/baselines/reference/superPropertyAccess2.js b/tests/baselines/reference/superPropertyAccess2.js index 98beb078e2f..b906f1b0a8b 100644 --- a/tests/baselines/reference/superPropertyAccess2.js +++ b/tests/baselines/reference/superPropertyAccess2.js @@ -37,8 +37,7 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C() { } - C.foo = function () { - }; + C.foo = function () { }; Object.defineProperty(C.prototype, "x", { get: function () { return 1; @@ -46,8 +45,7 @@ var C = (function () { enumerable: true, configurable: true }); - C.bar = function () { - }; + C.bar = function () { }; return C; })(); var D = (function (_super) { diff --git a/tests/baselines/reference/superWithTypeArgument3.js b/tests/baselines/reference/superWithTypeArgument3.js index 8277fe0506e..ef228a3ba20 100644 --- a/tests/baselines/reference/superWithTypeArgument3.js +++ b/tests/baselines/reference/superWithTypeArgument3.js @@ -23,8 +23,7 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C() { } - C.prototype.bar = function (x) { - }; + C.prototype.bar = function (x) { }; return C; })(); var D = (function (_super) { diff --git a/tests/baselines/reference/switchBreakStatements.js b/tests/baselines/reference/switchBreakStatements.js index 810c9909233..534f025e2f5 100644 --- a/tests/baselines/reference/switchBreakStatements.js +++ b/tests/baselines/reference/switchBreakStatements.js @@ -91,8 +91,7 @@ SEVEN: switch ('') { break SEVEN; EIGHT: switch ('') { case 'a': - var fn = function () { - }; + var fn = function () { }; break EIGHT; } } diff --git a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.js b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.js index 6f3d4ed803a..14a7015f803 100644 --- a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.js +++ b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInference.js @@ -95,54 +95,43 @@ var arr: any[]; //// [taggedTemplateStringsTypeArgumentInference.js] // Generic tag with one parameter -function noParams(n) { -} +function noParams(n) { } noParams ""; // Generic tag with parameter which does not use type parameter -function noGenericParams(n) { -} +function noGenericParams(n) { } noGenericParams ""; // Generic tag with multiple type parameters and only one used in parameter type annotation -function someGenerics1a(n, m) { -} +function someGenerics1a(n, m) { } someGenerics1a "" + 3; -function someGenerics1b(n, m) { -} +function someGenerics1b(n, m) { } someGenerics1b "" + 3; // Generic tag with argument of function type whose parameter is of type parameter type -function someGenerics2a(strs, n) { -} +function someGenerics2a(strs, n) { } someGenerics2a "" + function (n) { return n; }; -function someGenerics2b(strs, n) { -} +function someGenerics2b(strs, n) { } someGenerics2b "" + function (n, x) { return n; }; // Generic tag with argument of function type whose parameter is not of type parameter type but body/return type uses type parameter -function someGenerics3(strs, producer) { -} +function someGenerics3(strs, producer) { } someGenerics3 "" + function () { return ''; }; someGenerics3 "" + function () { return undefined; }; someGenerics3 "" + function () { return 3; }; // 2 parameter generic tag with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type -function someGenerics4(strs, n, f) { -} +function someGenerics4(strs, n, f) { } someGenerics4 "" + 4 + function () { return null; }; someGenerics4 "" + '' + function () { return 3; }; someGenerics4 "" + null + null; // 2 parameter generic tag with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type -function someGenerics5(strs, n, f) { -} +function someGenerics5(strs, n, f) { } someGenerics5 4 + " " + function () { return null; }; someGenerics5 "" + '' + function () { return 3; }; someGenerics5 "" + null + null; // Generic tag with multiple arguments of function types that each have parameters of the same generic type -function someGenerics6(strs, a, b, c) { -} +function someGenerics6(strs, a, b, c) { } someGenerics6 "" + function (n) { return n; } + function (n) { return n; } + function (n) { return n; }; someGenerics6 "" + function (n) { return n; } + function (n) { return n; } + function (n) { return n; }; someGenerics6 "" + function (n) { return n; } + function (n) { return n; } + function (n) { return n; }; // Generic tag with multiple arguments of function types that each have parameters of different generic type -function someGenerics7(strs, a, b, c) { -} +function someGenerics7(strs, a, b, c) { } someGenerics7 "" + function (n) { return n; } + function (n) { return n; } + function (n) { return n; }; someGenerics7 "" + function (n) { return n; } + function (n) { return n; } + function (n) { return n; }; someGenerics7 "" + function (n) { return n; } + function (n) { return n; } + function (n) { return n; }; diff --git a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js index da39703931c..25203c40d91 100644 --- a/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js +++ b/tests/baselines/reference/taggedTemplateStringsTypeArgumentInferenceES6.js @@ -94,54 +94,43 @@ var arr: any[]; //// [taggedTemplateStringsTypeArgumentInferenceES6.js] // Generic tag with one parameter -function noParams(n) { -} +function noParams(n) { } noParams ``; // Generic tag with parameter which does not use type parameter -function noGenericParams(n) { -} +function noGenericParams(n) { } noGenericParams ``; // Generic tag with multiple type parameters and only one used in parameter type annotation -function someGenerics1a(n, m) { -} +function someGenerics1a(n, m) { } someGenerics1a `${3}`; -function someGenerics1b(n, m) { -} +function someGenerics1b(n, m) { } someGenerics1b `${3}`; // Generic tag with argument of function type whose parameter is of type parameter type -function someGenerics2a(strs, n) { -} +function someGenerics2a(strs, n) { } someGenerics2a `${(n) => { return n; }}`; -function someGenerics2b(strs, n) { -} +function someGenerics2b(strs, n) { } someGenerics2b `${(n, x) => { return n; }}`; // Generic tag with argument of function type whose parameter is not of type parameter type but body/return type uses type parameter -function someGenerics3(strs, producer) { -} +function someGenerics3(strs, producer) { } someGenerics3 `${() => { return ''; }}`; someGenerics3 `${() => { return undefined; }}`; someGenerics3 `${() => { return 3; }}`; // 2 parameter generic tag with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type -function someGenerics4(strs, n, f) { -} +function someGenerics4(strs, n, f) { } someGenerics4 `${4}${() => { return null; }}`; someGenerics4 `${''}${() => { return 3; }}`; someGenerics4 `${null}${null}`; // 2 parameter generic tag with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type -function someGenerics5(strs, n, f) { -} +function someGenerics5(strs, n, f) { } someGenerics5 `${4} ${() => { return null; }}`; someGenerics5 `${''}${() => { return 3; }}`; someGenerics5 `${null}${null}`; // Generic tag with multiple arguments of function types that each have parameters of the same generic type -function someGenerics6(strs, a, b, c) { -} +function someGenerics6(strs, a, b, c) { } someGenerics6 `${n => { return n; }}${n => { return n; }}${n => { return n; }}`; someGenerics6 `${n => { return n; }}${n => { return n; }}${n => { return n; }}`; someGenerics6 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; // Generic tag with multiple arguments of function types that each have parameters of different generic type -function someGenerics7(strs, a, b, c) { -} +function someGenerics7(strs, a, b, c) { } someGenerics7 `${n => { return n; }}${n => { return n; }}${n => { return n; }}`; someGenerics7 `${n => { return n; }}${n => { return n; }}${n => { return n; }}`; someGenerics7 `${(n) => { return n; }}${(n) => { return n; }}${(n) => { return n; }}`; diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.js b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.js index dc8a08b4fc4..a28e0103a7e 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.js +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3.js @@ -104,8 +104,7 @@ var s = fn3 "" + '' + '' + ''; var n = fn3 "" + '' + '' + 3; // Generic overloads with differing arity tagging with argument count that doesn't match any overload fn3 ""; // Error -function fn4() { -} +function fn4() { } // Generic overloads with constraints tagged with types that satisfy the constraints fn4 "" + '' + 3; fn4 "" + 3 + ''; diff --git a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js index eb7086eadec..75a01df6af6 100644 --- a/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js +++ b/tests/baselines/reference/taggedTemplateStringsWithOverloadResolution3_ES6.js @@ -103,8 +103,7 @@ var s = fn3 `${''}${''}${''}`; var n = fn3 `${''}${''}${3}`; // Generic overloads with differing arity tagging with argument count that doesn't match any overload fn3 ``; // Error -function fn4() { -} +function fn4() { } // Generic overloads with constraints tagged with types that satisfy the constraints fn4 `${''}${3}`; fn4 `${3}${''}`; diff --git a/tests/baselines/reference/targetTypeBaseCalls.js b/tests/baselines/reference/targetTypeBaseCalls.js index d844354b154..b09d4960d01 100644 --- a/tests/baselines/reference/targetTypeBaseCalls.js +++ b/tests/baselines/reference/targetTypeBaseCalls.js @@ -25,8 +25,7 @@ var __extends = this.__extends || function (d, b) { __.prototype = b.prototype; d.prototype = new __(); }; -function foo(x) { -} +function foo(x) { } var Foo = (function () { function Foo(x) { } diff --git a/tests/baselines/reference/thisInArrowFunctionInStaticInitializer1.js b/tests/baselines/reference/thisInArrowFunctionInStaticInitializer1.js index fdfcc5d9522..03e6ddb64d9 100644 --- a/tests/baselines/reference/thisInArrowFunctionInStaticInitializer1.js +++ b/tests/baselines/reference/thisInArrowFunctionInStaticInitializer1.js @@ -9,8 +9,7 @@ class Vector { } //// [thisInArrowFunctionInStaticInitializer1.js] -function log(a) { -} +function log(a) { } var Vector = (function () { function Vector() { var _this = this; diff --git a/tests/baselines/reference/thisInInvalidContexts.js b/tests/baselines/reference/thisInInvalidContexts.js index 16c40a96e91..f21ebedc1eb 100644 --- a/tests/baselines/reference/thisInInvalidContexts.js +++ b/tests/baselines/reference/thisInInvalidContexts.js @@ -92,8 +92,7 @@ var M; //'this' as type parameter constraint // function fn() { } // Error //'this' as a type argument -function genericFunc(x) { -} +function genericFunc(x) { } genericFunc < this > (undefined); // Should be an error var ErrClass3 = (function () { function ErrClass3() { diff --git a/tests/baselines/reference/thisInInvalidContextsExternalModule.js b/tests/baselines/reference/thisInInvalidContextsExternalModule.js index 19a2854efc7..ee1c5add921 100644 --- a/tests/baselines/reference/thisInInvalidContextsExternalModule.js +++ b/tests/baselines/reference/thisInInvalidContextsExternalModule.js @@ -92,8 +92,7 @@ var M; //'this' as type parameter constraint // function fn() { } // Error //'this' as a type argument -function genericFunc(x) { -} +function genericFunc(x) { } genericFunc < this > (undefined); // Should be an error var ErrClass3 = (function () { function ErrClass3() { diff --git a/tests/baselines/reference/thisInLambda.js b/tests/baselines/reference/thisInLambda.js index 515812b362c..94c86bd5a80 100644 --- a/tests/baselines/reference/thisInLambda.js +++ b/tests/baselines/reference/thisInLambda.js @@ -30,8 +30,7 @@ var Foo = (function () { }; return Foo; })(); -function myFn(a) { -} +function myFn(a) { } var myCls = (function () { function myCls() { var _this = this; diff --git a/tests/baselines/reference/thisReferencedInFunctionInsideArrowFunction1.js b/tests/baselines/reference/thisReferencedInFunctionInsideArrowFunction1.js index 4326e58d828..d6718a56106 100644 --- a/tests/baselines/reference/thisReferencedInFunctionInsideArrowFunction1.js +++ b/tests/baselines/reference/thisReferencedInFunctionInsideArrowFunction1.js @@ -8,8 +8,7 @@ function test() } //// [thisReferencedInFunctionInsideArrowFunction1.js] -var foo = function (dummy) { -}; +var foo = function (dummy) { }; function test() { foo(function () { return function () { return this; diff --git a/tests/baselines/reference/tooManyTypeParameters1.js b/tests/baselines/reference/tooManyTypeParameters1.js index 3ac7dfacda3..892731cbd43 100644 --- a/tests/baselines/reference/tooManyTypeParameters1.js +++ b/tests/baselines/reference/tooManyTypeParameters1.js @@ -12,11 +12,9 @@ interface I {} var i: I; //// [tooManyTypeParameters1.js] -function f() { -} +function f() { } f(); -var x = function () { -}; +var x = function () { }; x(); var C = (function () { function C() { diff --git a/tests/baselines/reference/topLevelLambda2.js b/tests/baselines/reference/topLevelLambda2.js index 9ff74b74dd7..10059e42efd 100644 --- a/tests/baselines/reference/topLevelLambda2.js +++ b/tests/baselines/reference/topLevelLambda2.js @@ -5,6 +5,5 @@ foo(()=>this.window); //// [topLevelLambda2.js] var _this = this; -function foo(x) { -} +function foo(x) { } foo(function () { return _this.window; }); diff --git a/tests/baselines/reference/trailingCommaInHeterogenousArrayLiteral1.js b/tests/baselines/reference/trailingCommaInHeterogenousArrayLiteral1.js index 478c05f5e73..7dd59ee840e 100644 --- a/tests/baselines/reference/trailingCommaInHeterogenousArrayLiteral1.js +++ b/tests/baselines/reference/trailingCommaInHeterogenousArrayLiteral1.js @@ -13,8 +13,7 @@ class arrTest { var arrTest = (function () { function arrTest() { } - arrTest.prototype.test = function (arg1) { - }; + arrTest.prototype.test = function (arg1) { }; arrTest.prototype.callTest = function () { // these two should give the same error this.test([1, 2, "hi", 5,]); diff --git a/tests/baselines/reference/tryCatchFinally.js b/tests/baselines/reference/tryCatchFinally.js index aeda61faca4..b93f248c031 100644 --- a/tests/baselines/reference/tryCatchFinally.js +++ b/tests/baselines/reference/tryCatchFinally.js @@ -6,17 +6,10 @@ try {} catch(e) {} try {} finally {} //// [tryCatchFinally.js] -try { -} -catch (e) { -} -finally { -} -try { -} -catch (e) { -} -try { -} -finally { -} +try { } +catch (e) { } +finally { } +try { } +catch (e) { } +try { } +finally { } diff --git a/tests/baselines/reference/tryStatements.js b/tests/baselines/reference/tryStatements.js index 01d55308d19..723014c1b52 100644 --- a/tests/baselines/reference/tryStatements.js +++ b/tests/baselines/reference/tryStatements.js @@ -18,14 +18,9 @@ function fn() { catch (x) { var x; } - try { - } - finally { - } - try { - } - catch (z) { - } - finally { - } + try { } + finally { } + try { } + catch (z) { } + finally { } } diff --git a/tests/baselines/reference/twoAccessorsWithSameName.js b/tests/baselines/reference/twoAccessorsWithSameName.js index 7ae4d3bd1f9..2d15bf6a02a 100644 --- a/tests/baselines/reference/twoAccessorsWithSameName.js +++ b/tests/baselines/reference/twoAccessorsWithSameName.js @@ -51,8 +51,7 @@ var D = (function () { function D() { } Object.defineProperty(D.prototype, "x", { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -65,8 +64,7 @@ var E = (function () { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -85,6 +83,5 @@ var y = { get x() { return 1; }, - set x(v) { - } + set x(v) { } }; diff --git a/tests/baselines/reference/twoAccessorsWithSameName2.js b/tests/baselines/reference/twoAccessorsWithSameName2.js index 437fe16cea5..b6ef280156d 100644 --- a/tests/baselines/reference/twoAccessorsWithSameName2.js +++ b/tests/baselines/reference/twoAccessorsWithSameName2.js @@ -33,8 +33,7 @@ var D = (function () { function D() { } Object.defineProperty(D, "x", { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); @@ -47,8 +46,7 @@ var E = (function () { get: function () { return 1; }, - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/typeArgInferenceWithNull.js b/tests/baselines/reference/typeArgInferenceWithNull.js index e54e1dc1630..ed7a50780aa 100644 --- a/tests/baselines/reference/typeArgInferenceWithNull.js +++ b/tests/baselines/reference/typeArgInferenceWithNull.js @@ -13,13 +13,9 @@ fn6({ x: null }, y => { }, { x: "" }); // y has type { x: any }, but ideally wou //// [typeArgInferenceWithNull.js] // All legal -function fn4(n) { -} +function fn4(n) { } fn4(null); -function fn5(n) { -} +function fn5(n) { } fn5({ x: null }); -function fn6(n, fun, n2) { -} -fn6({ x: null }, function (y) { -}, { x: "" }); // y has type { x: any }, but ideally would have type { x: string } +function fn6(n, fun, n2) { } +fn6({ x: null }, function (y) { }, { x: "" }); // y has type { x: any }, but ideally would have type { x: string } diff --git a/tests/baselines/reference/typeArgumentConstraintResolution1.js b/tests/baselines/reference/typeArgumentConstraintResolution1.js index b7476ad2abd..64b1bfe5b6c 100644 --- a/tests/baselines/reference/typeArgumentConstraintResolution1.js +++ b/tests/baselines/reference/typeArgumentConstraintResolution1.js @@ -13,8 +13,7 @@ foo2(""); // Type Date does not satisfy the constraint 'Number' for type p //// [typeArgumentConstraintResolution1.js] -function foo1(test) { -} +function foo1(test) { } foo1(""); // should error function foo2(test) { return null; diff --git a/tests/baselines/reference/typeArgumentInference.js b/tests/baselines/reference/typeArgumentInference.js index 9b37fabd62d..65de6ea071f 100644 --- a/tests/baselines/reference/typeArgumentInference.js +++ b/tests/baselines/reference/typeArgumentInference.js @@ -102,60 +102,50 @@ var arr: any[]; //// [typeArgumentInference.js] // Generic call with no parameters -function noParams() { -} +function noParams() { } noParams(); noParams(); noParams(); // Generic call with parameters but none use type parameter type -function noGenericParams(n) { -} +function noGenericParams(n) { } noGenericParams(''); noGenericParams(''); noGenericParams(''); // Generic call with multiple type parameters and only one used in parameter type annotation -function someGenerics1(n, m) { -} +function someGenerics1(n, m) { } someGenerics1(3, 4); someGenerics1(3, 4); // Generic call with argument of function type whose parameter is of type parameter type -function someGenerics2a(n) { -} +function someGenerics2a(n) { } someGenerics2a(function (n) { return n; }); someGenerics2a(function (n) { return n; }); someGenerics2a(function (n) { return n.substr(0); }); -function someGenerics2b(n) { -} +function someGenerics2b(n) { } someGenerics2b(function (n, x) { return n; }); someGenerics2b(function (n, t) { return n; }); someGenerics2b(function (n, t) { return n.substr(t * t); }); // Generic call with argument of function type whose parameter is not of type parameter type but body/return type uses type parameter -function someGenerics3(producer) { -} +function someGenerics3(producer) { } someGenerics3(function () { return ''; }); someGenerics3(function () { return undefined; }); someGenerics3(function () { return 3; }); // 2 parameter generic call with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type -function someGenerics4(n, f) { -} +function someGenerics4(n, f) { } someGenerics4(4, function () { return null; }); someGenerics4('', function () { return 3; }); someGenerics4(null, null); // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type -function someGenerics5(n, f) { -} +function someGenerics5(n, f) { } someGenerics5(4, function () { return null; }); someGenerics5('', function () { return 3; }); someGenerics5(null, null); // Generic call with multiple arguments of function types that each have parameters of the same generic type -function someGenerics6(a, b, c) { -} +function someGenerics6(a, b, c) { } someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Generic call with multiple arguments of function types that each have parameters of different generic type -function someGenerics7(a, b, c) { -} +function someGenerics7(a, b, c) { } someGenerics7(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); someGenerics7(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); someGenerics7(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); diff --git a/tests/baselines/reference/typeArgumentInferenceErrors.js b/tests/baselines/reference/typeArgumentInferenceErrors.js index 751190210f9..7ec612d2c7c 100644 --- a/tests/baselines/reference/typeArgumentInferenceErrors.js +++ b/tests/baselines/reference/typeArgumentInferenceErrors.js @@ -18,18 +18,14 @@ someGenerics6((n: number) => n, (n: string) => n, (n: number) => n); // //// [typeArgumentInferenceErrors.js] // Generic call with multiple type parameters and only one used in parameter type annotation -function someGenerics1(n, m) { -} +function someGenerics1(n, m) { } someGenerics1(3, 4); // Error // 2 parameter generic call with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type -function someGenerics4(n, f) { -} +function someGenerics4(n, f) { } someGenerics4('', function (x) { return ''; }); // Error // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type -function someGenerics5(n, f) { -} +function someGenerics5(n, f) { } someGenerics5('', function (x) { return ''; }); // Error // Generic call with multiple arguments of function types that each have parameters of the same generic type -function someGenerics6(a, b, c) { -} +function someGenerics6(a, b, c) { } someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Error diff --git a/tests/baselines/reference/typeArgumentInferenceWithConstraints.js b/tests/baselines/reference/typeArgumentInferenceWithConstraints.js index 713bbf8bcd3..f2300de8144 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithConstraints.js +++ b/tests/baselines/reference/typeArgumentInferenceWithConstraints.js @@ -107,65 +107,55 @@ var arr: any[]; //// [typeArgumentInferenceWithConstraints.js] // Generic call with no parameters -function noParams() { -} +function noParams() { } noParams(); noParams(); noParams(); // Generic call with parameters but none use type parameter type -function noGenericParams(n) { -} +function noGenericParams(n) { } noGenericParams(''); // Valid noGenericParams(''); noGenericParams(''); // Error // Generic call with multiple type parameters and only one used in parameter type annotation -function someGenerics1(n, m) { -} +function someGenerics1(n, m) { } someGenerics1(3, 4); // Valid someGenerics1(3, 4); // Error someGenerics1(3, 4); // Error someGenerics1(3, 4); // Generic call with argument of function type whose parameter is of type parameter type -function someGenerics2a(n) { -} +function someGenerics2a(n) { } someGenerics2a(function (n) { return n; }); someGenerics2a(function (n) { return n; }); someGenerics2a(function (n) { return n.substr(0); }); -function someGenerics2b(n) { -} +function someGenerics2b(n) { } someGenerics2b(function (n, x) { return n; }); someGenerics2b(function (n, t) { return n; }); someGenerics2b(function (n, t) { return n.substr(t * t); }); // Generic call with argument of function type whose parameter is not of type parameter type but body/return type uses type parameter -function someGenerics3(producer) { -} +function someGenerics3(producer) { } someGenerics3(function () { return ''; }); // Error someGenerics3(function () { return undefined; }); someGenerics3(function () { return 3; }); // Error // 2 parameter generic call with argument 1 of type parameter type and argument 2 of function type whose parameter is of type parameter type -function someGenerics4(n, f) { -} +function someGenerics4(n, f) { } someGenerics4(4, function () { return null; }); // Valid someGenerics4('', function () { return 3; }); someGenerics4('', function (x) { return ''; }); // Error someGenerics4(null, null); // 2 parameter generic call with argument 2 of type parameter type and argument 1 of function type whose parameter is of type parameter type -function someGenerics5(n, f) { -} +function someGenerics5(n, f) { } someGenerics5(4, function () { return null; }); // Valid someGenerics5('', function () { return 3; }); someGenerics5('', function (x) { return ''; }); // Error someGenerics5(null, null); // Error // Generic call with multiple arguments of function types that each have parameters of the same generic type -function someGenerics6(a, b, c) { -} +function someGenerics6(a, b, c) { } someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Valid someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Error someGenerics6(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Generic call with multiple arguments of function types that each have parameters of different generic type -function someGenerics7(a, b, c) { -} +function someGenerics7(a, b, c) { } someGenerics7(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); // Valid, types of n are respectively someGenerics7(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); someGenerics7(function (n) { return n; }, function (n) { return n; }, function (n) { return n; }); diff --git a/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.js b/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.js index eeb67b4d3af..8e2445d249c 100644 --- a/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.js +++ b/tests/baselines/reference/typeArgumentInferenceWithObjectLiteral.js @@ -37,8 +37,7 @@ var v3 = f1({ w: x => x, r: () => E1.X }, E2.X); // Error //// [typeArgumentInferenceWithObjectLiteral.js] -function foo(x) { -} +function foo(x) { } var s; // Calls below should infer string for T and then assign that type to the value parameter foo({ diff --git a/tests/baselines/reference/typeAssertions.js b/tests/baselines/reference/typeAssertions.js index c964ae94958..01acf58227b 100644 --- a/tests/baselines/reference/typeAssertions.js +++ b/tests/baselines/reference/typeAssertions.js @@ -50,10 +50,8 @@ var __extends = this.__extends || function (d, b) { d.prototype = new __(); }; // Function call whose argument is a 1 arg generic function call with explicit type arguments -function fn1(t) { -} -function fn2(t) { -} +function fn1(t) { } +function fn2(t) { } fn1(fn2(4)); // Error var a; var s; diff --git a/tests/baselines/reference/typeCheckTypeArgument.js b/tests/baselines/reference/typeCheckTypeArgument.js index 720ee92a966..bec33393f92 100644 --- a/tests/baselines/reference/typeCheckTypeArgument.js +++ b/tests/baselines/reference/typeCheckTypeArgument.js @@ -23,14 +23,11 @@ var Foo = (function () { } return Foo; })(); -function bar() { -} +function bar() { } var Foo2 = (function () { function Foo2() { } - Foo2.prototype.method = function () { - }; + Foo2.prototype.method = function () { }; return Foo2; })(); -(function (a) { -}); +(function (a) { }); diff --git a/tests/baselines/reference/typeIdentityConsidersBrands.js b/tests/baselines/reference/typeIdentityConsidersBrands.js index 002364a2e03..2398033c2c6 100644 --- a/tests/baselines/reference/typeIdentityConsidersBrands.js +++ b/tests/baselines/reference/typeIdentityConsidersBrands.js @@ -53,15 +53,13 @@ var Y_1 = (function () { } return Y_1; })(); -function foo(arg) { -} +function foo(arg) { } var a = new Y(); var b = new X(); a = b; // ok foo(a); // ok var a2 = new Y_1(); var b2 = new X_1(); -function foo2(arg) { -} +function foo2(arg) { } a2 = b2; // should error foo2(a2); // should error diff --git a/tests/baselines/reference/typeInfer1.js b/tests/baselines/reference/typeInfer1.js index bab1ebf930c..f0b14a6b6c9 100644 --- a/tests/baselines/reference/typeInfer1.js +++ b/tests/baselines/reference/typeInfer1.js @@ -15,10 +15,8 @@ var yyyyyyyy: ITextWriter2 = { //// [typeInfer1.js] var x = { - Write: function (s) { - }, - WriteLine: function (s) { - } + Write: function (s) { }, + WriteLine: function (s) { } }; var yyyyyyyy = { Moo: function () { diff --git a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.js b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.js index 9612aa7be51..20cadec3981 100644 --- a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.js +++ b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively.js @@ -38,10 +38,7 @@ foo(1, 2, 3); foo({ x: 1 }, { x: 1, y: '' }, { x: 2, y: '', z: true }); foo(a, b, c); foo(a, b, { foo: 1, bar: '', hm: true }); -foo(function (x, y) { -}, function (x) { -}, function () { -}); +foo(function (x, y) { }, function (x) { }, function () { }); function foo2(x, y, z) { return z; } diff --git a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.js b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.js index 3c9f3d959cd..c63c1e9e13a 100644 --- a/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.js +++ b/tests/baselines/reference/typeParameterAsTypeParameterConstraintTransitively2.js @@ -37,10 +37,7 @@ foo(1, 2, ''); foo({ x: 1 }, { x: 1, y: '' }, { x: 2, y: 2, z: true }); foo(a, b, a); foo(a, { foo: 1, bar: '', hm: true }, b); -foo(function (x, y) { -}, function (x, y) { -}, function () { -}); +foo(function (x, y) { }, function (x, y) { }, function () { }); function foo2(x, y, z) { return z; } diff --git a/tests/baselines/reference/typeParameterConstraints1.js b/tests/baselines/reference/typeParameterConstraints1.js index 49d347f576b..6ffefbcf8f1 100644 --- a/tests/baselines/reference/typeParameterConstraints1.js +++ b/tests/baselines/reference/typeParameterConstraints1.js @@ -14,29 +14,16 @@ function foo12(test: T) { } function foo13(test: T) { } //// [typeParameterConstraints1.js] -function foo1(test) { -} -function foo2(test) { -} -function foo3(test) { -} -function foo4(test) { -} // valid -function foo5(test) { -} // valid -function foo6(test) { -} -function foo7(test) { -} // valid -function foo8(test) { -} -function foo9(test) { -} -function foo10(test) { -} -function foo11(test) { -} -function foo12(test) { -} -function foo13(test) { -} +function foo1(test) { } +function foo2(test) { } +function foo3(test) { } +function foo4(test) { } // valid +function foo5(test) { } // valid +function foo6(test) { } +function foo7(test) { } // valid +function foo8(test) { } +function foo9(test) { } +function foo10(test) { } +function foo11(test) { } +function foo12(test) { } +function foo13(test) { } diff --git a/tests/baselines/reference/typeParameterDirectlyConstrainedToItself.js b/tests/baselines/reference/typeParameterDirectlyConstrainedToItself.js index 85f86f7de76..a14e010515b 100644 --- a/tests/baselines/reference/typeParameterDirectlyConstrainedToItself.js +++ b/tests/baselines/reference/typeParameterDirectlyConstrainedToItself.js @@ -30,12 +30,8 @@ var C2 = (function () { } return C2; })(); -function f() { -} -function f2() { -} +function f() { } +function f2() { } var a; -var b = function () { -}; -var b2 = function () { -}; +var b = function () { }; +var b2 = function () { }; diff --git a/tests/baselines/reference/typeParameterIndirectlyConstrainedToItself.js b/tests/baselines/reference/typeParameterIndirectlyConstrainedToItself.js index fc0e10d41c9..3cdb735adfb 100644 --- a/tests/baselines/reference/typeParameterIndirectlyConstrainedToItself.js +++ b/tests/baselines/reference/typeParameterIndirectlyConstrainedToItself.js @@ -29,15 +29,11 @@ var C2 = (function () { } return C2; })(); -function f() { -} -function f2() { -} +function f() { } +function f2() { } var a; -var b = function () { -}; -var b2 = function () { -}; +var b = function () { }; +var b2 = function () { }; var D = (function () { function D() { } diff --git a/tests/baselines/reference/typeParameterOrderReversal.js b/tests/baselines/reference/typeParameterOrderReversal.js index 8c9185ba57c..40df6db0034 100644 --- a/tests/baselines/reference/typeParameterOrderReversal.js +++ b/tests/baselines/reference/typeParameterOrderReversal.js @@ -15,10 +15,8 @@ tFirst(z); //// [typeParameterOrderReversal.js] // Only difference here is order of type parameters -function uFirst(x) { -} -function tFirst(x) { -} +function uFirst(x) { } +function tFirst(x) { } var z = null; // Both of these should be allowed uFirst(z); diff --git a/tests/baselines/reference/typeParameterUsedAsConstraint.js b/tests/baselines/reference/typeParameterUsedAsConstraint.js index 4649a53f8fc..b1c55343aa0 100644 --- a/tests/baselines/reference/typeParameterUsedAsConstraint.js +++ b/tests/baselines/reference/typeParameterUsedAsConstraint.js @@ -66,30 +66,18 @@ var C6 = (function () { } return C6; })(); -function f() { -} -function f2() { -} -function f3() { -} -function f4() { -} -function f5() { -} -function f6() { -} -var e = function () { -}; -var e2 = function () { -}; -var e3 = function () { -}; -var e4 = function () { -}; -var e5 = function () { -}; -var e6 = function () { -}; +function f() { } +function f2() { } +function f3() { } +function f4() { } +function f5() { } +function f6() { } +var e = function () { }; +var e2 = function () { }; +var e3 = function () { }; +var e4 = function () { }; +var e5 = function () { }; +var e6 = function () { }; var a; var a2; var a3; diff --git a/tests/baselines/reference/typeParametersAreIdenticalToThemselves.js b/tests/baselines/reference/typeParametersAreIdenticalToThemselves.js index a2f8aa2f9b7..c6c624f7e2b 100644 --- a/tests/baselines/reference/typeParametersAreIdenticalToThemselves.js +++ b/tests/baselines/reference/typeParametersAreIdenticalToThemselves.js @@ -78,37 +78,26 @@ interface I2 { //// [typeParametersAreIdenticalToThemselves.js] // type parameters from the same declaration are identical to themself -function foo1(x) { -} -function foo2(x) { -} +function foo1(x) { } +function foo2(x) { } function foo3(x, y) { - function inner(x) { - } - function inner2(x) { - } + function inner(x) { } + function inner2(x) { } } var C = (function () { function C() { } - C.prototype.foo1 = function (x) { - }; - C.prototype.foo2 = function (a, x) { - }; - C.prototype.foo3 = function (x) { - }; - C.prototype.foo4 = function (x) { - }; + C.prototype.foo1 = function (x) { }; + C.prototype.foo2 = function (a, x) { }; + C.prototype.foo3 = function (x) { }; + C.prototype.foo4 = function (x) { }; return C; })(); var C2 = (function () { function C2() { } - C2.prototype.foo1 = function (x) { - }; - C2.prototype.foo2 = function (a, x) { - }; - C2.prototype.foo3 = function (x) { - }; + C2.prototype.foo1 = function (x) { }; + C2.prototype.foo2 = function (a, x) { }; + C2.prototype.foo3 = function (x) { }; return C2; })(); diff --git a/tests/baselines/reference/typeParametersInStaticAccessors.js b/tests/baselines/reference/typeParametersInStaticAccessors.js index 411a4eac69d..2f9d8c795ff 100644 --- a/tests/baselines/reference/typeParametersInStaticAccessors.js +++ b/tests/baselines/reference/typeParametersInStaticAccessors.js @@ -16,8 +16,7 @@ var foo = (function () { configurable: true }); Object.defineProperty(foo, "Bar", { - set: function (v) { - }, + set: function (v) { }, enumerable: true, configurable: true }); diff --git a/tests/baselines/reference/typeQueryOnClass.js b/tests/baselines/reference/typeQueryOnClass.js index 08fea6567fc..5c881a5ced3 100644 --- a/tests/baselines/reference/typeQueryOnClass.js +++ b/tests/baselines/reference/typeQueryOnClass.js @@ -64,10 +64,8 @@ var C = (function () { this.ia = 1; this.ib = function () { return _this.ia; }; } - C.foo = function (x) { - }; - C.bar = function (x) { - }; + C.foo = function (x) { }; + C.bar = function (x) { }; Object.defineProperty(C, "sc", { get: function () { return 1; @@ -115,8 +113,7 @@ var D = (function () { function D(y) { this.y = y; } - D.prototype.foo = function () { - }; + D.prototype.foo = function () { }; return D; })(); var d; diff --git a/tests/baselines/reference/typeResolution.js b/tests/baselines/reference/typeResolution.js index 74102f5a0fd..55a6beeceba 100644 --- a/tests/baselines/reference/typeResolution.js +++ b/tests/baselines/reference/typeResolution.js @@ -224,24 +224,21 @@ define(["require", "exports"], function (require, exports) { var ClassA = (function () { function ClassA() { } - ClassA.prototype.AisIn1_2_2 = function () { - }; + ClassA.prototype.AisIn1_2_2 = function () { }; return ClassA; })(); SubSubModule2.ClassA = ClassA; var ClassB = (function () { function ClassB() { } - ClassB.prototype.BisIn1_2_2 = function () { - }; + ClassB.prototype.BisIn1_2_2 = function () { }; return ClassB; })(); SubSubModule2.ClassB = ClassB; var ClassC = (function () { function ClassC() { } - ClassC.prototype.CisIn1_2_2 = function () { - }; + ClassC.prototype.CisIn1_2_2 = function () { }; return ClassC; })(); SubSubModule2.ClassC = ClassC; @@ -250,8 +247,7 @@ define(["require", "exports"], function (require, exports) { var ClassA = (function () { function ClassA() { } - ClassA.prototype.AisIn1 = function () { - }; + ClassA.prototype.AisIn1 = function () { }; return ClassA; })(); var NotExportedModule; @@ -271,8 +267,7 @@ define(["require", "exports"], function (require, exports) { var ClassA = (function () { function ClassA() { } - ClassA.prototype.AisIn2_3 = function () { - }; + ClassA.prototype.AisIn2_3 = function () { }; return ClassA; })(); SubModule3.ClassA = ClassA; diff --git a/tests/baselines/reference/typeResolution.js.map b/tests/baselines/reference/typeResolution.js.map index b030021a205..a39fb49d634 100644 --- a/tests/baselines/reference/typeResolution.js.map +++ b/tests/baselines/reference/typeResolution.js.map @@ -1,2 +1,2 @@ //// [typeResolution.js.map] -{"version":3,"file":"typeResolution.js","sourceRoot":"","sources":["typeResolution.ts"],"names":["TopLevelModule1","TopLevelModule1.SubModule1","TopLevelModule1.SubModule1.SubSubModule1","TopLevelModule1.SubModule1.SubSubModule1.ClassA","TopLevelModule1.SubModule1.SubSubModule1.ClassA.constructor","TopLevelModule1.SubModule1.SubSubModule1.ClassA.AisIn1_1_1","TopLevelModule1.SubModule1.SubSubModule1.ClassB","TopLevelModule1.SubModule1.SubSubModule1.ClassB.constructor","TopLevelModule1.SubModule1.SubSubModule1.ClassB.BisIn1_1_1","TopLevelModule1.SubModule1.SubSubModule1.NonExportedClassQ","TopLevelModule1.SubModule1.SubSubModule1.NonExportedClassQ.constructor","TopLevelModule1.SubModule1.SubSubModule1.NonExportedClassQ.constructor.QQ","TopLevelModule1.SubModule1.ClassA","TopLevelModule1.SubModule1.ClassA.constructor","TopLevelModule1.SubModule1.ClassA.constructor.AA","TopLevelModule1.SubModule2","TopLevelModule1.SubModule2.SubSubModule2","TopLevelModule1.SubModule2.SubSubModule2.ClassA","TopLevelModule1.SubModule2.SubSubModule2.ClassA.constructor","TopLevelModule1.SubModule2.SubSubModule2.ClassA.AisIn1_2_2","TopLevelModule1.SubModule2.SubSubModule2.ClassB","TopLevelModule1.SubModule2.SubSubModule2.ClassB.constructor","TopLevelModule1.SubModule2.SubSubModule2.ClassB.BisIn1_2_2","TopLevelModule1.SubModule2.SubSubModule2.ClassC","TopLevelModule1.SubModule2.SubSubModule2.ClassC.constructor","TopLevelModule1.SubModule2.SubSubModule2.ClassC.CisIn1_2_2","TopLevelModule1.ClassA","TopLevelModule1.ClassA.constructor","TopLevelModule1.ClassA.AisIn1","TopLevelModule1.NotExportedModule","TopLevelModule1.NotExportedModule.ClassA","TopLevelModule1.NotExportedModule.ClassA.constructor","TopLevelModule2","TopLevelModule2.SubModule3","TopLevelModule2.SubModule3.ClassA","TopLevelModule2.SubModule3.ClassA.constructor","TopLevelModule2.SubModule3.ClassA.AisIn2_3"],"mappings":";IAAA,IAAc,eAAe,CAmG5B;IAnGD,WAAc,eAAe,EAAC,CAAC;QAC3BA,IAAcA,UAAUA,CAwEvBA;QAxEDA,WAAcA,UAAUA,EAACA,CAACA;YACtBC,IAAcA,aAAaA,CAwD1BA;YAxDDA,WAAcA,aAAaA,EAACA,CAACA;gBACzBC,IAAaA,MAAMA;oBAAnBC,SAAaA,MAAMA;oBAmBnBC,CAACA;oBAlBUD,2BAAUA,GAAjBA;wBAEIE,AADAA,uCAAuCA;4BACnCA,EAAUA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAChCA,IAAIA,EAAwBA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAC9CA,IAAIA,EAAmCA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACzDA,IAAIA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,yCAAyCA;4BACrCA,EAAUA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAChCA,IAAIA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,qCAAqCA;4BACjCA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,sBAAsBA;4BAClBA,EAAcA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACpCA,IAAIA,EAA4BA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;oBACtDA,CAACA;oBACLF,aAACA;gBAADA,CAACA,AAnBDD,IAmBCA;gBAnBYA,oBAAMA,GAANA,MAmBZA,CAAAA;gBACDA,IAAaA,MAAMA;oBAAnBI,SAAaA,MAAMA;oBAsBnBC,CAACA;oBArBUD,2BAAUA,GAAjBA;wBACIE,+CAA+CA;wBAG/CA,AADAA,uCAAuCA;4BACnCA,EAAUA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAChCA,IAAIA,EAAwBA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAC9CA,IAAIA,EAAmCA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACzDA,IAAIA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,yCAAyCA;4BACrCA,EAAUA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAChCA,IAAIA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,qCAAqCA;4BACjCA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACzEA,IAAIA,EAAqCA,CAACA;wBAACA,EAAEA,CAACA,QAAQA,EAAEA,CAACA;wBAGzDA,AADAA,sBAAsBA;4BAClBA,EAAcA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACpCA,IAAIA,EAA4BA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;oBACtDA,CAACA;oBACLF,aAACA;gBAADA,CAACA,AAtBDJ,IAsBCA;gBAtBYA,oBAAMA,GAANA,MAsBZA,CAAAA;gBAEDA,IAAMA,iBAAiBA;oBACnBO,SADEA,iBAAiBA;wBAEfC,SAASA,EAAEA;4BAEPC,AADAA,uCAAuCA;gCACnCA,EAAmDA,CAACA;4BAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;4BACzEA,IAAIA,EAAmDA,CAACA;4BAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;4BACzEA,IAAIA,EAAcA,CAACA;4BAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;4BACpCA,IAAIA,EAAqCA,CAACA;4BAACA,EAAEA,CAACA,QAAQA,EAAEA,CAACA;wBAC7DA,CAACA;oBACLD,CAACA;oBACLD,wBAACA;gBAADA,CAACA,AAVDP,IAUCA;YACLA,CAACA,EAxDaD,aAAaA,GAAbA,wBAAaA,KAAbA,wBAAaA,QAwD1BA;YAGDA,AADAA,0EAA0EA;gBACpEA,MAAMA;gBACRW,SADEA,MAAMA;oBAEJC,SAASA,EAAEA;wBACPC,IAAIA,EAAwBA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAC9CA,IAAIA,EAAmCA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACzDA,IAAIA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,sBAAsBA;4BAClBA,EAA4BA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;oBACtDA,CAACA;gBACLD,CAACA;gBACLD,aAACA;YAADA,CAACA,AAXDX,IAWCA;QACLA,CAACA,EAxEaD,UAAUA,GAAVA,0BAAUA,KAAVA,0BAAUA,QAwEvBA;QAEDA,IAAcA,UAAUA,CAWvBA;QAXDA,WAAcA,UAAUA,EAACA,CAACA;YACtBe,IAAcA,aAAaA,CAO1BA;YAPDA,WAAcA,aAAaA,EAACA,CAACA;gBAEzBC,AADAA,6DAA6DA;oBAChDA,MAAMA;oBAAnBC,SAAaA,MAAMA;oBAA2BC,CAACA;oBAAlBD,2BAAUA,GAAjBA;oBAAsBE,CAACA;oBAACF,aAACA;gBAADA,CAACA,AAA/CD,IAA+CA;gBAAlCA,oBAAMA,GAANA,MAAkCA,CAAAA;gBAC/CA,IAAaA,MAAMA;oBAAnBI,SAAaA,MAAMA;oBAA2BC,CAACA;oBAAlBD,2BAAUA,GAAjBA;oBAAsBE,CAACA;oBAACF,aAACA;gBAADA,CAACA,AAA/CJ,IAA+CA;gBAAlCA,oBAAMA,GAANA,MAAkCA,CAAAA;gBAC/CA,IAAaA,MAAMA;oBAAnBO,SAAaA,MAAMA;oBAA2BC,CAACA;oBAAlBD,2BAAUA,GAAjBA;oBAAsBE,CAACA;oBAACF,aAACA;gBAADA,CAACA,AAA/CP,IAA+CA;gBAAlCA,oBAAMA,GAANA,MAAkCA,CAAAA;gBAEZA,JACvCA,CAACA,EAPaD,aAAaA,GAAbA,wBAAaA,KAAbA,wBAAaA,QAO1BA;YAE0CA,JAC/CA,CAACA,EAXaf,UAAUA,GAAVA,0BAAUA,KAAVA,0BAAUA,QAWvBA;QAEDA,IAAMA,MAAMA;YAAZ0B,SAAMA,MAAMA;YAEZC,CAACA;YADUD,uBAAMA,GAAbA;YAAkBE,CAACA;YACvBF,aAACA;QAADA,CAACA,AAFD1B,IAECA;QAMDA,IAAOA,iBAAiBA,CAEvBA;QAFDA,WAAOA,iBAAiBA,EAACA,CAACA;YACtB6B,IAAaA,MAAMA;gBAAnBC,SAAaA,MAAMA;gBAAGC,CAACA;gBAADD,aAACA;YAADA,CAACA,AAAvBD,IAAuBA;YAAVA,wBAAMA,GAANA,MAAUA,CAAAA;QAC3BA,CAACA,EAFM7B,iBAAiBA,KAAjBA,iBAAiBA,QAEvBA;IACLA,CAACA,EAnGa,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAmG5B;IAED,IAAO,eAAe,CAMrB;IAND,WAAO,eAAe,EAAC,CAAC;QACpBgC,IAAcA,UAAUA,CAIvBA;QAJDA,WAAcA,UAAUA,EAACA,CAACA;YACtBC,IAAaA,MAAMA;gBAAnBC,SAAaA,MAAMA;gBAEnBC,CAACA;gBADUD,yBAAQA,GAAfA;gBAAoBE,CAACA;gBACzBF,aAACA;YAADA,CAACA,AAFDD,IAECA;YAFYA,iBAAMA,GAANA,MAEZA,CAAAA;QACLA,CAACA,EAJaD,UAAUA,GAAVA,0BAAUA,KAAVA,0BAAUA,QAIvBA;IACLA,CAACA,EANM,eAAe,KAAf,eAAe,QAMrB"} \ No newline at end of file +{"version":3,"file":"typeResolution.js","sourceRoot":"","sources":["typeResolution.ts"],"names":["TopLevelModule1","TopLevelModule1.SubModule1","TopLevelModule1.SubModule1.SubSubModule1","TopLevelModule1.SubModule1.SubSubModule1.ClassA","TopLevelModule1.SubModule1.SubSubModule1.ClassA.constructor","TopLevelModule1.SubModule1.SubSubModule1.ClassA.AisIn1_1_1","TopLevelModule1.SubModule1.SubSubModule1.ClassB","TopLevelModule1.SubModule1.SubSubModule1.ClassB.constructor","TopLevelModule1.SubModule1.SubSubModule1.ClassB.BisIn1_1_1","TopLevelModule1.SubModule1.SubSubModule1.NonExportedClassQ","TopLevelModule1.SubModule1.SubSubModule1.NonExportedClassQ.constructor","TopLevelModule1.SubModule1.SubSubModule1.NonExportedClassQ.constructor.QQ","TopLevelModule1.SubModule1.ClassA","TopLevelModule1.SubModule1.ClassA.constructor","TopLevelModule1.SubModule1.ClassA.constructor.AA","TopLevelModule1.SubModule2","TopLevelModule1.SubModule2.SubSubModule2","TopLevelModule1.SubModule2.SubSubModule2.ClassA","TopLevelModule1.SubModule2.SubSubModule2.ClassA.constructor","TopLevelModule1.SubModule2.SubSubModule2.ClassB","TopLevelModule1.SubModule2.SubSubModule2.ClassB.constructor","TopLevelModule1.SubModule2.SubSubModule2.ClassC","TopLevelModule1.SubModule2.SubSubModule2.ClassC.constructor","TopLevelModule1.ClassA","TopLevelModule1.ClassA.constructor","TopLevelModule1.NotExportedModule","TopLevelModule1.NotExportedModule.ClassA","TopLevelModule1.NotExportedModule.ClassA.constructor","TopLevelModule2","TopLevelModule2.SubModule3","TopLevelModule2.SubModule3.ClassA","TopLevelModule2.SubModule3.ClassA.constructor"],"mappings":";IAAA,IAAc,eAAe,CAmG5B;IAnGD,WAAc,eAAe,EAAC,CAAC;QAC3BA,IAAcA,UAAUA,CAwEvBA;QAxEDA,WAAcA,UAAUA,EAACA,CAACA;YACtBC,IAAcA,aAAaA,CAwD1BA;YAxDDA,WAAcA,aAAaA,EAACA,CAACA;gBACzBC,IAAaA,MAAMA;oBAAnBC,SAAaA,MAAMA;oBAmBnBC,CAACA;oBAlBUD,2BAAUA,GAAjBA;wBAEIE,AADAA,uCAAuCA;4BACnCA,EAAUA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAChCA,IAAIA,EAAwBA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAC9CA,IAAIA,EAAmCA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACzDA,IAAIA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,yCAAyCA;4BACrCA,EAAUA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAChCA,IAAIA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,qCAAqCA;4BACjCA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,sBAAsBA;4BAClBA,EAAcA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACpCA,IAAIA,EAA4BA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;oBACtDA,CAACA;oBACLF,aAACA;gBAADA,CAACA,AAnBDD,IAmBCA;gBAnBYA,oBAAMA,GAANA,MAmBZA,CAAAA;gBACDA,IAAaA,MAAMA;oBAAnBI,SAAaA,MAAMA;oBAsBnBC,CAACA;oBArBUD,2BAAUA,GAAjBA;wBACIE,+CAA+CA;wBAG/CA,AADAA,uCAAuCA;4BACnCA,EAAUA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAChCA,IAAIA,EAAwBA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAC9CA,IAAIA,EAAmCA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACzDA,IAAIA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,yCAAyCA;4BACrCA,EAAUA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAChCA,IAAIA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,qCAAqCA;4BACjCA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACzEA,IAAIA,EAAqCA,CAACA;wBAACA,EAAEA,CAACA,QAAQA,EAAEA,CAACA;wBAGzDA,AADAA,sBAAsBA;4BAClBA,EAAcA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACpCA,IAAIA,EAA4BA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;oBACtDA,CAACA;oBACLF,aAACA;gBAADA,CAACA,AAtBDJ,IAsBCA;gBAtBYA,oBAAMA,GAANA,MAsBZA,CAAAA;gBAEDA,IAAMA,iBAAiBA;oBACnBO,SADEA,iBAAiBA;wBAEfC,SAASA,EAAEA;4BAEPC,AADAA,uCAAuCA;gCACnCA,EAAmDA,CAACA;4BAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;4BACzEA,IAAIA,EAAmDA,CAACA;4BAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;4BACzEA,IAAIA,EAAcA,CAACA;4BAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;4BACpCA,IAAIA,EAAqCA,CAACA;4BAACA,EAAEA,CAACA,QAAQA,EAAEA,CAACA;wBAC7DA,CAACA;oBACLD,CAACA;oBACLD,wBAACA;gBAADA,CAACA,AAVDP,IAUCA;YACLA,CAACA,EAxDaD,aAAaA,GAAbA,wBAAaA,KAAbA,wBAAaA,QAwD1BA;YAGDA,AADAA,0EAA0EA;gBACpEA,MAAMA;gBACRW,SADEA,MAAMA;oBAEJC,SAASA,EAAEA;wBACPC,IAAIA,EAAwBA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAC9CA,IAAIA,EAAmCA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBACzDA,IAAIA,EAAmDA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;wBAGzEA,AADAA,sBAAsBA;4BAClBA,EAA4BA,CAACA;wBAACA,EAAEA,CAACA,UAAUA,EAAEA,CAACA;oBACtDA,CAACA;gBACLD,CAACA;gBACLD,aAACA;YAADA,CAACA,AAXDX,IAWCA;QACLA,CAACA,EAxEaD,UAAUA,GAAVA,0BAAUA,KAAVA,0BAAUA,QAwEvBA;QAEDA,IAAcA,UAAUA,CAWvBA;QAXDA,WAAcA,UAAUA,EAACA,CAACA;YACtBe,IAAcA,aAAaA,CAO1BA;YAPDA,WAAcA,aAAaA,EAACA,CAACA;gBAEzBC,AADAA,6DAA6DA;oBAChDA,MAAMA;oBAAnBC,SAAaA,MAAMA;oBAA2BC,CAACA;oBAAlBD,2BAAUA,GAAjBA,eAAuBA;oBAACA,aAACA;gBAADA,CAACA,AAA/CD,IAA+CA;gBAAlCA,oBAAMA,GAANA,MAAkCA,CAAAA;gBAC/CA,IAAaA,MAAMA;oBAAnBG,SAAaA,MAAMA;oBAA2BC,CAACA;oBAAlBD,2BAAUA,GAAjBA,eAAuBA;oBAACA,aAACA;gBAADA,CAACA,AAA/CH,IAA+CA;gBAAlCA,oBAAMA,GAANA,MAAkCA,CAAAA;gBAC/CA,IAAaA,MAAMA;oBAAnBK,SAAaA,MAAMA;oBAA2BC,CAACA;oBAAlBD,2BAAUA,GAAjBA,eAAuBA;oBAACA,aAACA;gBAADA,CAACA,AAA/CL,IAA+CA;gBAAlCA,oBAAMA,GAANA,MAAkCA,CAAAA;gBAEZA,JACvCA,CAACA,EAPaD,aAAaA,GAAbA,wBAAaA,KAAbA,wBAAaA,QAO1BA;YAE0CA,JAC/CA,CAACA,EAXaf,UAAUA,GAAVA,0BAAUA,KAAVA,0BAAUA,QAWvBA;QAEDA,IAAMA,MAAMA;YAAZuB,SAAMA,MAAMA;YAEZC,CAACA;YADUD,uBAAMA,GAAbA,eAAmBA;YACvBA,aAACA;QAADA,CAACA,AAFDvB,IAECA;QAMDA,IAAOA,iBAAiBA,CAEvBA;QAFDA,WAAOA,iBAAiBA,EAACA,CAACA;YACtByB,IAAaA,MAAMA;gBAAnBC,SAAaA,MAAMA;gBAAGC,CAACA;gBAADD,aAACA;YAADA,CAACA,AAAvBD,IAAuBA;YAAVA,wBAAMA,GAANA,MAAUA,CAAAA;QAC3BA,CAACA,EAFMzB,iBAAiBA,KAAjBA,iBAAiBA,QAEvBA;IACLA,CAACA,EAnGa,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAmG5B;IAED,IAAO,eAAe,CAMrB;IAND,WAAO,eAAe,EAAC,CAAC;QACpB4B,IAAcA,UAAUA,CAIvBA;QAJDA,WAAcA,UAAUA,EAACA,CAACA;YACtBC,IAAaA,MAAMA;gBAAnBC,SAAaA,MAAMA;gBAEnBC,CAACA;gBADUD,yBAAQA,GAAfA,eAAqBA;gBACzBA,aAACA;YAADA,CAACA,AAFDD,IAECA;YAFYA,iBAAMA,GAANA,MAEZA,CAAAA;QACLA,CAACA,EAJaD,UAAUA,GAAVA,0BAAUA,KAAVA,0BAAUA,QAIvBA;IACLA,CAACA,EANM,eAAe,KAAf,eAAe,QAMrB"} \ No newline at end of file diff --git a/tests/baselines/reference/typeResolution.sourcemap.txt b/tests/baselines/reference/typeResolution.sourcemap.txt index 0c5e2c3b0a9..08cb4a873d0 100644 --- a/tests/baselines/reference/typeResolution.sourcemap.txt +++ b/tests/baselines/reference/typeResolution.sourcemap.txt @@ -2256,39 +2256,33 @@ sourceFile:typeResolution.ts >>> } 1 >^^^^^^^^^^^^^^^^^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > { public AisIn1_2_2() { } 2 > } 1 >Emitted(113, 21) Source(79, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA.constructor) 2 >Emitted(113, 22) Source(79, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA.constructor) --- ->>> ClassA.prototype.AisIn1_2_2 = function () { +>>> ClassA.prototype.AisIn1_2_2 = function () { }; 1->^^^^^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3 > ^^^ +4 > ^^^^^^^^^^^^^^^ 1-> 2 > AisIn1_2_2 3 > +4 > public AisIn1_2_2() { } 1->Emitted(114, 21) Source(79, 42) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) 2 >Emitted(114, 48) Source(79, 52) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) 3 >Emitted(114, 51) Source(79, 35) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) ---- ->>> }; -1 >^^^^^^^^^^^^^^^^^^^^ -2 > ^ -3 > ^^^^^^^^^^^^^^-> -1 >public AisIn1_2_2() { -2 > } -1 >Emitted(115, 21) Source(79, 57) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA.AisIn1_2_2) -2 >Emitted(115, 22) Source(79, 58) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA.AisIn1_2_2) +4 >Emitted(114, 66) Source(79, 58) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) --- >>> return ClassA; -1->^^^^^^^^^^^^^^^^^^^^ +1 >^^^^^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^ -1-> +1 > 2 > } -1->Emitted(116, 21) Source(79, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) -2 >Emitted(116, 34) Source(79, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) +1 >Emitted(115, 21) Source(79, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) +2 >Emitted(115, 34) Source(79, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) --- >>> })(); 1 >^^^^^^^^^^^^^^^^ @@ -2300,10 +2294,10 @@ sourceFile:typeResolution.ts 2 > } 3 > 4 > export class ClassA { public AisIn1_2_2() { } } -1 >Emitted(117, 17) Source(79, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) -2 >Emitted(117, 18) Source(79, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) -3 >Emitted(117, 18) Source(79, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -4 >Emitted(117, 22) Source(79, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +1 >Emitted(116, 17) Source(79, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) +2 >Emitted(116, 18) Source(79, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassA) +3 >Emitted(116, 18) Source(79, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +4 >Emitted(116, 22) Source(79, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) --- >>> SubSubModule2.ClassA = ClassA; 1->^^^^^^^^^^^^^^^^ @@ -2316,11 +2310,11 @@ sourceFile:typeResolution.ts 3 > 4 > ClassA { public AisIn1_2_2() { } } 5 > -1->Emitted(118, 17) Source(79, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -2 >Emitted(118, 37) Source(79, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -3 >Emitted(118, 40) Source(79, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -4 >Emitted(118, 46) Source(79, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -5 >Emitted(118, 47) Source(79, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +1->Emitted(117, 17) Source(79, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +2 >Emitted(117, 37) Source(79, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +3 >Emitted(117, 40) Source(79, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +4 >Emitted(117, 46) Source(79, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +5 >Emitted(117, 47) Source(79, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) --- >>> var ClassB = (function () { 1 >^^^^^^^^^^^^^^^^ @@ -2331,9 +2325,9 @@ sourceFile:typeResolution.ts > 2 > export class 3 > ClassB -1 >Emitted(119, 17) Source(80, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -2 >Emitted(119, 21) Source(80, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -3 >Emitted(119, 27) Source(80, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +1 >Emitted(118, 17) Source(80, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +2 >Emitted(118, 21) Source(80, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +3 >Emitted(118, 27) Source(80, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) --- >>> function ClassB() { 1->^^^^^^^^^^^^^^^^^^^^ @@ -2342,46 +2336,40 @@ sourceFile:typeResolution.ts 1-> 2 > export class 3 > ClassB -1->Emitted(120, 21) Source(80, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) -2 >Emitted(120, 30) Source(80, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) -3 >Emitted(120, 36) Source(80, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) +1->Emitted(119, 21) Source(80, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) +2 >Emitted(119, 30) Source(80, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) +3 >Emitted(119, 36) Source(80, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) --- >>> } 1 >^^^^^^^^^^^^^^^^^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > { public BisIn1_2_2() { } 2 > } -1 >Emitted(121, 21) Source(80, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB.constructor) -2 >Emitted(121, 22) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB.constructor) +1 >Emitted(120, 21) Source(80, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB.constructor) +2 >Emitted(120, 22) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB.constructor) --- ->>> ClassB.prototype.BisIn1_2_2 = function () { +>>> ClassB.prototype.BisIn1_2_2 = function () { }; 1->^^^^^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3 > ^^^ +4 > ^^^^^^^^^^^^^^^ 1-> 2 > BisIn1_2_2 3 > -1->Emitted(122, 21) Source(80, 42) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) -2 >Emitted(122, 48) Source(80, 52) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) -3 >Emitted(122, 51) Source(80, 35) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) ---- ->>> }; -1 >^^^^^^^^^^^^^^^^^^^^ -2 > ^ -3 > ^^^^^^^^^^^^^^-> -1 >public BisIn1_2_2() { -2 > } -1 >Emitted(123, 21) Source(80, 57) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB.BisIn1_2_2) -2 >Emitted(123, 22) Source(80, 58) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB.BisIn1_2_2) +4 > public BisIn1_2_2() { } +1->Emitted(121, 21) Source(80, 42) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) +2 >Emitted(121, 48) Source(80, 52) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) +3 >Emitted(121, 51) Source(80, 35) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) +4 >Emitted(121, 66) Source(80, 58) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) --- >>> return ClassB; -1->^^^^^^^^^^^^^^^^^^^^ +1 >^^^^^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^ -1-> +1 > 2 > } -1->Emitted(124, 21) Source(80, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) -2 >Emitted(124, 34) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) +1 >Emitted(122, 21) Source(80, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) +2 >Emitted(122, 34) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) --- >>> })(); 1 >^^^^^^^^^^^^^^^^ @@ -2393,10 +2381,10 @@ sourceFile:typeResolution.ts 2 > } 3 > 4 > export class ClassB { public BisIn1_2_2() { } } -1 >Emitted(125, 17) Source(80, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) -2 >Emitted(125, 18) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) -3 >Emitted(125, 18) Source(80, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -4 >Emitted(125, 22) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +1 >Emitted(123, 17) Source(80, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) +2 >Emitted(123, 18) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassB) +3 >Emitted(123, 18) Source(80, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +4 >Emitted(123, 22) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) --- >>> SubSubModule2.ClassB = ClassB; 1->^^^^^^^^^^^^^^^^ @@ -2409,11 +2397,11 @@ sourceFile:typeResolution.ts 3 > 4 > ClassB { public BisIn1_2_2() { } } 5 > -1->Emitted(126, 17) Source(80, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -2 >Emitted(126, 37) Source(80, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -3 >Emitted(126, 40) Source(80, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -4 >Emitted(126, 46) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -5 >Emitted(126, 47) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +1->Emitted(124, 17) Source(80, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +2 >Emitted(124, 37) Source(80, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +3 >Emitted(124, 40) Source(80, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +4 >Emitted(124, 46) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +5 >Emitted(124, 47) Source(80, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) --- >>> var ClassC = (function () { 1 >^^^^^^^^^^^^^^^^ @@ -2424,9 +2412,9 @@ sourceFile:typeResolution.ts > 2 > export class 3 > ClassC -1 >Emitted(127, 17) Source(81, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -2 >Emitted(127, 21) Source(81, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -3 >Emitted(127, 27) Source(81, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +1 >Emitted(125, 17) Source(81, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +2 >Emitted(125, 21) Source(81, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +3 >Emitted(125, 27) Source(81, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) --- >>> function ClassC() { 1->^^^^^^^^^^^^^^^^^^^^ @@ -2435,46 +2423,40 @@ sourceFile:typeResolution.ts 1-> 2 > export class 3 > ClassC -1->Emitted(128, 21) Source(81, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) -2 >Emitted(128, 30) Source(81, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) -3 >Emitted(128, 36) Source(81, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) +1->Emitted(126, 21) Source(81, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) +2 >Emitted(126, 30) Source(81, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) +3 >Emitted(126, 36) Source(81, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) --- >>> } 1 >^^^^^^^^^^^^^^^^^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > { public CisIn1_2_2() { } 2 > } -1 >Emitted(129, 21) Source(81, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC.constructor) -2 >Emitted(129, 22) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC.constructor) +1 >Emitted(127, 21) Source(81, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC.constructor) +2 >Emitted(127, 22) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC.constructor) --- ->>> ClassC.prototype.CisIn1_2_2 = function () { +>>> ClassC.prototype.CisIn1_2_2 = function () { }; 1->^^^^^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^ 3 > ^^^ +4 > ^^^^^^^^^^^^^^^ 1-> 2 > CisIn1_2_2 3 > -1->Emitted(130, 21) Source(81, 42) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) -2 >Emitted(130, 48) Source(81, 52) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) -3 >Emitted(130, 51) Source(81, 35) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) ---- ->>> }; -1 >^^^^^^^^^^^^^^^^^^^^ -2 > ^ -3 > ^^^^^^^^^^^^^^-> -1 >public CisIn1_2_2() { -2 > } -1 >Emitted(131, 21) Source(81, 57) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC.CisIn1_2_2) -2 >Emitted(131, 22) Source(81, 58) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC.CisIn1_2_2) +4 > public CisIn1_2_2() { } +1->Emitted(128, 21) Source(81, 42) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) +2 >Emitted(128, 48) Source(81, 52) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) +3 >Emitted(128, 51) Source(81, 35) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) +4 >Emitted(128, 66) Source(81, 58) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) --- >>> return ClassC; -1->^^^^^^^^^^^^^^^^^^^^ +1 >^^^^^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^ -1-> +1 > 2 > } -1->Emitted(132, 21) Source(81, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) -2 >Emitted(132, 34) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) +1 >Emitted(129, 21) Source(81, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) +2 >Emitted(129, 34) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) --- >>> })(); 1 >^^^^^^^^^^^^^^^^ @@ -2486,10 +2468,10 @@ sourceFile:typeResolution.ts 2 > } 3 > 4 > export class ClassC { public CisIn1_2_2() { } } -1 >Emitted(133, 17) Source(81, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) -2 >Emitted(133, 18) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) -3 >Emitted(133, 18) Source(81, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -4 >Emitted(133, 22) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +1 >Emitted(130, 17) Source(81, 59) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) +2 >Emitted(130, 18) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2.ClassC) +3 >Emitted(130, 18) Source(81, 13) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +4 >Emitted(130, 22) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) --- >>> SubSubModule2.ClassC = ClassC; 1->^^^^^^^^^^^^^^^^ @@ -2503,11 +2485,11 @@ sourceFile:typeResolution.ts 3 > 4 > ClassC { public CisIn1_2_2() { } } 5 > -1->Emitted(134, 17) Source(81, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -2 >Emitted(134, 37) Source(81, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -3 >Emitted(134, 40) Source(81, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -4 >Emitted(134, 46) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -5 >Emitted(134, 47) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +1->Emitted(131, 17) Source(81, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +2 >Emitted(131, 37) Source(81, 32) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +3 >Emitted(131, 40) Source(81, 26) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +4 >Emitted(131, 46) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +5 >Emitted(131, 47) Source(81, 60) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) --- >>> })(SubSubModule2 = SubModule2.SubSubModule2 || (SubModule2.SubSubModule2 = {})); 1->^^^^^^^^^^^^^^^^ @@ -2540,16 +2522,16 @@ sourceFile:typeResolution.ts > export interface InterfaceY { YisIn1_2_2(); } > interface NonExportedInterfaceQ { } > } -1->Emitted(135, 17) Source(83, 48) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -2 >Emitted(135, 13) Source(84, 9) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -3 >Emitted(135, 14) Source(84, 10) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) -4 >Emitted(135, 16) Source(77, 23) + SourceIndex(0) name (TopLevelModule1.SubModule2) -5 >Emitted(135, 29) Source(77, 36) + SourceIndex(0) name (TopLevelModule1.SubModule2) -6 >Emitted(135, 32) Source(77, 23) + SourceIndex(0) name (TopLevelModule1.SubModule2) -7 >Emitted(135, 56) Source(77, 36) + SourceIndex(0) name (TopLevelModule1.SubModule2) -8 >Emitted(135, 61) Source(77, 23) + SourceIndex(0) name (TopLevelModule1.SubModule2) -9 >Emitted(135, 85) Source(77, 36) + SourceIndex(0) name (TopLevelModule1.SubModule2) -10>Emitted(135, 93) Source(84, 10) + SourceIndex(0) name (TopLevelModule1.SubModule2) +1->Emitted(132, 17) Source(83, 48) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +2 >Emitted(132, 13) Source(84, 9) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +3 >Emitted(132, 14) Source(84, 10) + SourceIndex(0) name (TopLevelModule1.SubModule2.SubSubModule2) +4 >Emitted(132, 16) Source(77, 23) + SourceIndex(0) name (TopLevelModule1.SubModule2) +5 >Emitted(132, 29) Source(77, 36) + SourceIndex(0) name (TopLevelModule1.SubModule2) +6 >Emitted(132, 32) Source(77, 23) + SourceIndex(0) name (TopLevelModule1.SubModule2) +7 >Emitted(132, 56) Source(77, 36) + SourceIndex(0) name (TopLevelModule1.SubModule2) +8 >Emitted(132, 61) Source(77, 23) + SourceIndex(0) name (TopLevelModule1.SubModule2) +9 >Emitted(132, 85) Source(77, 36) + SourceIndex(0) name (TopLevelModule1.SubModule2) +10>Emitted(132, 93) Source(84, 10) + SourceIndex(0) name (TopLevelModule1.SubModule2) --- >>> })(SubModule2 = TopLevelModule1.SubModule2 || (TopLevelModule1.SubModule2 = {})); 1 >^^^^^^^^^^^^ @@ -2586,16 +2568,16 @@ sourceFile:typeResolution.ts > > export interface InterfaceY { YisIn1_2(); } > } -1 >Emitted(136, 13) Source(86, 52) + SourceIndex(0) name (TopLevelModule1.SubModule2) -2 >Emitted(136, 9) Source(87, 5) + SourceIndex(0) name (TopLevelModule1.SubModule2) -3 >Emitted(136, 10) Source(87, 6) + SourceIndex(0) name (TopLevelModule1.SubModule2) -4 >Emitted(136, 12) Source(76, 19) + SourceIndex(0) name (TopLevelModule1) -5 >Emitted(136, 22) Source(76, 29) + SourceIndex(0) name (TopLevelModule1) -6 >Emitted(136, 25) Source(76, 19) + SourceIndex(0) name (TopLevelModule1) -7 >Emitted(136, 51) Source(76, 29) + SourceIndex(0) name (TopLevelModule1) -8 >Emitted(136, 56) Source(76, 19) + SourceIndex(0) name (TopLevelModule1) -9 >Emitted(136, 82) Source(76, 29) + SourceIndex(0) name (TopLevelModule1) -10>Emitted(136, 90) Source(87, 6) + SourceIndex(0) name (TopLevelModule1) +1 >Emitted(133, 13) Source(86, 52) + SourceIndex(0) name (TopLevelModule1.SubModule2) +2 >Emitted(133, 9) Source(87, 5) + SourceIndex(0) name (TopLevelModule1.SubModule2) +3 >Emitted(133, 10) Source(87, 6) + SourceIndex(0) name (TopLevelModule1.SubModule2) +4 >Emitted(133, 12) Source(76, 19) + SourceIndex(0) name (TopLevelModule1) +5 >Emitted(133, 22) Source(76, 29) + SourceIndex(0) name (TopLevelModule1) +6 >Emitted(133, 25) Source(76, 19) + SourceIndex(0) name (TopLevelModule1) +7 >Emitted(133, 51) Source(76, 29) + SourceIndex(0) name (TopLevelModule1) +8 >Emitted(133, 56) Source(76, 19) + SourceIndex(0) name (TopLevelModule1) +9 >Emitted(133, 82) Source(76, 29) + SourceIndex(0) name (TopLevelModule1) +10>Emitted(133, 90) Source(87, 6) + SourceIndex(0) name (TopLevelModule1) --- >>> var ClassA = (function () { 1 >^^^^^^^^ @@ -2607,9 +2589,9 @@ sourceFile:typeResolution.ts > 2 > class 3 > ClassA -1 >Emitted(137, 9) Source(89, 5) + SourceIndex(0) name (TopLevelModule1) -2 >Emitted(137, 13) Source(89, 11) + SourceIndex(0) name (TopLevelModule1) -3 >Emitted(137, 19) Source(89, 17) + SourceIndex(0) name (TopLevelModule1) +1 >Emitted(134, 9) Source(89, 5) + SourceIndex(0) name (TopLevelModule1) +2 >Emitted(134, 13) Source(89, 11) + SourceIndex(0) name (TopLevelModule1) +3 >Emitted(134, 19) Source(89, 17) + SourceIndex(0) name (TopLevelModule1) --- >>> function ClassA() { 1->^^^^^^^^^^^^ @@ -2618,49 +2600,43 @@ sourceFile:typeResolution.ts 1-> 2 > class 3 > ClassA -1->Emitted(138, 13) Source(89, 5) + SourceIndex(0) name (TopLevelModule1.ClassA) -2 >Emitted(138, 22) Source(89, 11) + SourceIndex(0) name (TopLevelModule1.ClassA) -3 >Emitted(138, 28) Source(89, 17) + SourceIndex(0) name (TopLevelModule1.ClassA) +1->Emitted(135, 13) Source(89, 5) + SourceIndex(0) name (TopLevelModule1.ClassA) +2 >Emitted(135, 22) Source(89, 11) + SourceIndex(0) name (TopLevelModule1.ClassA) +3 >Emitted(135, 28) Source(89, 17) + SourceIndex(0) name (TopLevelModule1.ClassA) --- >>> } 1 >^^^^^^^^^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > { > public AisIn1() { } > 2 > } -1 >Emitted(139, 13) Source(91, 5) + SourceIndex(0) name (TopLevelModule1.ClassA.constructor) -2 >Emitted(139, 14) Source(91, 6) + SourceIndex(0) name (TopLevelModule1.ClassA.constructor) +1 >Emitted(136, 13) Source(91, 5) + SourceIndex(0) name (TopLevelModule1.ClassA.constructor) +2 >Emitted(136, 14) Source(91, 6) + SourceIndex(0) name (TopLevelModule1.ClassA.constructor) --- ->>> ClassA.prototype.AisIn1 = function () { +>>> ClassA.prototype.AisIn1 = function () { }; 1->^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^^^ 3 > ^^^ +4 > ^^^^^^^^^^^^^^^ 1-> 2 > AisIn1 3 > -1->Emitted(140, 13) Source(90, 16) + SourceIndex(0) name (TopLevelModule1.ClassA) -2 >Emitted(140, 36) Source(90, 22) + SourceIndex(0) name (TopLevelModule1.ClassA) -3 >Emitted(140, 39) Source(90, 9) + SourceIndex(0) name (TopLevelModule1.ClassA) ---- ->>> }; -1 >^^^^^^^^^^^^ -2 > ^ -3 > ^^^^^^^^^^^^^^-> -1 >public AisIn1() { -2 > } -1 >Emitted(141, 13) Source(90, 27) + SourceIndex(0) name (TopLevelModule1.ClassA.AisIn1) -2 >Emitted(141, 14) Source(90, 28) + SourceIndex(0) name (TopLevelModule1.ClassA.AisIn1) +4 > public AisIn1() { } +1->Emitted(137, 13) Source(90, 16) + SourceIndex(0) name (TopLevelModule1.ClassA) +2 >Emitted(137, 36) Source(90, 22) + SourceIndex(0) name (TopLevelModule1.ClassA) +3 >Emitted(137, 39) Source(90, 9) + SourceIndex(0) name (TopLevelModule1.ClassA) +4 >Emitted(137, 54) Source(90, 28) + SourceIndex(0) name (TopLevelModule1.ClassA) --- >>> return ClassA; -1->^^^^^^^^^^^^ +1 >^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^ -1-> +1 > > 2 > } -1->Emitted(142, 13) Source(91, 5) + SourceIndex(0) name (TopLevelModule1.ClassA) -2 >Emitted(142, 26) Source(91, 6) + SourceIndex(0) name (TopLevelModule1.ClassA) +1 >Emitted(138, 13) Source(91, 5) + SourceIndex(0) name (TopLevelModule1.ClassA) +2 >Emitted(138, 26) Source(91, 6) + SourceIndex(0) name (TopLevelModule1.ClassA) --- >>> })(); 1 >^^^^^^^^ @@ -2674,10 +2650,10 @@ sourceFile:typeResolution.ts 4 > class ClassA { > public AisIn1() { } > } -1 >Emitted(143, 9) Source(91, 5) + SourceIndex(0) name (TopLevelModule1.ClassA) -2 >Emitted(143, 10) Source(91, 6) + SourceIndex(0) name (TopLevelModule1.ClassA) -3 >Emitted(143, 10) Source(89, 5) + SourceIndex(0) name (TopLevelModule1) -4 >Emitted(143, 14) Source(91, 6) + SourceIndex(0) name (TopLevelModule1) +1 >Emitted(139, 9) Source(91, 5) + SourceIndex(0) name (TopLevelModule1.ClassA) +2 >Emitted(139, 10) Source(91, 6) + SourceIndex(0) name (TopLevelModule1.ClassA) +3 >Emitted(139, 10) Source(89, 5) + SourceIndex(0) name (TopLevelModule1) +4 >Emitted(139, 14) Source(91, 6) + SourceIndex(0) name (TopLevelModule1) --- >>> var NotExportedModule; 1->^^^^^^^^ @@ -2697,10 +2673,10 @@ sourceFile:typeResolution.ts 4 > { > export class ClassA { } > } -1->Emitted(144, 9) Source(97, 5) + SourceIndex(0) name (TopLevelModule1) -2 >Emitted(144, 13) Source(97, 12) + SourceIndex(0) name (TopLevelModule1) -3 >Emitted(144, 30) Source(97, 29) + SourceIndex(0) name (TopLevelModule1) -4 >Emitted(144, 31) Source(99, 6) + SourceIndex(0) name (TopLevelModule1) +1->Emitted(140, 9) Source(97, 5) + SourceIndex(0) name (TopLevelModule1) +2 >Emitted(140, 13) Source(97, 12) + SourceIndex(0) name (TopLevelModule1) +3 >Emitted(140, 30) Source(97, 29) + SourceIndex(0) name (TopLevelModule1) +4 >Emitted(140, 31) Source(99, 6) + SourceIndex(0) name (TopLevelModule1) --- >>> (function (NotExportedModule) { 1->^^^^^^^^ @@ -2714,11 +2690,11 @@ sourceFile:typeResolution.ts 3 > NotExportedModule 4 > 5 > { -1->Emitted(145, 9) Source(97, 5) + SourceIndex(0) name (TopLevelModule1) -2 >Emitted(145, 20) Source(97, 12) + SourceIndex(0) name (TopLevelModule1) -3 >Emitted(145, 37) Source(97, 29) + SourceIndex(0) name (TopLevelModule1) -4 >Emitted(145, 39) Source(97, 30) + SourceIndex(0) name (TopLevelModule1) -5 >Emitted(145, 40) Source(97, 31) + SourceIndex(0) name (TopLevelModule1) +1->Emitted(141, 9) Source(97, 5) + SourceIndex(0) name (TopLevelModule1) +2 >Emitted(141, 20) Source(97, 12) + SourceIndex(0) name (TopLevelModule1) +3 >Emitted(141, 37) Source(97, 29) + SourceIndex(0) name (TopLevelModule1) +4 >Emitted(141, 39) Source(97, 30) + SourceIndex(0) name (TopLevelModule1) +5 >Emitted(141, 40) Source(97, 31) + SourceIndex(0) name (TopLevelModule1) --- >>> var ClassA = (function () { 1->^^^^^^^^^^^^ @@ -2729,9 +2705,9 @@ sourceFile:typeResolution.ts > 2 > export class 3 > ClassA -1->Emitted(146, 13) Source(98, 9) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) -2 >Emitted(146, 17) Source(98, 22) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) -3 >Emitted(146, 23) Source(98, 28) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +1->Emitted(142, 13) Source(98, 9) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +2 >Emitted(142, 17) Source(98, 22) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +3 >Emitted(142, 23) Source(98, 28) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) --- >>> function ClassA() { 1->^^^^^^^^^^^^^^^^ @@ -2740,9 +2716,9 @@ sourceFile:typeResolution.ts 1-> 2 > export class 3 > ClassA -1->Emitted(147, 17) Source(98, 9) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) -2 >Emitted(147, 26) Source(98, 22) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) -3 >Emitted(147, 32) Source(98, 28) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) +1->Emitted(143, 17) Source(98, 9) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) +2 >Emitted(143, 26) Source(98, 22) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) +3 >Emitted(143, 32) Source(98, 28) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) --- >>> } 1 >^^^^^^^^^^^^^^^^ @@ -2750,16 +2726,16 @@ sourceFile:typeResolution.ts 3 > ^^^^^^^^^^^^^^-> 1 > { 2 > } -1 >Emitted(148, 17) Source(98, 31) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA.constructor) -2 >Emitted(148, 18) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA.constructor) +1 >Emitted(144, 17) Source(98, 31) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA.constructor) +2 >Emitted(144, 18) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA.constructor) --- >>> return ClassA; 1->^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^ 1-> 2 > } -1->Emitted(149, 17) Source(98, 31) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) -2 >Emitted(149, 30) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) +1->Emitted(145, 17) Source(98, 31) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) +2 >Emitted(145, 30) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) --- >>> })(); 1 >^^^^^^^^^^^^ @@ -2771,10 +2747,10 @@ sourceFile:typeResolution.ts 2 > } 3 > 4 > export class ClassA { } -1 >Emitted(150, 13) Source(98, 31) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) -2 >Emitted(150, 14) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) -3 >Emitted(150, 14) Source(98, 9) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) -4 >Emitted(150, 18) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +1 >Emitted(146, 13) Source(98, 31) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) +2 >Emitted(146, 14) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule.ClassA) +3 >Emitted(146, 14) Source(98, 9) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +4 >Emitted(146, 18) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) --- >>> NotExportedModule.ClassA = ClassA; 1->^^^^^^^^^^^^ @@ -2788,11 +2764,11 @@ sourceFile:typeResolution.ts 3 > 4 > ClassA { } 5 > -1->Emitted(151, 13) Source(98, 22) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) -2 >Emitted(151, 37) Source(98, 28) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) -3 >Emitted(151, 40) Source(98, 22) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) -4 >Emitted(151, 46) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) -5 >Emitted(151, 47) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +1->Emitted(147, 13) Source(98, 22) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +2 >Emitted(147, 37) Source(98, 28) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +3 >Emitted(147, 40) Source(98, 22) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +4 >Emitted(147, 46) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +5 >Emitted(147, 47) Source(98, 32) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) --- >>> })(NotExportedModule || (NotExportedModule = {})); 1->^^^^^^^^ @@ -2813,13 +2789,13 @@ sourceFile:typeResolution.ts 7 > { > export class ClassA { } > } -1->Emitted(152, 9) Source(99, 5) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) -2 >Emitted(152, 10) Source(99, 6) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) -3 >Emitted(152, 12) Source(97, 12) + SourceIndex(0) name (TopLevelModule1) -4 >Emitted(152, 29) Source(97, 29) + SourceIndex(0) name (TopLevelModule1) -5 >Emitted(152, 34) Source(97, 12) + SourceIndex(0) name (TopLevelModule1) -6 >Emitted(152, 51) Source(97, 29) + SourceIndex(0) name (TopLevelModule1) -7 >Emitted(152, 59) Source(99, 6) + SourceIndex(0) name (TopLevelModule1) +1->Emitted(148, 9) Source(99, 5) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +2 >Emitted(148, 10) Source(99, 6) + SourceIndex(0) name (TopLevelModule1.NotExportedModule) +3 >Emitted(148, 12) Source(97, 12) + SourceIndex(0) name (TopLevelModule1) +4 >Emitted(148, 29) Source(97, 29) + SourceIndex(0) name (TopLevelModule1) +5 >Emitted(148, 34) Source(97, 12) + SourceIndex(0) name (TopLevelModule1) +6 >Emitted(148, 51) Source(97, 29) + SourceIndex(0) name (TopLevelModule1) +7 >Emitted(148, 59) Source(99, 6) + SourceIndex(0) name (TopLevelModule1) --- >>> })(TopLevelModule1 = exports.TopLevelModule1 || (exports.TopLevelModule1 = {})); 1->^^^^ @@ -2940,15 +2916,15 @@ sourceFile:typeResolution.ts > export class ClassA { } > } > } -1->Emitted(153, 5) Source(100, 1) + SourceIndex(0) name (TopLevelModule1) -2 >Emitted(153, 6) Source(100, 2) + SourceIndex(0) name (TopLevelModule1) -3 >Emitted(153, 8) Source(1, 15) + SourceIndex(0) -4 >Emitted(153, 23) Source(1, 30) + SourceIndex(0) -5 >Emitted(153, 26) Source(1, 15) + SourceIndex(0) -6 >Emitted(153, 49) Source(1, 30) + SourceIndex(0) -7 >Emitted(153, 54) Source(1, 15) + SourceIndex(0) -8 >Emitted(153, 77) Source(1, 30) + SourceIndex(0) -9 >Emitted(153, 85) Source(100, 2) + SourceIndex(0) +1->Emitted(149, 5) Source(100, 1) + SourceIndex(0) name (TopLevelModule1) +2 >Emitted(149, 6) Source(100, 2) + SourceIndex(0) name (TopLevelModule1) +3 >Emitted(149, 8) Source(1, 15) + SourceIndex(0) +4 >Emitted(149, 23) Source(1, 30) + SourceIndex(0) +5 >Emitted(149, 26) Source(1, 15) + SourceIndex(0) +6 >Emitted(149, 49) Source(1, 30) + SourceIndex(0) +7 >Emitted(149, 54) Source(1, 15) + SourceIndex(0) +8 >Emitted(149, 77) Source(1, 30) + SourceIndex(0) +9 >Emitted(149, 85) Source(100, 2) + SourceIndex(0) --- >>> var TopLevelModule2; 1 >^^^^ @@ -2968,10 +2944,10 @@ sourceFile:typeResolution.ts > } > } > } -1 >Emitted(154, 5) Source(102, 1) + SourceIndex(0) -2 >Emitted(154, 9) Source(102, 8) + SourceIndex(0) -3 >Emitted(154, 24) Source(102, 23) + SourceIndex(0) -4 >Emitted(154, 25) Source(108, 2) + SourceIndex(0) +1 >Emitted(150, 5) Source(102, 1) + SourceIndex(0) +2 >Emitted(150, 9) Source(102, 8) + SourceIndex(0) +3 >Emitted(150, 24) Source(102, 23) + SourceIndex(0) +4 >Emitted(150, 25) Source(108, 2) + SourceIndex(0) --- >>> (function (TopLevelModule2) { 1->^^^^ @@ -2984,11 +2960,11 @@ sourceFile:typeResolution.ts 3 > TopLevelModule2 4 > 5 > { -1->Emitted(155, 5) Source(102, 1) + SourceIndex(0) -2 >Emitted(155, 16) Source(102, 8) + SourceIndex(0) -3 >Emitted(155, 31) Source(102, 23) + SourceIndex(0) -4 >Emitted(155, 33) Source(102, 24) + SourceIndex(0) -5 >Emitted(155, 34) Source(102, 25) + SourceIndex(0) +1->Emitted(151, 5) Source(102, 1) + SourceIndex(0) +2 >Emitted(151, 16) Source(102, 8) + SourceIndex(0) +3 >Emitted(151, 31) Source(102, 23) + SourceIndex(0) +4 >Emitted(151, 33) Source(102, 24) + SourceIndex(0) +5 >Emitted(151, 34) Source(102, 25) + SourceIndex(0) --- >>> var SubModule3; 1 >^^^^^^^^ @@ -3005,10 +2981,10 @@ sourceFile:typeResolution.ts > public AisIn2_3() { } > } > } -1 >Emitted(156, 9) Source(103, 5) + SourceIndex(0) name (TopLevelModule2) -2 >Emitted(156, 13) Source(103, 19) + SourceIndex(0) name (TopLevelModule2) -3 >Emitted(156, 23) Source(103, 29) + SourceIndex(0) name (TopLevelModule2) -4 >Emitted(156, 24) Source(107, 6) + SourceIndex(0) name (TopLevelModule2) +1 >Emitted(152, 9) Source(103, 5) + SourceIndex(0) name (TopLevelModule2) +2 >Emitted(152, 13) Source(103, 19) + SourceIndex(0) name (TopLevelModule2) +3 >Emitted(152, 23) Source(103, 29) + SourceIndex(0) name (TopLevelModule2) +4 >Emitted(152, 24) Source(107, 6) + SourceIndex(0) name (TopLevelModule2) --- >>> (function (SubModule3) { 1->^^^^^^^^ @@ -3022,11 +2998,11 @@ sourceFile:typeResolution.ts 3 > SubModule3 4 > 5 > { -1->Emitted(157, 9) Source(103, 5) + SourceIndex(0) name (TopLevelModule2) -2 >Emitted(157, 20) Source(103, 19) + SourceIndex(0) name (TopLevelModule2) -3 >Emitted(157, 30) Source(103, 29) + SourceIndex(0) name (TopLevelModule2) -4 >Emitted(157, 32) Source(103, 30) + SourceIndex(0) name (TopLevelModule2) -5 >Emitted(157, 33) Source(103, 31) + SourceIndex(0) name (TopLevelModule2) +1->Emitted(153, 9) Source(103, 5) + SourceIndex(0) name (TopLevelModule2) +2 >Emitted(153, 20) Source(103, 19) + SourceIndex(0) name (TopLevelModule2) +3 >Emitted(153, 30) Source(103, 29) + SourceIndex(0) name (TopLevelModule2) +4 >Emitted(153, 32) Source(103, 30) + SourceIndex(0) name (TopLevelModule2) +5 >Emitted(153, 33) Source(103, 31) + SourceIndex(0) name (TopLevelModule2) --- >>> var ClassA = (function () { 1->^^^^^^^^^^^^ @@ -3037,9 +3013,9 @@ sourceFile:typeResolution.ts > 2 > export class 3 > ClassA -1->Emitted(158, 13) Source(104, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3) -2 >Emitted(158, 17) Source(104, 22) + SourceIndex(0) name (TopLevelModule2.SubModule3) -3 >Emitted(158, 23) Source(104, 28) + SourceIndex(0) name (TopLevelModule2.SubModule3) +1->Emitted(154, 13) Source(104, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3) +2 >Emitted(154, 17) Source(104, 22) + SourceIndex(0) name (TopLevelModule2.SubModule3) +3 >Emitted(154, 23) Source(104, 28) + SourceIndex(0) name (TopLevelModule2.SubModule3) --- >>> function ClassA() { 1->^^^^^^^^^^^^^^^^ @@ -3048,49 +3024,43 @@ sourceFile:typeResolution.ts 1-> 2 > export class 3 > ClassA -1->Emitted(159, 17) Source(104, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) -2 >Emitted(159, 26) Source(104, 22) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) -3 >Emitted(159, 32) Source(104, 28) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) +1->Emitted(155, 17) Source(104, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) +2 >Emitted(155, 26) Source(104, 22) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) +3 >Emitted(155, 32) Source(104, 28) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) --- >>> } 1 >^^^^^^^^^^^^^^^^ 2 > ^ -3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> +3 > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-> 1 > { > public AisIn2_3() { } > 2 > } -1 >Emitted(160, 17) Source(106, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA.constructor) -2 >Emitted(160, 18) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA.constructor) +1 >Emitted(156, 17) Source(106, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA.constructor) +2 >Emitted(156, 18) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA.constructor) --- ->>> ClassA.prototype.AisIn2_3 = function () { +>>> ClassA.prototype.AisIn2_3 = function () { }; 1->^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^^^^^^^^^^^^^ 3 > ^^^ +4 > ^^^^^^^^^^^^^^^ 1-> 2 > AisIn2_3 3 > -1->Emitted(161, 17) Source(105, 20) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) -2 >Emitted(161, 42) Source(105, 28) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) -3 >Emitted(161, 45) Source(105, 13) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) ---- ->>> }; -1 >^^^^^^^^^^^^^^^^ -2 > ^ -3 > ^^^^^^^^^^^^^^-> -1 >public AisIn2_3() { -2 > } -1 >Emitted(162, 17) Source(105, 33) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA.AisIn2_3) -2 >Emitted(162, 18) Source(105, 34) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA.AisIn2_3) +4 > public AisIn2_3() { } +1->Emitted(157, 17) Source(105, 20) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) +2 >Emitted(157, 42) Source(105, 28) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) +3 >Emitted(157, 45) Source(105, 13) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) +4 >Emitted(157, 60) Source(105, 34) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) --- >>> return ClassA; -1->^^^^^^^^^^^^^^^^ +1 >^^^^^^^^^^^^^^^^ 2 > ^^^^^^^^^^^^^ -1-> +1 > > 2 > } -1->Emitted(163, 17) Source(106, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) -2 >Emitted(163, 30) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) +1 >Emitted(158, 17) Source(106, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) +2 >Emitted(158, 30) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) --- >>> })(); 1 >^^^^^^^^^^^^ @@ -3104,10 +3074,10 @@ sourceFile:typeResolution.ts 4 > export class ClassA { > public AisIn2_3() { } > } -1 >Emitted(164, 13) Source(106, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) -2 >Emitted(164, 14) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) -3 >Emitted(164, 14) Source(104, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3) -4 >Emitted(164, 18) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3) +1 >Emitted(159, 13) Source(106, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) +2 >Emitted(159, 14) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3.ClassA) +3 >Emitted(159, 14) Source(104, 9) + SourceIndex(0) name (TopLevelModule2.SubModule3) +4 >Emitted(159, 18) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3) --- >>> SubModule3.ClassA = ClassA; 1->^^^^^^^^^^^^ @@ -3123,11 +3093,11 @@ sourceFile:typeResolution.ts > public AisIn2_3() { } > } 5 > -1->Emitted(165, 13) Source(104, 22) + SourceIndex(0) name (TopLevelModule2.SubModule3) -2 >Emitted(165, 30) Source(104, 28) + SourceIndex(0) name (TopLevelModule2.SubModule3) -3 >Emitted(165, 33) Source(104, 22) + SourceIndex(0) name (TopLevelModule2.SubModule3) -4 >Emitted(165, 39) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3) -5 >Emitted(165, 40) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3) +1->Emitted(160, 13) Source(104, 22) + SourceIndex(0) name (TopLevelModule2.SubModule3) +2 >Emitted(160, 30) Source(104, 28) + SourceIndex(0) name (TopLevelModule2.SubModule3) +3 >Emitted(160, 33) Source(104, 22) + SourceIndex(0) name (TopLevelModule2.SubModule3) +4 >Emitted(160, 39) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3) +5 >Emitted(160, 40) Source(106, 10) + SourceIndex(0) name (TopLevelModule2.SubModule3) --- >>> })(SubModule3 = TopLevelModule2.SubModule3 || (TopLevelModule2.SubModule3 = {})); 1->^^^^^^^^ @@ -3153,15 +3123,15 @@ sourceFile:typeResolution.ts > public AisIn2_3() { } > } > } -1->Emitted(166, 9) Source(107, 5) + SourceIndex(0) name (TopLevelModule2.SubModule3) -2 >Emitted(166, 10) Source(107, 6) + SourceIndex(0) name (TopLevelModule2.SubModule3) -3 >Emitted(166, 12) Source(103, 19) + SourceIndex(0) name (TopLevelModule2) -4 >Emitted(166, 22) Source(103, 29) + SourceIndex(0) name (TopLevelModule2) -5 >Emitted(166, 25) Source(103, 19) + SourceIndex(0) name (TopLevelModule2) -6 >Emitted(166, 51) Source(103, 29) + SourceIndex(0) name (TopLevelModule2) -7 >Emitted(166, 56) Source(103, 19) + SourceIndex(0) name (TopLevelModule2) -8 >Emitted(166, 82) Source(103, 29) + SourceIndex(0) name (TopLevelModule2) -9 >Emitted(166, 90) Source(107, 6) + SourceIndex(0) name (TopLevelModule2) +1->Emitted(161, 9) Source(107, 5) + SourceIndex(0) name (TopLevelModule2.SubModule3) +2 >Emitted(161, 10) Source(107, 6) + SourceIndex(0) name (TopLevelModule2.SubModule3) +3 >Emitted(161, 12) Source(103, 19) + SourceIndex(0) name (TopLevelModule2) +4 >Emitted(161, 22) Source(103, 29) + SourceIndex(0) name (TopLevelModule2) +5 >Emitted(161, 25) Source(103, 19) + SourceIndex(0) name (TopLevelModule2) +6 >Emitted(161, 51) Source(103, 29) + SourceIndex(0) name (TopLevelModule2) +7 >Emitted(161, 56) Source(103, 19) + SourceIndex(0) name (TopLevelModule2) +8 >Emitted(161, 82) Source(103, 29) + SourceIndex(0) name (TopLevelModule2) +9 >Emitted(161, 90) Source(107, 6) + SourceIndex(0) name (TopLevelModule2) --- >>> })(TopLevelModule2 || (TopLevelModule2 = {})); 1 >^^^^ @@ -3185,13 +3155,13 @@ sourceFile:typeResolution.ts > } > } > } -1 >Emitted(167, 5) Source(108, 1) + SourceIndex(0) name (TopLevelModule2) -2 >Emitted(167, 6) Source(108, 2) + SourceIndex(0) name (TopLevelModule2) -3 >Emitted(167, 8) Source(102, 8) + SourceIndex(0) -4 >Emitted(167, 23) Source(102, 23) + SourceIndex(0) -5 >Emitted(167, 28) Source(102, 8) + SourceIndex(0) -6 >Emitted(167, 43) Source(102, 23) + SourceIndex(0) -7 >Emitted(167, 51) Source(108, 2) + SourceIndex(0) +1 >Emitted(162, 5) Source(108, 1) + SourceIndex(0) name (TopLevelModule2) +2 >Emitted(162, 6) Source(108, 2) + SourceIndex(0) name (TopLevelModule2) +3 >Emitted(162, 8) Source(102, 8) + SourceIndex(0) +4 >Emitted(162, 23) Source(102, 23) + SourceIndex(0) +5 >Emitted(162, 28) Source(102, 8) + SourceIndex(0) +6 >Emitted(162, 43) Source(102, 23) + SourceIndex(0) +7 >Emitted(162, 51) Source(108, 2) + SourceIndex(0) --- >>>}); >>>//# sourceMappingURL=typeResolution.js.map \ No newline at end of file diff --git a/tests/baselines/reference/typedGenericPrototypeMember.js b/tests/baselines/reference/typedGenericPrototypeMember.js index 866bf500ded..e5ba2e0e75f 100644 --- a/tests/baselines/reference/typedGenericPrototypeMember.js +++ b/tests/baselines/reference/typedGenericPrototypeMember.js @@ -10,8 +10,7 @@ List.prototype.add("abc"); // Valid because T is instantiated to any var List = (function () { function List() { } - List.prototype.add = function (item) { - }; + List.prototype.add = function (item) { }; return List; })(); List.prototype.add("abc"); // Valid because T is instantiated to any diff --git a/tests/baselines/reference/typeofANonExportedType.js b/tests/baselines/reference/typeofANonExportedType.js index a241eafeaa2..bb41ddfab7a 100644 --- a/tests/baselines/reference/typeofANonExportedType.js +++ b/tests/baselines/reference/typeofANonExportedType.js @@ -91,8 +91,7 @@ var E; exports.r10; exports.r11; exports.r12; -function foo() { -} +function foo() { } var foo; (function (foo) { foo.y = 1; diff --git a/tests/baselines/reference/typeofAnExportedType.js b/tests/baselines/reference/typeofAnExportedType.js index 77407f2628c..af6c405a3cf 100644 --- a/tests/baselines/reference/typeofAnExportedType.js +++ b/tests/baselines/reference/typeofAnExportedType.js @@ -93,8 +93,7 @@ var E = exports.E; exports.r10; exports.r11; exports.r12; -function foo() { -} +function foo() { } exports.foo = foo; var foo; (function (foo) { diff --git a/tests/baselines/reference/typeofClass2.js b/tests/baselines/reference/typeofClass2.js index cbad0068372..1cef22bf2eb 100644 --- a/tests/baselines/reference/typeofClass2.js +++ b/tests/baselines/reference/typeofClass2.js @@ -31,10 +31,8 @@ var __extends = this.__extends || function (d, b) { var C = (function () { function C(x) { } - C.foo = function (x) { - }; - C.bar = function (x) { - }; + C.foo = function (x) { }; + C.bar = function (x) { }; return C; })(); var D = (function (_super) { @@ -42,10 +40,8 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } - D.baz = function (x) { - }; - D.prototype.foo = function () { - }; + D.baz = function (x) { }; + D.prototype.foo = function () { }; return D; })(C); var d; diff --git a/tests/baselines/reference/typeofOperatorWithAnyOtherType.js b/tests/baselines/reference/typeofOperatorWithAnyOtherType.js index a41ab42c9f5..a497519f249 100644 --- a/tests/baselines/reference/typeofOperatorWithAnyOtherType.js +++ b/tests/baselines/reference/typeofOperatorWithAnyOtherType.js @@ -80,8 +80,7 @@ var ANY; var ANY1; var ANY2 = ["", ""]; var obj; -var obj1 = { x: "a", y: function () { -} }; +var obj1 = { x: "a", y: function () { } }; function foo() { var a; return a; diff --git a/tests/baselines/reference/typesWithDuplicateTypeParameters.js b/tests/baselines/reference/typesWithDuplicateTypeParameters.js index f81f59d5307..cc80d4d57b4 100644 --- a/tests/baselines/reference/typesWithDuplicateTypeParameters.js +++ b/tests/baselines/reference/typesWithDuplicateTypeParameters.js @@ -19,7 +19,5 @@ var C2 = (function () { } return C2; })(); -function f() { -} -function f2() { -} +function f() { } +function f2() { } diff --git a/tests/baselines/reference/undeclaredMethod.js b/tests/baselines/reference/undeclaredMethod.js index b2795938632..2cef06cc593 100644 --- a/tests/baselines/reference/undeclaredMethod.js +++ b/tests/baselines/reference/undeclaredMethod.js @@ -19,8 +19,7 @@ var M; var C = (function () { function C() { } - C.prototype.salt = function () { - }; + C.prototype.salt = function () { }; return C; })(); M.C = C; diff --git a/tests/baselines/reference/undeclaredModuleError.js b/tests/baselines/reference/undeclaredModuleError.js index e7e9b70ee7b..4b93db57682 100644 --- a/tests/baselines/reference/undeclaredModuleError.js +++ b/tests/baselines/reference/undeclaredModuleError.js @@ -17,14 +17,8 @@ function instrumentFile(covFileDir: string, covFileName: string, originalFilePat //// [undeclaredModuleError.js] define(["require", "exports", 'fs'], function (require, exports, fs) { - function readdir(path, accept, callback) { - } - function join() { - var paths = []; - for (var _i = 0; _i < arguments.length; _i++) { - paths[_i - 0] = arguments[_i]; - } - } + function readdir(path, accept, callback) { } + function join() { } function instrumentFile(covFileDir, covFileName, originalFilePath) { fs.readFile(originalFilePath, function () { readdir(covFileDir, function () { diff --git a/tests/baselines/reference/undefinedIsSubtypeOfEverything.js b/tests/baselines/reference/undefinedIsSubtypeOfEverything.js index df87e7b0ad6..b1ef3e19edd 100644 --- a/tests/baselines/reference/undefinedIsSubtypeOfEverything.js +++ b/tests/baselines/reference/undefinedIsSubtypeOfEverything.js @@ -250,8 +250,7 @@ var D11 = (function (_super) { } return D11; })(Base); -function f() { -} +function f() { } var f; (function (f) { f.bar = 1; diff --git a/tests/baselines/reference/underscoreTest1.js b/tests/baselines/reference/underscoreTest1.js index 290e7aa6c88..b9bfe51533c 100644 --- a/tests/baselines/reference/underscoreTest1.js +++ b/tests/baselines/reference/underscoreTest1.js @@ -983,12 +983,7 @@ $('#underscore_button').bind('click', buttonView.onClick); var fibonacci = _.memoize(function (n) { return n < 2 ? n : fibonacci(n - 1) + fibonacci(n - 2); }); -var log = _.bind(function (message) { - var rest = []; - for (var _i = 1; _i < arguments.length; _i++) { - rest[_i - 1] = arguments[_i]; - } -}, Date); +var log = _.bind(function (message) { }, Date); _.delay(log, 1000, 'logged later'); _.defer(function () { alert('deferred'); diff --git a/tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.js b/tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.js index 0c9ffeb5653..d30b78ca2c3 100644 --- a/tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.js +++ b/tests/baselines/reference/unionSubtypeIfEveryConstituentTypeIsSubtype.js @@ -163,8 +163,7 @@ var E2; (function (E2) { E2[E2["A"] = 0] = "A"; })(E2 || (E2 = {})); -function f() { -} +function f() { } var f; (function (f) { f.bar = 1; diff --git a/tests/baselines/reference/unionTypeEquivalence.js b/tests/baselines/reference/unionTypeEquivalence.js index f9fdf2e58d7..8343b8e5208 100644 --- a/tests/baselines/reference/unionTypeEquivalence.js +++ b/tests/baselines/reference/unionTypeEquivalence.js @@ -37,8 +37,7 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } - D.prototype.foo = function () { - }; + D.prototype.foo = function () { }; return D; })(C); var x; diff --git a/tests/baselines/reference/unionTypeFromArrayLiteral.js b/tests/baselines/reference/unionTypeFromArrayLiteral.js index e0410a65229..0aa549f5490 100644 --- a/tests/baselines/reference/unionTypeFromArrayLiteral.js +++ b/tests/baselines/reference/unionTypeFromArrayLiteral.js @@ -43,15 +43,13 @@ var arr5Tuple = ["hello", true, false, " hello", true, 10, "any"]; // Tuple var C = (function () { function C() { } - C.prototype.foo = function () { - }; + C.prototype.foo = function () { }; return C; })(); var D = (function () { function D() { } - D.prototype.foo2 = function () { - }; + D.prototype.foo2 = function () { }; return D; })(); var E = (function (_super) { @@ -59,8 +57,7 @@ var E = (function (_super) { function E() { _super.apply(this, arguments); } - E.prototype.foo3 = function () { - }; + E.prototype.foo3 = function () { }; return E; })(C); var F = (function (_super) { @@ -68,8 +65,7 @@ var F = (function (_super) { function F() { _super.apply(this, arguments); } - F.prototype.foo4 = function () { - }; + F.prototype.foo4 = function () { }; return F; })(C); var c, d, e, f; diff --git a/tests/baselines/reference/unionTypesAssignability.js b/tests/baselines/reference/unionTypesAssignability.js index a67f23bb09f..a94ea07dce2 100644 --- a/tests/baselines/reference/unionTypesAssignability.js +++ b/tests/baselines/reference/unionTypesAssignability.js @@ -90,8 +90,7 @@ var D = (function (_super) { function D() { _super.apply(this, arguments); } - D.prototype.foo1 = function () { - }; + D.prototype.foo1 = function () { }; return D; })(C); var E = (function (_super) { @@ -99,8 +98,7 @@ var E = (function (_super) { function E() { _super.apply(this, arguments); } - E.prototype.foo2 = function () { - }; + E.prototype.foo2 = function () { }; return E; })(C); var unionDE; diff --git a/tests/baselines/reference/unknownSymbols1.js b/tests/baselines/reference/unknownSymbols1.js index e4f38971461..cbcdd2ea27f 100644 --- a/tests/baselines/reference/unknownSymbols1.js +++ b/tests/baselines/reference/unknownSymbols1.js @@ -41,8 +41,7 @@ var __extends = this.__extends || function (d, b) { }; var x = asdf; var y; -function foo(x, y) { -} +function foo(x, y) { } function foo2() { return asdf; } diff --git a/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.js b/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.js index 3bdce742fc3..9ff4a5c469a 100644 --- a/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.js +++ b/tests/baselines/reference/untypedFunctionCallsWithTypeParameters1.js @@ -64,8 +64,7 @@ var C = (function () { this.prototype = null; this.length = 1; this.arguments = null; - this.caller = function () { - }; + this.caller = function () { }; } return C; })(); diff --git a/tests/baselines/reference/validMultipleVariableDeclarations.js b/tests/baselines/reference/validMultipleVariableDeclarations.js index 097f9ae50c6..5c65d388711 100644 --- a/tests/baselines/reference/validMultipleVariableDeclarations.js +++ b/tests/baselines/reference/validMultipleVariableDeclarations.js @@ -45,8 +45,7 @@ var x; var x = 2; if (true) { var x = 3; - for (var x = 0;;) { - } + for (var x = 0;;) { } } var x = undefined; // new declaration space, making redeclaring x as a string valid diff --git a/tests/baselines/reference/varAndFunctionShareName.js b/tests/baselines/reference/varAndFunctionShareName.js index a63f038b927..cdc661dafb5 100644 --- a/tests/baselines/reference/varAndFunctionShareName.js +++ b/tests/baselines/reference/varAndFunctionShareName.js @@ -4,5 +4,4 @@ function myFn(): any { } //// [varAndFunctionShareName.js] var myFn; -function myFn() { -} +function myFn() { } diff --git a/tests/baselines/reference/varArgWithNoParamName.js b/tests/baselines/reference/varArgWithNoParamName.js index 05a9695770a..b61400ff739 100644 --- a/tests/baselines/reference/varArgWithNoParamName.js +++ b/tests/baselines/reference/varArgWithNoParamName.js @@ -2,9 +2,4 @@ function t1(...) {} //// [varArgWithNoParamName.js] -function t1() { - var = []; - for (var _i = 0; _i < arguments.length; _i++) { - [_i - 0] = arguments[_i]; - } -} +function t1() { } diff --git a/tests/baselines/reference/voidArrayLit.js b/tests/baselines/reference/voidArrayLit.js index 35a07480334..1ed6a7dfd3d 100644 --- a/tests/baselines/reference/voidArrayLit.js +++ b/tests/baselines/reference/voidArrayLit.js @@ -6,11 +6,7 @@ foo((()=>{})()); // error //// [voidArrayLit.js] -var va = [(function () { -})()]; // ok -(function () { -})(); // ok -function foo(s) { -} -foo((function () { -})()); // error +var va = [(function () { })()]; // ok +(function () { })(); // ok +function foo(s) { } +foo((function () { })()); // error diff --git a/tests/baselines/reference/voidAsNonAmbiguousReturnType.js b/tests/baselines/reference/voidAsNonAmbiguousReturnType.js index 3ba67436b9f..713c4ffe47b 100644 --- a/tests/baselines/reference/voidAsNonAmbiguousReturnType.js +++ b/tests/baselines/reference/voidAsNonAmbiguousReturnType.js @@ -14,8 +14,7 @@ function main() { //// [voidAsNonAmbiguousReturnType_0.js] -function mkdirSync(path, mode) { -} +function mkdirSync(path, mode) { } exports.mkdirSync = mkdirSync; //// [voidAsNonAmbiguousReturnType_1.js] /// diff --git a/tests/baselines/reference/voidFunctionAssignmentCompat.js b/tests/baselines/reference/voidFunctionAssignmentCompat.js index f3a457075c0..42e0f99ec31 100644 --- a/tests/baselines/reference/voidFunctionAssignmentCompat.js +++ b/tests/baselines/reference/voidFunctionAssignmentCompat.js @@ -23,18 +23,15 @@ var frv3: (v:any)=>number = (function() { return function () { return 0; } })() var fa = function () { return 3; }; -fa = function () { -}; // should not work -var fv = function () { -}; +fa = function () { }; // should not work +var fv = function () { }; fv = function () { return 0; }; // should work function execAny(callback) { return callback(0); } -execAny(function () { -}); // should work +execAny(function () { }); // should work function execVoid(callback) { callback(0); } @@ -42,8 +39,7 @@ execVoid(function () { return 0; }); // should work var fra = function () { - return function () { - }; + return function () { }; }; // should work var frv = function () { return function () { diff --git a/tests/baselines/reference/whileBreakStatements.js b/tests/baselines/reference/whileBreakStatements.js index 671226349c1..818be39a242 100644 --- a/tests/baselines/reference/whileBreakStatements.js +++ b/tests/baselines/reference/whileBreakStatements.js @@ -66,7 +66,6 @@ SEVEN: while (true) while (true) break SEVEN; EIGHT: while (true) { - var fn = function () { - }; + var fn = function () { }; break EIGHT; } diff --git a/tests/baselines/reference/whileContinueStatements.js b/tests/baselines/reference/whileContinueStatements.js index 894c8723294..91894f9fb8d 100644 --- a/tests/baselines/reference/whileContinueStatements.js +++ b/tests/baselines/reference/whileContinueStatements.js @@ -82,8 +82,7 @@ SEVEN: while (true) while (true) continue SEVEN; EIGHT: while (true) { - var fn = function () { - }; + var fn = function () { }; continue EIGHT; } NINE: while (true) { diff --git a/tests/baselines/reference/widenedTypes.js b/tests/baselines/reference/widenedTypes.js index 5a76ae72905..a0ff6327f25 100644 --- a/tests/baselines/reference/widenedTypes.js +++ b/tests/baselines/reference/widenedTypes.js @@ -25,13 +25,11 @@ var arr: string[] = [3, null]; // not assignable because null is not widened. BC var obj: { [x: string]: string; } = { x: 3, y: null }; // assignable because null is widened, and therefore BCT is any //// [widenedTypes.js] -null instanceof (function () { -}); +null instanceof (function () { }); ({}) instanceof null; // Ok because null is a subtype of function null in {}; "" in null; -for (var a in null) { -} +for (var a in null) { } var t = [3, (3, null)]; t[3] = ""; var x = 3; diff --git a/tests/baselines/reference/withStatement.js b/tests/baselines/reference/withStatement.js index 579f1574bd0..e4224482059 100644 --- a/tests/baselines/reference/withStatement.js +++ b/tests/baselines/reference/withStatement.js @@ -16,7 +16,6 @@ with (ooo.eee.oo.ah_ah.ting.tang.walla.walla) { // error with (ooo.eee.oo.ah_ah.ting.tang.walla.walla) { bing = true; // no error bang = true; // no error - function bar() { - } + function bar() { } bar(); } diff --git a/tests/baselines/reference/withStatementErrors.js b/tests/baselines/reference/withStatementErrors.js index 9ccdfa2a759..5a4e0635db4 100644 --- a/tests/baselines/reference/withStatementErrors.js +++ b/tests/baselines/reference/withStatementErrors.js @@ -22,8 +22,7 @@ with (ooo.eee.oo.ah_ah.ting.tang.walla.walla) { // error with (ooo.eee.oo.ah_ah.ting.tang.walla.walla) { bing = true; // no error bang = true; // no error - function bar() { - } // no error + function bar() { } // no error bar(); } // no error var C = (function () { From ff31b9653340013fd5fd78e4938dc44e105dfeaf Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Fri, 6 Feb 2015 19:06:16 -0800 Subject: [PATCH 21/39] Update test baseline. --- tests/baselines/reference/objectLiteralWithSemicolons5.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/tests/baselines/reference/objectLiteralWithSemicolons5.js b/tests/baselines/reference/objectLiteralWithSemicolons5.js index 082ca6829a0..1c9c4ddf544 100644 --- a/tests/baselines/reference/objectLiteralWithSemicolons5.js +++ b/tests/baselines/reference/objectLiteralWithSemicolons5.js @@ -2,6 +2,4 @@ var v = { foo() { }; a: b; get baz() { }; } //// [objectLiteralWithSemicolons5.js] -var v = { foo: function () { -}, a: b, get baz() { -} }; +var v = { foo: function () { }, a: b, get baz() { } }; From f1cb97b6925da108ebdb78122e6d3a919f9b0ac1 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 8 Feb 2015 16:10:16 -0800 Subject: [PATCH 22/39] Add additional aggressive checks during incremental parsing. --- src/compiler/parser.ts | 52 ++++++++++++++++--- src/harness/harnessLanguageService.ts | 2 +- src/services/services.ts | 4 +- .../baselines/reference/APISample_compile.js | 4 +- .../reference/APISample_compile.types | 10 ++-- tests/baselines/reference/APISample_linter.js | 4 +- .../reference/APISample_linter.types | 10 ++-- .../reference/APISample_transform.js | 4 +- .../reference/APISample_transform.types | 10 ++-- .../baselines/reference/APISample_watcher.js | 4 +- .../reference/APISample_watcher.types | 10 ++-- 11 files changed, 80 insertions(+), 34 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 6942be3cf13..88fff6de959 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -357,21 +357,41 @@ module ts { forEachChild(sourceFile, walk); } - function moveElementEntirelyPastChangeRange(element: IncrementalElement, delta: number) { + function shouldCheckNode(node: Node) { + switch (node.kind) { + case SyntaxKind.StringLiteral: + case SyntaxKind.NumericLiteral: + case SyntaxKind.Identifier: + return true; + } + + return false; + } + + function moveElementEntirelyPastChangeRange(element: IncrementalElement, delta: number, oldText: string, newText: string, aggressiveChecks: boolean) { if (element.length) { visitArray(element); } else { visitNode(element); } + return; function visitNode(node: IncrementalNode) { + if (aggressiveChecks && shouldCheckNode(node)) { + var text = oldText.substring(node.pos, node.end); + } + // Ditch any existing LS children we may have created. This way we can avoid // moving them forward. node._children = undefined; node.pos += delta; node.end += delta; + if (aggressiveChecks && shouldCheckNode(node)) { + Debug.assert(text === newText.substring(node.pos, node.end)); + } + forEachChild(node, visitNode, visitArray); } @@ -459,14 +479,24 @@ module ts { } } - function updateTokenPositionsAndMarkElements(node: IncrementalNode, changeStart: number, changeRangeOldEnd: number, changeRangeNewEnd: number, delta: number): void { + function updateTokenPositionsAndMarkElements( + node: IncrementalNode, + changeStart: number, + changeRangeOldEnd: number, + changeRangeNewEnd: number, + delta: number, + oldText: string, + newText: string, + aggressiveChecks: boolean): void { + visitNode(node); + return; function visitNode(child: IncrementalNode) { if (child.pos > changeRangeOldEnd) { // Node is entirely past the change range. We need to move both its pos and // end, forward or backward appropriately. - moveElementEntirelyPastChangeRange(child, delta); + moveElementEntirelyPastChangeRange(child, delta, oldText, newText, aggressiveChecks); return; } @@ -490,7 +520,7 @@ module ts { if (array.pos > changeRangeOldEnd) { // Array is entirely after the change range. We need to move it, and move any of // its children. - moveElementEntirelyPastChangeRange(array, delta); + moveElementEntirelyPastChangeRange(array, delta, oldText, newText, aggressiveChecks); } else { // Check if the element intersects the change range. If it does, then it is not @@ -513,7 +543,6 @@ module ts { } } - function extendToAffectedRange(sourceFile: SourceFile, changeRange: TextChangeRange): TextChangeRange { // Consider the following code: // void foo() { /; } @@ -650,7 +679,9 @@ module ts { // from this SourceFile that are being held onto may change as a result (including // becoming detached from any SourceFile). It is recommended that this SourceFile not // be used once 'update' is called on it. - export function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile { + export function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile { + aggressiveChecks = aggressiveChecks || Debug.shouldAssert(AssertionLevel.Aggressive); + if (textChangeRangeIsUnchanged(textChangeRange)) { // if the text didn't change, then we can just return our current source file as-is. return sourceFile; @@ -662,12 +693,19 @@ module ts { return parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion,/*syntaxCursor*/ undefined, /*setNodeParents*/ true) } + var oldText = sourceFile.text; var syntaxCursor = createSyntaxCursor(sourceFile); // Make the actual change larger so that we know to reparse anything whose lookahead // might have intersected the change. var changeRange = extendToAffectedRange(sourceFile, textChangeRange); + // Ensure that extending the affected range only moved the start of the change range + // earlier in the file. + Debug.assert(changeRange.span.start <= textChangeRange.span.start); + Debug.assert(textSpanEnd(changeRange.span) === textSpanEnd(textChangeRange.span)); + Debug.assert(textSpanEnd(textChangeRangeNewSpan(changeRange)) === textSpanEnd(textChangeRangeNewSpan(textChangeRange))); + // The is the amount the nodes after the edit range need to be adjusted. It can be // positive (if the edit added characters), negative (if the edit deleted characters) // or zero (if this was a pure overwrite with nothing added/removed). @@ -693,7 +731,7 @@ module ts { // Also, mark any syntax elements that intersect the changed span. We know, up front, // that we cannot reuse these elements. updateTokenPositionsAndMarkElements(sourceFile, - changeRange.span.start, textSpanEnd(changeRange.span), textSpanEnd(textChangeRangeNewSpan(changeRange)), delta); + changeRange.span.start, textSpanEnd(changeRange.span), textSpanEnd(textChangeRangeNewSpan(changeRange)), delta, oldText, newText, aggressiveChecks); // Now that we've set up our internal incremental state just proceed and parse the // source file in the normal fashion. When possible the parser will retrieve and diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index bf9c75a7167..595ef7af3f1 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -115,7 +115,7 @@ module Harness.LanguageService { version: string, textChangeRange: ts.TextChangeRange ): ts.SourceFile { - var result = ts.updateLanguageServiceSourceFile(document, scriptSnapshot, version, textChangeRange); + var result = ts.updateLanguageServiceSourceFile(document, scriptSnapshot, version, textChangeRange, /*aggressiveChecks:*/ true); Utils.assertInvariants(result, /*parent:*/ undefined); return result; } diff --git a/src/services/services.ts b/src/services/services.ts index fcb5c696a38..f1448a3ab0e 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1624,7 +1624,7 @@ module ts { export var disableIncrementalParsing = false; - export function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile { + export function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile { if (textChangeRange && Debug.shouldAssert(AssertionLevel.Normal)) { var oldText = sourceFile.scriptSnapshot; var newText = scriptSnapshot; @@ -1648,7 +1648,7 @@ module ts { if (version !== sourceFile.version) { // Once incremental parsing is ready, then just call into this function. if (!disableIncrementalParsing) { - var newSourceFile = updateSourceFile(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange); + var newSourceFile = updateSourceFile(sourceFile, scriptSnapshot.getText(0, scriptSnapshot.getLength()), textChangeRange, aggressiveChecks); setSourceFileFields(newSourceFile, scriptSnapshot, version); // after incremental parsing nameTable might not be up-to-date // drop it so it can be lazily recreated later diff --git a/tests/baselines/reference/APISample_compile.js b/tests/baselines/reference/APISample_compile.js index 6840f079972..7d89d88b5b3 100644 --- a/tests/baselines/reference/APISample_compile.js +++ b/tests/baselines/reference/APISample_compile.js @@ -1404,7 +1404,7 @@ declare module "typescript" { function createNode(kind: SyntaxKind): Node; function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; function modifierToFlag(token: SyntaxKind): NodeFlags; - function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile; + function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function isEvalOrArgumentsIdentifier(node: Node): boolean; function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; function isLeftHandSideExpression(expr: Expression): boolean; @@ -1895,7 +1895,7 @@ declare module "typescript" { } function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; var disableIncrementalParsing: boolean; - function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; diff --git a/tests/baselines/reference/APISample_compile.types b/tests/baselines/reference/APISample_compile.types index d70172377ca..8cf789bf20f 100644 --- a/tests/baselines/reference/APISample_compile.types +++ b/tests/baselines/reference/APISample_compile.types @@ -4484,13 +4484,14 @@ declare module "typescript" { >SyntaxKind : SyntaxKind >NodeFlags : NodeFlags - function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile; ->updateSourceFile : (sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange) => SourceFile + function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; +>updateSourceFile : (sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean) => SourceFile >sourceFile : SourceFile >SourceFile : SourceFile >newText : string >textChangeRange : TextChangeRange >TextChangeRange : TextChangeRange +>aggressiveChecks : boolean >SourceFile : SourceFile function isEvalOrArgumentsIdentifier(node: Node): boolean; @@ -5895,8 +5896,8 @@ declare module "typescript" { var disableIncrementalParsing: boolean; >disableIncrementalParsing : boolean - function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; ->updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; +>updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean) => SourceFile >sourceFile : SourceFile >SourceFile : SourceFile >scriptSnapshot : IScriptSnapshot @@ -5904,6 +5905,7 @@ declare module "typescript" { >version : string >textChangeRange : TextChangeRange >TextChangeRange : TextChangeRange +>aggressiveChecks : boolean >SourceFile : SourceFile function createDocumentRegistry(): DocumentRegistry; diff --git a/tests/baselines/reference/APISample_linter.js b/tests/baselines/reference/APISample_linter.js index c8bec722309..0ce5a277968 100644 --- a/tests/baselines/reference/APISample_linter.js +++ b/tests/baselines/reference/APISample_linter.js @@ -1435,7 +1435,7 @@ declare module "typescript" { function createNode(kind: SyntaxKind): Node; function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; function modifierToFlag(token: SyntaxKind): NodeFlags; - function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile; + function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function isEvalOrArgumentsIdentifier(node: Node): boolean; function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; function isLeftHandSideExpression(expr: Expression): boolean; @@ -1926,7 +1926,7 @@ declare module "typescript" { } function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; var disableIncrementalParsing: boolean; - function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; diff --git a/tests/baselines/reference/APISample_linter.types b/tests/baselines/reference/APISample_linter.types index 26254c69d54..115a0f5a16b 100644 --- a/tests/baselines/reference/APISample_linter.types +++ b/tests/baselines/reference/APISample_linter.types @@ -4628,13 +4628,14 @@ declare module "typescript" { >SyntaxKind : SyntaxKind >NodeFlags : NodeFlags - function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile; ->updateSourceFile : (sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange) => SourceFile + function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; +>updateSourceFile : (sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean) => SourceFile >sourceFile : SourceFile >SourceFile : SourceFile >newText : string >textChangeRange : TextChangeRange >TextChangeRange : TextChangeRange +>aggressiveChecks : boolean >SourceFile : SourceFile function isEvalOrArgumentsIdentifier(node: Node): boolean; @@ -6039,8 +6040,8 @@ declare module "typescript" { var disableIncrementalParsing: boolean; >disableIncrementalParsing : boolean - function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; ->updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; +>updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean) => SourceFile >sourceFile : SourceFile >SourceFile : SourceFile >scriptSnapshot : IScriptSnapshot @@ -6048,6 +6049,7 @@ declare module "typescript" { >version : string >textChangeRange : TextChangeRange >TextChangeRange : TextChangeRange +>aggressiveChecks : boolean >SourceFile : SourceFile function createDocumentRegistry(): DocumentRegistry; diff --git a/tests/baselines/reference/APISample_transform.js b/tests/baselines/reference/APISample_transform.js index ad66d289eb7..6ecf4e7c395 100644 --- a/tests/baselines/reference/APISample_transform.js +++ b/tests/baselines/reference/APISample_transform.js @@ -1436,7 +1436,7 @@ declare module "typescript" { function createNode(kind: SyntaxKind): Node; function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; function modifierToFlag(token: SyntaxKind): NodeFlags; - function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile; + function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function isEvalOrArgumentsIdentifier(node: Node): boolean; function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; function isLeftHandSideExpression(expr: Expression): boolean; @@ -1927,7 +1927,7 @@ declare module "typescript" { } function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; var disableIncrementalParsing: boolean; - function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; diff --git a/tests/baselines/reference/APISample_transform.types b/tests/baselines/reference/APISample_transform.types index c6d74cc811d..e2797fe5267 100644 --- a/tests/baselines/reference/APISample_transform.types +++ b/tests/baselines/reference/APISample_transform.types @@ -4580,13 +4580,14 @@ declare module "typescript" { >SyntaxKind : SyntaxKind >NodeFlags : NodeFlags - function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile; ->updateSourceFile : (sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange) => SourceFile + function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; +>updateSourceFile : (sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean) => SourceFile >sourceFile : SourceFile >SourceFile : SourceFile >newText : string >textChangeRange : TextChangeRange >TextChangeRange : TextChangeRange +>aggressiveChecks : boolean >SourceFile : SourceFile function isEvalOrArgumentsIdentifier(node: Node): boolean; @@ -5991,8 +5992,8 @@ declare module "typescript" { var disableIncrementalParsing: boolean; >disableIncrementalParsing : boolean - function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; ->updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; +>updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean) => SourceFile >sourceFile : SourceFile >SourceFile : SourceFile >scriptSnapshot : IScriptSnapshot @@ -6000,6 +6001,7 @@ declare module "typescript" { >version : string >textChangeRange : TextChangeRange >TextChangeRange : TextChangeRange +>aggressiveChecks : boolean >SourceFile : SourceFile function createDocumentRegistry(): DocumentRegistry; diff --git a/tests/baselines/reference/APISample_watcher.js b/tests/baselines/reference/APISample_watcher.js index 2add8dfd45e..eb141f20672 100644 --- a/tests/baselines/reference/APISample_watcher.js +++ b/tests/baselines/reference/APISample_watcher.js @@ -1473,7 +1473,7 @@ declare module "typescript" { function createNode(kind: SyntaxKind): Node; function forEachChild(node: Node, cbNode: (node: Node) => T, cbNodeArray?: (nodes: Node[]) => T): T; function modifierToFlag(token: SyntaxKind): NodeFlags; - function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile; + function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function isEvalOrArgumentsIdentifier(node: Node): boolean; function createSourceFile(fileName: string, sourceText: string, languageVersion: ScriptTarget, setParentNodes?: boolean): SourceFile; function isLeftHandSideExpression(expr: Expression): boolean; @@ -1964,7 +1964,7 @@ declare module "typescript" { } function createLanguageServiceSourceFile(fileName: string, scriptSnapshot: IScriptSnapshot, scriptTarget: ScriptTarget, version: string, setNodeParents: boolean): SourceFile; var disableIncrementalParsing: boolean; - function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; function createDocumentRegistry(): DocumentRegistry; function preProcessFile(sourceText: string, readImportFiles?: boolean): PreProcessedFileInfo; function createLanguageService(host: LanguageServiceHost, documentRegistry?: DocumentRegistry): LanguageService; diff --git a/tests/baselines/reference/APISample_watcher.types b/tests/baselines/reference/APISample_watcher.types index 3af8537fdb7..692e07f317a 100644 --- a/tests/baselines/reference/APISample_watcher.types +++ b/tests/baselines/reference/APISample_watcher.types @@ -4753,13 +4753,14 @@ declare module "typescript" { >SyntaxKind : SyntaxKind >NodeFlags : NodeFlags - function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange): SourceFile; ->updateSourceFile : (sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange) => SourceFile + function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; +>updateSourceFile : (sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean) => SourceFile >sourceFile : SourceFile >SourceFile : SourceFile >newText : string >textChangeRange : TextChangeRange >TextChangeRange : TextChangeRange +>aggressiveChecks : boolean >SourceFile : SourceFile function isEvalOrArgumentsIdentifier(node: Node): boolean; @@ -6164,8 +6165,8 @@ declare module "typescript" { var disableIncrementalParsing: boolean; >disableIncrementalParsing : boolean - function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange): SourceFile; ->updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange) => SourceFile + function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile; +>updateLanguageServiceSourceFile : (sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean) => SourceFile >sourceFile : SourceFile >SourceFile : SourceFile >scriptSnapshot : IScriptSnapshot @@ -6173,6 +6174,7 @@ declare module "typescript" { >version : string >textChangeRange : TextChangeRange >TextChangeRange : TextChangeRange +>aggressiveChecks : boolean >SourceFile : SourceFile function createDocumentRegistry(): DocumentRegistry; From a82c57c4b936c64bd8377e2f5d50fa49b78e3830 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 8 Feb 2015 16:40:04 -0800 Subject: [PATCH 23/39] Make sure positions of child elements are consistent. --- src/compiler/parser.ts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 88fff6de959..adf123e6be0 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -393,6 +393,7 @@ module ts { } forEachChild(node, visitNode, visitArray); + checkNodePositions(node, aggressiveChecks); } function visitArray(array: IncrementalNodeArray) { @@ -479,8 +480,19 @@ module ts { } } + function checkNodePositions(node: Node, aggressiveChecks: boolean) { + if (aggressiveChecks) { + var pos = node.pos; + forEachChild(node, child => { + Debug.assert(child.pos >= pos); + pos = child.end; + }); + Debug.assert(pos <= node.end); + } + } + function updateTokenPositionsAndMarkElements( - node: IncrementalNode, + sourceFile: IncrementalNode, changeStart: number, changeRangeOldEnd: number, changeRangeNewEnd: number, @@ -489,7 +501,7 @@ module ts { newText: string, aggressiveChecks: boolean): void { - visitNode(node); + visitNode(sourceFile); return; function visitNode(child: IncrementalNode) { @@ -510,6 +522,8 @@ module ts { // Adjust the pos or end (or both) of the intersecting element accordingly. adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); forEachChild(child, visitNode, visitArray); + + checkNodePositions(child, aggressiveChecks); return; } From 1a17fd1daf5737d19defc25167f4ce64a0969284 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 8 Feb 2015 17:30:27 -0800 Subject: [PATCH 24/39] Move assertions into the parsing layer. --- src/compiler/parser.ts | 16 +++++++++++++++- src/services/services.ts | 17 ----------------- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index adf123e6be0..9ed2f62bf48 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -696,6 +696,21 @@ module ts { export function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile { aggressiveChecks = aggressiveChecks || Debug.shouldAssert(AssertionLevel.Aggressive); + var oldText = sourceFile.text; + if (textChangeRange) { + Debug.assert((oldText.length - textChangeRange.span.length + textChangeRange.newLength) === newText.length); + + if (Debug.shouldAssert(AssertionLevel.VeryAggressive)) { + var oldTextPrefix = oldText.substr(0, textChangeRange.span.start); + var newTextPrefix = newText.substr(0, textChangeRange.span.start); + Debug.assert(oldTextPrefix === newTextPrefix); + + var oldTextSuffix = oldText.substring(textSpanEnd(textChangeRange.span), oldText.length); + var newTextSuffix = newText.substring(textSpanEnd(textChangeRangeNewSpan(textChangeRange)), newText.length); + Debug.assert(oldTextSuffix === newTextSuffix); + } + } + if (textChangeRangeIsUnchanged(textChangeRange)) { // if the text didn't change, then we can just return our current source file as-is. return sourceFile; @@ -707,7 +722,6 @@ module ts { return parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion,/*syntaxCursor*/ undefined, /*setNodeParents*/ true) } - var oldText = sourceFile.text; var syntaxCursor = createSyntaxCursor(sourceFile); // Make the actual change larger so that we know to reparse anything whose lookahead diff --git a/src/services/services.ts b/src/services/services.ts index f1448a3ab0e..56e68b2f5a1 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -1625,23 +1625,6 @@ module ts { export var disableIncrementalParsing = false; export function updateLanguageServiceSourceFile(sourceFile: SourceFile, scriptSnapshot: IScriptSnapshot, version: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile { - if (textChangeRange && Debug.shouldAssert(AssertionLevel.Normal)) { - var oldText = sourceFile.scriptSnapshot; - var newText = scriptSnapshot; - - Debug.assert((oldText.getLength() - textChangeRange.span.length + textChangeRange.newLength) === newText.getLength()); - - if (Debug.shouldAssert(AssertionLevel.VeryAggressive)) { - var oldTextPrefix = oldText.getText(0, textChangeRange.span.start); - var newTextPrefix = newText.getText(0, textChangeRange.span.start); - Debug.assert(oldTextPrefix === newTextPrefix); - - var oldTextSuffix = oldText.getText(textSpanEnd(textChangeRange.span), oldText.getLength()); - var newTextSuffix = newText.getText(textSpanEnd(textChangeRangeNewSpan(textChangeRange)), newText.getLength()); - Debug.assert(oldTextSuffix === newTextSuffix); - } - } - // If we were given a text change range, and our version or open-ness changed, then // incrementally parse this file. if (textChangeRange) { From ad7c77ea087a03c6ab9420fad7d00c8c149ddd5e Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 8 Feb 2015 17:35:54 -0800 Subject: [PATCH 25/39] Check the text change range before and after we expand it. --- src/compiler/parser.ts | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 9ed2f62bf48..9eace1946d3 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -683,6 +683,22 @@ module ts { } } + function checkChangeRange(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks: boolean) { + var oldText = sourceFile.text; + if (textChangeRange) { + Debug.assert((oldText.length - textChangeRange.span.length + textChangeRange.newLength) === newText.length); + + if (aggressiveChecks || Debug.shouldAssert(AssertionLevel.VeryAggressive)) { + var oldTextPrefix = oldText.substr(0, textChangeRange.span.start); + var newTextPrefix = newText.substr(0, textChangeRange.span.start); + Debug.assert(oldTextPrefix === newTextPrefix); + + var oldTextSuffix = oldText.substring(textSpanEnd(textChangeRange.span), oldText.length); + var newTextSuffix = newText.substring(textSpanEnd(textChangeRangeNewSpan(textChangeRange)), newText.length); + Debug.assert(oldTextSuffix === newTextSuffix); + } + } + } // Produces a new SourceFile for the 'newText' provided. The 'textChangeRange' parameter // indicates what changed between the 'text' that this SourceFile has and the 'newText'. @@ -696,21 +712,7 @@ module ts { export function updateSourceFile(sourceFile: SourceFile, newText: string, textChangeRange: TextChangeRange, aggressiveChecks?: boolean): SourceFile { aggressiveChecks = aggressiveChecks || Debug.shouldAssert(AssertionLevel.Aggressive); - var oldText = sourceFile.text; - if (textChangeRange) { - Debug.assert((oldText.length - textChangeRange.span.length + textChangeRange.newLength) === newText.length); - - if (Debug.shouldAssert(AssertionLevel.VeryAggressive)) { - var oldTextPrefix = oldText.substr(0, textChangeRange.span.start); - var newTextPrefix = newText.substr(0, textChangeRange.span.start); - Debug.assert(oldTextPrefix === newTextPrefix); - - var oldTextSuffix = oldText.substring(textSpanEnd(textChangeRange.span), oldText.length); - var newTextSuffix = newText.substring(textSpanEnd(textChangeRangeNewSpan(textChangeRange)), newText.length); - Debug.assert(oldTextSuffix === newTextSuffix); - } - } - + checkChangeRange(sourceFile, newText, textChangeRange, aggressiveChecks); if (textChangeRangeIsUnchanged(textChangeRange)) { // if the text didn't change, then we can just return our current source file as-is. return sourceFile; @@ -722,11 +724,13 @@ module ts { return parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion,/*syntaxCursor*/ undefined, /*setNodeParents*/ true) } + var oldText = sourceFile.text; var syntaxCursor = createSyntaxCursor(sourceFile); // Make the actual change larger so that we know to reparse anything whose lookahead // might have intersected the change. var changeRange = extendToAffectedRange(sourceFile, textChangeRange); + checkChangeRange(sourceFile, newText, changeRange, aggressiveChecks); // Ensure that extending the affected range only moved the start of the change range // earlier in the file. From 9d6b6b422a9b0660a35a556a9b60c4cd9a908ec2 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 8 Feb 2015 17:48:56 -0800 Subject: [PATCH 26/39] Rename a few members and clean up comments. --- src/compiler/parser.ts | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 9eace1946d3..b6a44229cb2 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -336,11 +336,16 @@ module ts { } function fixupParentReferences(sourceFile: SourceFile) { - // normally parent references are set during binding. - // however here SourceFile data is used only for syntactic features so running the whole binding process is an overhead. - // walk over the nodes and set parent references + // normally parent references are set during binding. However, for clients that only need + // a syntax tree, and no semantic features, then the binding process is an unnecessary + // overhead. This functions allows us to set all the parents, without all the expense of + // binding. + var parent: Node = sourceFile; - function walk(n: Node): void { + forEachChild(sourceFile, visitNode); + return; + + function visitNode(n: Node): void { // walk down setting parents that differ from the parent we think it should be. This // allows us to quickly bail out of setting parents for subtrees during incremental // parsing @@ -349,12 +354,10 @@ module ts { var saveParent = parent; parent = n; - forEachChild(n, walk); + forEachChild(n, visitNode); parent = saveParent; } } - - forEachChild(sourceFile, walk); } function shouldCheckNode(node: Node) { @@ -721,7 +724,7 @@ module ts { if (sourceFile.statements.length === 0) { // If we don't have any statements in the current source file, then there's no real // way to incrementally parse. So just do a full parse instead. - return parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion,/*syntaxCursor*/ undefined, /*setNodeParents*/ true) + return parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, /*syntaxCursor*/ undefined, /*setNodeParents*/ true) } var oldText = sourceFile.text; @@ -744,8 +747,8 @@ module ts { var delta = textChangeRangeNewSpan(changeRange).length - changeRange.span.length; // If we added or removed characters during the edit, then we need to go and adjust all - // the nodes after the edit. Those nodes may move forward down (if we inserted chars) - // or they may move backward (if we deleted chars). + // the nodes after the edit. Those nodes may move forward (if we inserted chars) or they + // may move backward (if we deleted chars). // // Doing this helps us out in two ways. First, it means that any nodes/tokens we want // to reuse are already at the appropriate position in the new text. That way when we @@ -1045,6 +1048,7 @@ module ts { fixupParentReferences(sourceFile); } + syntaxCursor = undefined; return sourceFile; function setContextFlag(val: Boolean, flag: ParserContextFlags) { From d0aa7891def3a5b848a06669304cd077169d3c7c Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Sun, 8 Feb 2015 18:02:13 -0800 Subject: [PATCH 27/39] Add additional incremental assert. --- src/compiler/parser.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index b6a44229cb2..4ab8d9d1d5c 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -580,6 +580,7 @@ module ts { // start of the tree. for (var i = 0; start > 0 && i <= maxLookahead; i++) { var nearestNode = findNearestNodeStartingBeforeOrAtPosition(sourceFile, start); + Debug.assert(nearestNode.pos <= start); var position = nearestNode.pos; start = Math.max(0, position - 1); @@ -936,7 +937,6 @@ module ts { var identifiers: Map = {}; var identifierCount = 0; var nodeCount = 0; - var scanner: Scanner; var token: SyntaxKind; var sourceFile = createNode(SyntaxKind.SourceFile, /*pos*/ 0); @@ -1029,7 +1029,7 @@ module ts { var parseErrorBeforeNextFinishedNode: boolean = false; // Create and prime the scanner before parsing the source elements. - scanner = createScanner(languageVersion, /*skipTrivia*/ true, sourceText, scanError); + var scanner = createScanner(languageVersion, /*skipTrivia*/ true, sourceText, scanError); token = nextToken(); processReferenceComments(sourceFile); From 08f51b90704d399161ae44d872bc0c0ecb4676c6 Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Mon, 9 Feb 2015 09:19:50 -0800 Subject: [PATCH 28/39] Respond to code review comments --- src/harness/fourslash.ts | 66 +++++++------- src/harness/harnessLanguageService.ts | 87 +++++++++---------- .../cases/unittests/services/colorization.ts | 4 +- 3 files changed, 76 insertions(+), 81 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index ca860d4cd8a..603a78b5f75 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -246,7 +246,7 @@ module FourSlash { export class TestState { // Language service instance - private languageServiceAdaptorHost: Harness.LanguageService.LanguageServiceAdaptorHost; + private languageServiceAdapterHost: Harness.LanguageService.LanguageServiceAdapterHost; private languageService: ts.LanguageService; private cancellationToken: TestCancellationToken; @@ -272,32 +272,28 @@ module FourSlash { private addMatchedInputFile(referenceFilePath: string) { var inputFile = this.inputFiles[referenceFilePath]; if (inputFile && !Harness.isLibraryFile(referenceFilePath)) { - this.languageServiceAdaptorHost.addScript(referenceFilePath, inputFile); + this.languageServiceAdapterHost.addScript(referenceFilePath, inputFile); } } - private getLanguageServiceAdaptor(testType: FourSlashTestType): - { new (cancellationToken?: ts.CancellationToken, options?: ts.CompilerOptions): Harness.LanguageService.LanguageServiceAdaptor } { + private getLanguageServiceAdapter(testType: FourSlashTestType, cancellationToken: TestCancellationToken, compilationOptions: ts.CompilerOptions): Harness.LanguageService.LanguageServiceAdapter { switch (testType) { case FourSlashTestType.Native: - return Harness.LanguageService.NativeLanugageServiceAdaptor; - break; + return new Harness.LanguageService.NativeLanugageServiceAdapter(cancellationToken, compilationOptions); case FourSlashTestType.Shims: - return Harness.LanguageService.ShimLanugageServiceAdaptor; - break; + return new Harness.LanguageService.ShimLanugageServiceAdapter(cancellationToken, compilationOptions); default: throw new Error("Unknown FourSlash test type: "); } } constructor(private basePath: string, private testType: FourSlashTestType, public testData: FourSlashData) { - // Create a new Services Adaptor + // Create a new Services Adapter this.cancellationToken = new TestCancellationToken(); var compilationOptions = convertGlobalOptionsToCompilerOptions(this.testData.globalOptions); - var languageserviceAdaptorFactory = this.getLanguageServiceAdaptor(testType); - var languageServiceAdaptor = new languageserviceAdaptorFactory(this.cancellationToken, compilationOptions); - this.languageServiceAdaptorHost = languageServiceAdaptor.getHost(); - this.languageService = languageServiceAdaptor.getLanguageService(); + var languageServiceAdapter = this.getLanguageServiceAdapter(testType, this.cancellationToken, compilationOptions); + this.languageServiceAdapterHost = languageServiceAdapter.getHost(); + this.languageService = languageServiceAdapter.getLanguageService(); // Initialize the language service with all the scripts var startResolveFileRef: FourSlashFile; @@ -315,16 +311,16 @@ module FourSlash { if (startResolveFileRef) { // Add the entry-point file itself into the languageServiceShimHost - this.languageServiceAdaptorHost.addScript(startResolveFileRef.fileName, startResolveFileRef.content); + this.languageServiceAdapterHost.addScript(startResolveFileRef.fileName, startResolveFileRef.content); - var resolvedResult = languageServiceAdaptor.getPreProcessedFileInfo(startResolveFileRef.fileName, startResolveFileRef.content); + var resolvedResult = languageServiceAdapter.getPreProcessedFileInfo(startResolveFileRef.fileName, startResolveFileRef.content); var referencedFiles: ts.FileReference[] = resolvedResult.referencedFiles; var importedFiles: ts.FileReference[] = resolvedResult.importedFiles; // Add triple reference files into language-service host ts.forEach(referencedFiles, referenceFile => { // Fourslash insert tests/cases/fourslash into inputFile.unitName so we will properly append the same base directory to refFile path - var referenceFilePath = this.basePath+ '/' + referenceFile.fileName; + var referenceFilePath = this.basePath + '/' + referenceFile.fileName; this.addMatchedInputFile(referenceFilePath); }); @@ -338,16 +334,16 @@ module FourSlash { // Check if no-default-lib flag is false and if so add default library if (!resolvedResult.isLibFile) { - this.languageServiceAdaptorHost.addScript(Harness.Compiler.defaultLibFileName, Harness.Compiler.defaultLibSourceFile.text); + this.languageServiceAdapterHost.addScript(Harness.Compiler.defaultLibFileName, Harness.Compiler.defaultLibSourceFile.text); } } else { // resolveReference file-option is not specified then do not resolve any files and include all inputFiles ts.forEachKey(this.inputFiles, fileName => { if (!Harness.isLibraryFile(fileName)) { - this.languageServiceAdaptorHost.addScript(fileName, this.inputFiles[fileName]); + this.languageServiceAdapterHost.addScript(fileName, this.inputFiles[fileName]); } }); - this.languageServiceAdaptorHost.addScript(Harness.Compiler.defaultLibFileName, Harness.Compiler.defaultLibSourceFile.text); + this.languageServiceAdapterHost.addScript(Harness.Compiler.defaultLibFileName, Harness.Compiler.defaultLibSourceFile.text); } this.formatCodeOptions = { @@ -376,7 +372,7 @@ module FourSlash { } private getFileContent(fileName: string): string { - var script = this.languageServiceAdaptorHost.getScriptInfo(fileName); + var script = this.languageServiceAdapterHost.getScriptInfo(fileName); return script.content; } @@ -464,7 +460,7 @@ module FourSlash { private getAllDiagnostics(): ts.Diagnostic[] { var diagnostics: ts.Diagnostic[] = []; - var fileNames = this.languageServiceAdaptorHost.getFilenames(); + var fileNames = this.languageServiceAdapterHost.getFilenames(); for (var i = 0, n = fileNames.length; i < n; i++) { diagnostics.push.apply(this.getDiagnostics(fileNames[i])); } @@ -1255,7 +1251,7 @@ module FourSlash { } public printContext() { - ts.forEach(this.languageServiceAdaptorHost.getFilenames(), Harness.IO.log); + ts.forEach(this.languageServiceAdapterHost.getFilenames(), Harness.IO.log); } public deleteChar(count = 1) { @@ -1268,7 +1264,7 @@ module FourSlash { for (var i = 0; i < count; i++) { // Make the edit - this.languageServiceAdaptorHost.editScript(this.activeFile.fileName, offset, offset + 1, ch); + this.languageServiceAdapterHost.editScript(this.activeFile.fileName, offset, offset + 1, ch); this.updateMarkersForEdit(this.activeFile.fileName, offset, offset + 1, ch); if (i % checkCadence === 0) { @@ -1295,7 +1291,7 @@ module FourSlash { public replace(start: number, length: number, text: string) { this.taoInvalidReason = 'replace NYI'; - this.languageServiceAdaptorHost.editScript(this.activeFile.fileName, start, start + length, text); + this.languageServiceAdapterHost.editScript(this.activeFile.fileName, start, start + length, text); this.updateMarkersForEdit(this.activeFile.fileName, start, start + length, text); this.checkPostEditInvariants(); } @@ -1310,7 +1306,7 @@ module FourSlash { for (var i = 0; i < count; i++) { offset--; // Make the edit - this.languageServiceAdaptorHost.editScript(this.activeFile.fileName, offset, offset + 1, ch); + this.languageServiceAdapterHost.editScript(this.activeFile.fileName, offset, offset + 1, ch); this.updateMarkersForEdit(this.activeFile.fileName, offset, offset + 1, ch); if (i % checkCadence === 0) { @@ -1355,7 +1351,7 @@ module FourSlash { for (var i = 0; i < text.length; i++) { // Make the edit var ch = text.charAt(i); - this.languageServiceAdaptorHost.editScript(this.activeFile.fileName, offset, offset, ch); + this.languageServiceAdapterHost.editScript(this.activeFile.fileName, offset, offset, ch); this.languageService.getBraceMatchingAtPosition(this.activeFile.fileName, offset); this.updateMarkersForEdit(this.activeFile.fileName, offset, offset, ch); @@ -1398,7 +1394,7 @@ module FourSlash { var start = this.currentCaretPosition; var offset = this.currentCaretPosition; - this.languageServiceAdaptorHost.editScript(this.activeFile.fileName, offset, offset, text); + this.languageServiceAdapterHost.editScript(this.activeFile.fileName, offset, offset, text); this.updateMarkersForEdit(this.activeFile.fileName, offset, offset, text); this.checkPostEditInvariants(); offset += text.length; @@ -1461,7 +1457,7 @@ module FourSlash { // Get a snapshot of the content of the file so we can make sure any formatting edits didn't destroy non-whitespace characters var oldContent = this.getFileContent(this.activeFile.fileName); for (var j = 0; j < edits.length; j++) { - this.languageServiceAdaptorHost.editScript(fileName, edits[j].span.start + runningOffset, ts.textSpanEnd(edits[j].span) + runningOffset, edits[j].newText); + this.languageServiceAdapterHost.editScript(fileName, edits[j].span.start + runningOffset, ts.textSpanEnd(edits[j].span) + runningOffset, edits[j].newText); this.updateMarkersForEdit(fileName, edits[j].span.start + runningOffset, ts.textSpanEnd(edits[j].span) + runningOffset, edits[j].newText); var change = (edits[j].span.start - ts.textSpanEnd(edits[j].span)) + edits[j].newText.length; runningOffset += change; @@ -1742,8 +1738,8 @@ module FourSlash { function jsonMismatchString() { return ts.sys.newLine + - "expected: '" + ts.sys.newLine + JSON.stringify(expected,(k, v) => v, 2) + "'" + ts.sys.newLine + - "actual: '" + ts.sys.newLine + JSON.stringify(actual,(k, v) => v, 2) + "'"; + "expected: '" + ts.sys.newLine + JSON.stringify(expected, (k, v) => v, 2) + "'" + ts.sys.newLine + + "actual: '" + ts.sys.newLine + JSON.stringify(actual, (k, v) => v, 2) + "'"; } } @@ -2017,7 +2013,7 @@ module FourSlash { // The current caret position (in line/col terms) var line = this.getCurrentCaretFilePosition().line; // The line/col of the start of this line - var pos = this.languageServiceAdaptorHost.lineColToPosition(this.activeFile.fileName, line, 1); + var pos = this.languageServiceAdapterHost.lineColToPosition(this.activeFile.fileName, line, 1); // The index of the current file // The text from the start of the line to the end of the file @@ -2037,7 +2033,7 @@ module FourSlash { } private getCurrentCaretFilePosition() { - var result = this.languageServiceAdaptorHost.positionToZeroBasedLineCol(this.activeFile.fileName, this.currentCaretPosition); + var result = this.languageServiceAdapterHost.positionToZeroBasedLineCol(this.activeFile.fileName, this.currentCaretPosition); if (result.line >= 0) { result.line++; } @@ -2097,7 +2093,7 @@ module FourSlash { var name = indexOrName; // names are stored in the compiler with this relative path, this allows people to use goTo.file on just the fileName - name = name.indexOf('/') === -1 ? (this.basePath + '/' + name) : name; + name = name.indexOf('/') === -1 ? (this.basePath + '/' + name) : name; var availableNames: string[] = []; var foundIt = false; @@ -2124,7 +2120,7 @@ module FourSlash { } private getLineColStringAtPosition(position: number) { - var pos = this.languageServiceAdaptorHost.positionToZeroBasedLineCol(this.activeFile.fileName, position); + var pos = this.languageServiceAdapterHost.positionToZeroBasedLineCol(this.activeFile.fileName, position); return 'line ' + (pos.line + 1) + ', col ' + pos.character; } @@ -2285,7 +2281,7 @@ module FourSlash { currentFileName = fileName; } - currentFileName = basePath + '/' + match[2]; + currentFileName = basePath + '/' + match[2]; currentFileOptions[match[1]] = match[2]; } else { // Add other fileMetadata flag diff --git a/src/harness/harnessLanguageService.ts b/src/harness/harnessLanguageService.ts index 4ada92e0172..2f95f5072d0 100644 --- a/src/harness/harnessLanguageService.ts +++ b/src/harness/harnessLanguageService.ts @@ -113,14 +113,14 @@ module Harness.LanguageService { } } - export interface LanguageServiceAdaptor { - getHost(): LanguageServiceAdaptorHost; + export interface LanguageServiceAdapter { + getHost(): LanguageServiceAdapterHost; getLanguageService(): ts.LanguageService; getClassifier(): ts.Classifier; getPreProcessedFileInfo(fileName: string, fileContents: string): ts.PreProcessedFileInfo; } - class LanguageServiceHostBase { + export class LanguageServiceAdapterHost { protected fileNameToScript: ts.Map = {}; constructor(protected cancellationToken: ts.CancellationToken = CancellationToken.None, @@ -194,11 +194,8 @@ module Harness.LanguageService { } } - export interface LanguageServiceAdaptorHost extends LanguageServiceHostBase { - } - - /// Native adabtor - class NativeLanguageServiceHost extends LanguageServiceHostBase implements ts.LanguageServiceHost { + /// Native adapter + class NativeLanguageServiceHost extends LanguageServiceAdapterHost implements ts.LanguageServiceHost { getCompilationSettings(): ts.CompilerOptions { return this.settings; } getCancellationToken(): ts.CancellationToken { return this.cancellationToken; } getCurrentDirectory(): string { return ""; } @@ -217,7 +214,7 @@ module Harness.LanguageService { error(s: string): void { } } - export class NativeLanugageServiceAdaptor implements LanguageServiceAdaptor { + export class NativeLanugageServiceAdapter implements LanguageServiceAdapter { private host: NativeLanguageServiceHost; constructor(cancellationToken?: ts.CancellationToken, options?: ts.CompilerOptions) { this.host = new NativeLanguageServiceHost(cancellationToken, options); @@ -228,8 +225,8 @@ module Harness.LanguageService { getPreProcessedFileInfo(fileName: string, fileContents: string): ts.PreProcessedFileInfo { return ts.preProcessFile(fileContents); } } - /// Shim adabtor - class ShimLanguageServiceHost extends LanguageServiceHostBase implements ts.LanguageServiceShimHost { + /// Shim adapter + class ShimLanguageServiceHost extends LanguageServiceAdapterHost implements ts.LanguageServiceShimHost { private nativeHost: NativeLanguageServiceHost; constructor(cancellationToken?: ts.CancellationToken, options?: ts.CompilerOptions) { super(cancellationToken, options); @@ -261,7 +258,8 @@ module Harness.LanguageService { } class ClassifierShimProxy implements ts.Classifier { - constructor(private shim: ts.ClassifierShim) { } + constructor(private shim: ts.ClassifierShim) { + } getClassificationsForLine(text: string, lexState: ts.EndOfLineState, classifyKeywordsInGenerics?: boolean): ts.ClassificationResult { var result = this.shim.getClassificationsForLine(text, lexState, classifyKeywordsInGenerics).split('\n'); var entries: ts.ClassificationInfo[] = []; @@ -288,7 +286,7 @@ module Harness.LanguageService { } } - function unwrappJSONCallResult(result: string): any { + function unwrapJSONCallResult(result: string): any { var parsedResult = JSON.parse(result); if (parsedResult.error) { throw new Error("Language Service Shim Error: " + JSON.stringify(parsedResult.error)); @@ -300,7 +298,8 @@ module Harness.LanguageService { } class LanguageServiceShimProxy implements ts.LanguageService { - constructor(private shim: ts.LanguageServiceShim) { } + constructor(private shim: ts.LanguageServiceShim) { + } private unwrappJSONCallResult(result: string): any { var parsedResult = JSON.parse(result); if (parsedResult.error) { @@ -312,93 +311,93 @@ module Harness.LanguageService { this.shim.cleanupSemanticCache(); } getSyntacticDiagnostics(fileName: string): ts.Diagnostic[] { - return unwrappJSONCallResult(this.shim.getSyntacticDiagnostics(fileName)); + return unwrapJSONCallResult(this.shim.getSyntacticDiagnostics(fileName)); } getSemanticDiagnostics(fileName: string): ts.Diagnostic[] { - return unwrappJSONCallResult(this.shim.getSemanticDiagnostics(fileName)); + return unwrapJSONCallResult(this.shim.getSemanticDiagnostics(fileName)); } getCompilerOptionsDiagnostics(): ts.Diagnostic[] { - return unwrappJSONCallResult(this.shim.getCompilerOptionsDiagnostics()); + return unwrapJSONCallResult(this.shim.getCompilerOptionsDiagnostics()); } getSyntacticClassifications(fileName: string, span: ts.TextSpan): ts.ClassifiedSpan[] { - return unwrappJSONCallResult(this.shim.getSyntacticClassifications(fileName, span.start, span.length)); + return unwrapJSONCallResult(this.shim.getSyntacticClassifications(fileName, span.start, span.length)); } getSemanticClassifications(fileName: string, span: ts.TextSpan): ts.ClassifiedSpan[] { - return unwrappJSONCallResult(this.shim.getSemanticClassifications(fileName, span.start, span.length)); + return unwrapJSONCallResult(this.shim.getSemanticClassifications(fileName, span.start, span.length)); } getCompletionsAtPosition(fileName: string, position: number): ts.CompletionInfo { - return unwrappJSONCallResult(this.shim.getCompletionsAtPosition(fileName, position)); + return unwrapJSONCallResult(this.shim.getCompletionsAtPosition(fileName, position)); } getCompletionEntryDetails(fileName: string, position: number, entryName: string): ts.CompletionEntryDetails { - return unwrappJSONCallResult(this.shim.getCompletionEntryDetails(fileName, position, entryName)); + return unwrapJSONCallResult(this.shim.getCompletionEntryDetails(fileName, position, entryName)); } getQuickInfoAtPosition(fileName: string, position: number): ts.QuickInfo { - return unwrappJSONCallResult(this.shim.getQuickInfoAtPosition(fileName, position)); + return unwrapJSONCallResult(this.shim.getQuickInfoAtPosition(fileName, position)); } getNameOrDottedNameSpan(fileName: string, startPos: number, endPos: number): ts.TextSpan { - return unwrappJSONCallResult(this.shim.getNameOrDottedNameSpan(fileName, startPos, endPos)); + return unwrapJSONCallResult(this.shim.getNameOrDottedNameSpan(fileName, startPos, endPos)); } getBreakpointStatementAtPosition(fileName: string, position: number): ts.TextSpan { - return unwrappJSONCallResult(this.shim.getBreakpointStatementAtPosition(fileName, position)); + return unwrapJSONCallResult(this.shim.getBreakpointStatementAtPosition(fileName, position)); } getSignatureHelpItems(fileName: string, position: number): ts.SignatureHelpItems { - return unwrappJSONCallResult(this.shim.getSignatureHelpItems(fileName, position)); + return unwrapJSONCallResult(this.shim.getSignatureHelpItems(fileName, position)); } getRenameInfo(fileName: string, position: number): ts.RenameInfo { - return unwrappJSONCallResult(this.shim.getRenameInfo(fileName, position)); + return unwrapJSONCallResult(this.shim.getRenameInfo(fileName, position)); } findRenameLocations(fileName: string, position: number, findInStrings: boolean, findInComments: boolean): ts.RenameLocation[] { - return unwrappJSONCallResult(this.shim.findRenameLocations(fileName, position, findInStrings, findInComments)); + return unwrapJSONCallResult(this.shim.findRenameLocations(fileName, position, findInStrings, findInComments)); } getDefinitionAtPosition(fileName: string, position: number): ts.DefinitionInfo[] { - return unwrappJSONCallResult(this.shim.getDefinitionAtPosition(fileName, position)); + return unwrapJSONCallResult(this.shim.getDefinitionAtPosition(fileName, position)); } getReferencesAtPosition(fileName: string, position: number): ts.ReferenceEntry[] { - return unwrappJSONCallResult(this.shim.getReferencesAtPosition(fileName, position)); + return unwrapJSONCallResult(this.shim.getReferencesAtPosition(fileName, position)); } getOccurrencesAtPosition(fileName: string, position: number): ts.ReferenceEntry[] { - return unwrappJSONCallResult(this.shim.getOccurrencesAtPosition(fileName, position)); + return unwrapJSONCallResult(this.shim.getOccurrencesAtPosition(fileName, position)); } getNavigateToItems(searchValue: string): ts.NavigateToItem[] { - return unwrappJSONCallResult(this.shim.getNavigateToItems(searchValue)); + return unwrapJSONCallResult(this.shim.getNavigateToItems(searchValue)); } getNavigationBarItems(fileName: string): ts.NavigationBarItem[] { - return unwrappJSONCallResult(this.shim.getNavigationBarItems(fileName)); + return unwrapJSONCallResult(this.shim.getNavigationBarItems(fileName)); } getOutliningSpans(fileName: string): ts.OutliningSpan[] { - return unwrappJSONCallResult(this.shim.getOutliningSpans(fileName)); + return unwrapJSONCallResult(this.shim.getOutliningSpans(fileName)); } getTodoComments(fileName: string, descriptors: ts.TodoCommentDescriptor[]): ts.TodoComment[] { - return unwrappJSONCallResult(this.shim.getTodoComments(fileName, JSON.stringify(descriptors))); + return unwrapJSONCallResult(this.shim.getTodoComments(fileName, JSON.stringify(descriptors))); } getBraceMatchingAtPosition(fileName: string, position: number): ts.TextSpan[] { - return unwrappJSONCallResult(this.shim.getBraceMatchingAtPosition(fileName, position)); + return unwrapJSONCallResult(this.shim.getBraceMatchingAtPosition(fileName, position)); } getIndentationAtPosition(fileName: string, position: number, options: ts.EditorOptions): number { - return unwrappJSONCallResult(this.shim.getIndentationAtPosition(fileName, position, JSON.stringify(options))); + return unwrapJSONCallResult(this.shim.getIndentationAtPosition(fileName, position, JSON.stringify(options))); } getFormattingEditsForRange(fileName: string, start: number, end: number, options: ts.FormatCodeOptions): ts.TextChange[] { - return unwrappJSONCallResult(this.shim.getFormattingEditsForRange(fileName, start, end, JSON.stringify(options))); + return unwrapJSONCallResult(this.shim.getFormattingEditsForRange(fileName, start, end, JSON.stringify(options))); } getFormattingEditsForDocument(fileName: string, options: ts.FormatCodeOptions): ts.TextChange[] { - return unwrappJSONCallResult(this.shim.getFormattingEditsForDocument(fileName, JSON.stringify(options))); + return unwrapJSONCallResult(this.shim.getFormattingEditsForDocument(fileName, JSON.stringify(options))); } getFormattingEditsAfterKeystroke(fileName: string, position: number, key: string, options: ts.FormatCodeOptions): ts.TextChange[] { - return unwrappJSONCallResult(this.shim.getFormattingEditsAfterKeystroke(fileName, position, key, JSON.stringify(options))); + return unwrapJSONCallResult(this.shim.getFormattingEditsAfterKeystroke(fileName, position, key, JSON.stringify(options))); } getEmitOutput(fileName: string): ts.EmitOutput { - return unwrappJSONCallResult(this.shim.getEmitOutput(fileName)); + return unwrapJSONCallResult(this.shim.getEmitOutput(fileName)); } getProgram(): ts.Program { - throw new Error("Program can not be marshalled accross the shim layer."); + throw new Error("Program can not be marshaled across the shim layer."); } getSourceFile(fileName: string): ts.SourceFile { - throw new Error("SourceFile can not be marshalled accross the shim layer."); + throw new Error("SourceFile can not be marshaled across the shim layer."); } dispose(): void { this.shim.dispose({}); } } - export class ShimLanugageServiceAdaptor implements LanguageServiceAdaptor { + export class ShimLanugageServiceAdapter implements LanguageServiceAdapter { private host: ShimLanguageServiceHost; private factory: ts.TypeScriptServicesFactory; constructor(cancellationToken?: ts.CancellationToken, options?: ts.CompilerOptions) { @@ -416,7 +415,7 @@ module Harness.LanguageService { }; var coreServicesShim = this.factory.createCoreServicesShim(this.host); - shimResult = unwrappJSONCallResult(coreServicesShim.getPreProcessedFileInfo(fileName, ts.ScriptSnapshot.fromString(fileContents))); + shimResult = unwrapJSONCallResult(coreServicesShim.getPreProcessedFileInfo(fileName, ts.ScriptSnapshot.fromString(fileContents))); var convertResult: ts.PreProcessedFileInfo = { referencedFiles: [], diff --git a/tests/cases/unittests/services/colorization.ts b/tests/cases/unittests/services/colorization.ts index b744b65608b..01149764305 100644 --- a/tests/cases/unittests/services/colorization.ts +++ b/tests/cases/unittests/services/colorization.ts @@ -7,8 +7,8 @@ interface ClassificationEntry { } describe('Colorization', function () { - // Use the shim adaptor to ensure test coverage of the shim layer for the classifier - var languageServiceAdabtor = new Harness.LanguageService.ShimLanugageServiceAdaptor(); + // Use the shim adapter to ensure test coverage of the shim layer for the classifier + var languageServiceAdabtor = new Harness.LanguageService.ShimLanugageServiceAdapter(); var classifier = languageServiceAdabtor.getClassifier(); function getEntryAtPosistion(result: ts.ClassificationResult, position: number) { From 318aa8ce7a47c6b0dd5c12b40f3d219c6d7f4da4 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 9 Feb 2015 14:07:09 -0800 Subject: [PATCH 29/39] Don't use dynamic type checks while incrementally parsing. --- src/compiler/parser.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 4ab8d9d1d5c..d58a9f15105 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -371,8 +371,8 @@ module ts { return false; } - function moveElementEntirelyPastChangeRange(element: IncrementalElement, delta: number, oldText: string, newText: string, aggressiveChecks: boolean) { - if (element.length) { + function moveElementEntirelyPastChangeRange(element: IncrementalElement, isArray: boolean, delta: number, oldText: string, newText: string, aggressiveChecks: boolean) { + if (isArray) { visitArray(element); } else { @@ -511,7 +511,7 @@ module ts { if (child.pos > changeRangeOldEnd) { // Node is entirely past the change range. We need to move both its pos and // end, forward or backward appropriately. - moveElementEntirelyPastChangeRange(child, delta, oldText, newText, aggressiveChecks); + moveElementEntirelyPastChangeRange(child, /*isArray:*/ false, delta, oldText, newText, aggressiveChecks); return; } @@ -537,7 +537,7 @@ module ts { if (array.pos > changeRangeOldEnd) { // Array is entirely after the change range. We need to move it, and move any of // its children. - moveElementEntirelyPastChangeRange(array, delta, oldText, newText, aggressiveChecks); + moveElementEntirelyPastChangeRange(array, /*isArray:*/ true, delta, oldText, newText, aggressiveChecks); } else { // Check if the element intersects the change range. If it does, then it is not From d37fdfe213a64105e7ce41797b202a7f81e9d878 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 9 Feb 2015 14:12:32 -0800 Subject: [PATCH 30/39] Add additional asserts. --- src/compiler/parser.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index d58a9f15105..3d512a88e56 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -508,6 +508,7 @@ module ts { return; function visitNode(child: IncrementalNode) { + Debug.assert(child.pos <= child.end); if (child.pos > changeRangeOldEnd) { // Node is entirely past the change range. We need to move both its pos and // end, forward or backward appropriately. @@ -531,9 +532,11 @@ module ts { } // Otherwise, the node is entirely before the change range. No need to do anything with it. + Debug.assert(fullEnd < changeStart); } function visitArray(array: IncrementalNodeArray) { + Debug.assert(array.pos <= array.end); if (array.pos > changeRangeOldEnd) { // Array is entirely after the change range. We need to move it, and move any of // its children. From e417f3016b9c5aae660491b5ae6a7c67d12fa648 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 9 Feb 2015 14:23:55 -0800 Subject: [PATCH 31/39] Add additional asserts, and make code more unified. --- src/compiler/parser.ts | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 3d512a88e56..e99b8e71c5e 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -400,6 +400,7 @@ module ts { } function visitArray(array: IncrementalNodeArray) { + array._children = undefined; array.pos += delta; array.end += delta; @@ -412,6 +413,7 @@ module ts { function adjustIntersectingElement(element: IncrementalElement, changeStart: number, changeRangeOldEnd: number, changeRangeNewEnd: number, delta: number) { Debug.assert(element.end >= changeStart, "Adjusting an element that was entirely before the change range"); Debug.assert(element.pos <= changeRangeOldEnd, "Adjusting an element that was entirely after the change range"); + Debug.assert(element.pos <= element.end); // We have an element that intersects the change range in some way. It may have its // start, or its end (or both) in the changed range. We want to adjust any part @@ -522,6 +524,7 @@ module ts { var fullEnd = child.end; if (fullEnd >= changeStart) { child.intersectsChange = true; + child._children = undefined; // Adjust the pos or end (or both) of the intersecting element accordingly. adjustIntersectingElement(child, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); @@ -541,25 +544,27 @@ module ts { // Array is entirely after the change range. We need to move it, and move any of // its children. moveElementEntirelyPastChangeRange(array, /*isArray:*/ true, delta, oldText, newText, aggressiveChecks); + return; } - else { - // Check if the element intersects the change range. If it does, then it is not - // reusable. Also, we'll need to recurse to see what constituent portions we may - // be able to use. - var fullEnd = array.end; - if (fullEnd >= changeStart) { - array.intersectsChange = true; - // Adjust the pos or end (or both) of the intersecting array accordingly. - adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); - for (var i = 0, n = array.length; i < n; i++) { - visitNode(array[i]); - } + // Check if the element intersects the change range. If it does, then it is not + // reusable. Also, we'll need to recurse to see what constituent portions we may + // be able to use. + var fullEnd = array.end; + if (fullEnd >= changeStart) { + array.intersectsChange = true; + array._children = undefined; + + // Adjust the pos or end (or both) of the intersecting array accordingly. + adjustIntersectingElement(array, changeStart, changeRangeOldEnd, changeRangeNewEnd, delta); + for (var i = 0, n = array.length; i < n; i++) { + visitNode(array[i]); } - // else { - // Otherwise, the array is entirely before the change range. No need to do anything with it. - // } + return; } + + // Otherwise, the array is entirely before the change range. No need to do anything with it. + Debug.assert(fullEnd < changeStart); } } From a79e8e928be3a4847508959799acfc3a47b2b70a Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 9 Feb 2015 14:34:47 -0800 Subject: [PATCH 32/39] Remove code duplication in isModuleElement. --- src/compiler/parser.ts | 27 ++++----------------------- 1 file changed, 4 insertions(+), 23 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index e99b8e71c5e..8f7f68d9b6d 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1657,8 +1657,8 @@ module ts { return result; } - function parseListElement(kind: ParsingContext, parseElement: () => T): T { - var node = currentNode(kind); + function parseListElement(parsingContext: ParsingContext, parseElement: () => T): T { + var node = currentNode(parsingContext); if (node) { return consumeNode(node); } @@ -1815,29 +1815,10 @@ module ts { case SyntaxKind.InterfaceDeclaration: case SyntaxKind.ModuleDeclaration: case SyntaxKind.EnumDeclaration: - - // Keep in sync with isStatement: - case SyntaxKind.FunctionDeclaration: - case SyntaxKind.VariableStatement: - case SyntaxKind.Block: - case SyntaxKind.IfStatement: - case SyntaxKind.ExpressionStatement: - case SyntaxKind.ThrowStatement: - case SyntaxKind.ReturnStatement: - case SyntaxKind.SwitchStatement: - case SyntaxKind.BreakStatement: - case SyntaxKind.ContinueStatement: - case SyntaxKind.ForInStatement: - case SyntaxKind.ForStatement: - case SyntaxKind.WhileStatement: - case SyntaxKind.WithStatement: - case SyntaxKind.EmptyStatement: - case SyntaxKind.TryStatement: - case SyntaxKind.LabeledStatement: - case SyntaxKind.DoStatement: - case SyntaxKind.DebuggerStatement: return true; } + + return isReusableStatement(node); } return false; From 17dd6c2de01b4ded0d7afeec39d19f13c0e858a2 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 9 Feb 2015 14:40:03 -0800 Subject: [PATCH 33/39] Be more conservative about reusing parameters. --- src/compiler/parser.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index 8f7f68d9b6d..cd0d86bed46 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -1924,9 +1924,13 @@ module ts { } function isReusableParameter(node: Node) { - // TODO: this most likely needs the same initializer check that - // isReusableVariableDeclaration has. - return node.kind === SyntaxKind.Parameter; + if (node.kind !== SyntaxKind.Parameter) { + return false; + } + + // See the comment in isReusableVariableDeclaration for why we do this. + var parameter = node; + return parameter.initializer === undefined; } // Returns true if we should abort parsing. From 2eb1a213c724bcf429134d09795f8d2bfcf724e6 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 9 Feb 2015 14:55:54 -0800 Subject: [PATCH 34/39] Prevent index out of bounds exception. --- src/compiler/parser.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index cd0d86bed46..a1dc0ef7b1d 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -850,7 +850,7 @@ module ts { // Much of the time the parser will need the very next node in the array that // we just returned a node from.So just simply check for that case and move // forward in the array instead of searching for the node again. - if (current && current.end === position && currentArrayIndex < currentArray.length) { + if (current && current.end === position && currentArrayIndex < (currentArray.length - 1)) { currentArrayIndex++; current = currentArray[currentArrayIndex]; } @@ -886,6 +886,7 @@ module ts { // Recurse into the source file to find the highest node at this position. forEachChild(sourceFile, visitNode, visitArray); + return; function visitNode(node: Node) { if (position >= node.pos && position < node.end) { From 11d19e30190111bde271bf8febc85afe2952d09d Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 9 Feb 2015 17:03:46 -0800 Subject: [PATCH 35/39] Fix issue with cancellation corrupting LS state. The problem here was as follows: 1) Host calls into the LS to do some sort of operation. 2) LS tries to synchronize with the host. 3) During synchronization we attempt to create a new program. 4) Creating the new program causes us to incrementally update some source files. 5) Incrementally updating a source file produces a new source file, and invalidates the old one. 6) *Then* the host asks to cancel this operation. 7) THe synchronization process cancels itself, leaving the LS in an inconsistent state where some of its source files have had their trees updated, but the information about the source file still thinks that we have the previous version. The fix is to not allow cancellation during host synchronization. Once we start, we have to go all the way to completion. --- src/services/services.ts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/services/services.ts b/src/services/services.ts index 56e68b2f5a1..eda3a4aeff6 100644 --- a/src/services/services.ts +++ b/src/services/services.ts @@ -2022,6 +2022,12 @@ module ts { return; } + // IMPORTANT - It is critical from this moment onward that we do not check + // cancellation tokens. We are about to mutate source files from a previous program + // instance. If we cancel midway through, we may end up in an inconsistent state where + // the program points to old source files that have been invalidated because of + // incremental parsing. + var oldSettings = program && program.getCompilerOptions(); var newSettings = hostCache.compilationSettings(); var changesInCompilationSettingsAffectSyntax = oldSettings && oldSettings.target !== newSettings.target; @@ -2056,8 +2062,6 @@ module ts { return; function getOrCreateSourceFile(fileName: string): SourceFile { - cancellationToken.throwIfCancellationRequested(); - // The program is asking for this file, check first if the host can locate it. // If the host can not locate the file, then it does not exist. return undefined // to the program to allow reporting of errors for missing files. @@ -5363,9 +5367,6 @@ module ts { cancellationToken.throwIfCancellationRequested(); var fileContents = sourceFile.text; - - cancellationToken.throwIfCancellationRequested(); - var result: TodoComment[] = []; if (descriptors.length > 0) { From b86ef44e59053e2c41fa40579454ac1933adab61 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 9 Feb 2015 17:24:01 -0800 Subject: [PATCH 36/39] Add assert that clients do not try to call updateSourceFile multiple times on a source file. --- src/compiler/parser.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/compiler/parser.ts b/src/compiler/parser.ts index a1dc0ef7b1d..06db869ad54 100644 --- a/src/compiler/parser.ts +++ b/src/compiler/parser.ts @@ -736,6 +736,16 @@ module ts { return parseSourceFile(sourceFile.fileName, newText, sourceFile.languageVersion, /*syntaxCursor*/ undefined, /*setNodeParents*/ true) } + // Make sure we're not trying to incrementally update a source file more than once. Once + // we do an update the original source file is considered unusbale from that point onwards. + // + // This is because we do incremental parsing in-place. i.e. we take nodes from the old + // tree and give them new positions and parents. From that point on, trusting the old + // tree at all is not possible as far too much of it may violate invariants. + var incrementalSourceFile = sourceFile; + Debug.assert(!incrementalSourceFile.hasBeenIncrementallyParsed); + incrementalSourceFile.hasBeenIncrementallyParsed = true; + var oldText = sourceFile.text; var syntaxCursor = createSyntaxCursor(sourceFile); @@ -774,7 +784,7 @@ module ts { // // Also, mark any syntax elements that intersect the changed span. We know, up front, // that we cannot reuse these elements. - updateTokenPositionsAndMarkElements(sourceFile, + updateTokenPositionsAndMarkElements(incrementalSourceFile, changeRange.span.start, textSpanEnd(changeRange.span), textSpanEnd(textChangeRangeNewSpan(changeRange)), delta, oldText, newText, aggressiveChecks); // Now that we've set up our internal incremental state just proceed and parse the @@ -815,6 +825,7 @@ module ts { } interface IncrementalNode extends Node, IncrementalElement { + hasBeenIncrementallyParsed: boolean } interface IncrementalNodeArray extends NodeArray, IncrementalElement { From f29d931bd95f12c35e971592161c6e3c479e3f18 Mon Sep 17 00:00:00 2001 From: Vladimir Matveev Date: Tue, 10 Feb 2015 13:36:24 -0800 Subject: [PATCH 37/39] disallow let to be used as name in let\const in ES6 --- src/compiler/checker.ts | 25 ++++++++++++++++++- .../diagnosticInformationMap.generated.ts | 1 + src/compiler/diagnosticMessages.json | 4 +++ .../letInLetOrConstDeclarations.errors.txt | 23 +++++++++++++++++ .../reference/letInLetOrConstDeclarations.js | 25 +++++++++++++++++++ .../compiler/letInLetOrConstDeclarations.ts | 12 +++++++++ 6 files changed, 89 insertions(+), 1 deletion(-) create mode 100644 tests/baselines/reference/letInLetOrConstDeclarations.errors.txt create mode 100644 tests/baselines/reference/letInLetOrConstDeclarations.js create mode 100644 tests/cases/compiler/letInLetOrConstDeclarations.ts diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 39dd49176b6..cccd74e3907 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -10916,9 +10916,32 @@ module ts { } } } + + var checkLetConstNames = languageVersion >= ScriptTarget.ES6 && (isLet(node) || isConst(node)); + + // 1. LexicalDeclaration : LetOrConst BindingList ; + // It is a Syntax Error if the BoundNames of BindingList contains "let". + // 2. ForDeclaration: ForDeclaration : LetOrConst ForBinding + // It is a Syntax Error if the BoundNames of ForDeclaration contains "let". + // It is a SyntaxError if a VariableDeclaration or VariableDeclarationNoIn occurs within strict code // and its Identifier is eval or arguments - return checkGrammarEvalOrArgumentsInStrictMode(node, node.name); + return (checkLetConstNames && checkGrammarNameInLetOrConstDeclarations(node.name)) || + checkGrammarEvalOrArgumentsInStrictMode(node, node.name); + } + + function checkGrammarNameInLetOrConstDeclarations(name: Identifier | BindingPattern): boolean { + if (name.kind === SyntaxKind.Identifier) { + if ((name).text === "let") { + return grammarErrorOnNode(name, Diagnostics.let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations); + } + } + else { + var elements = (name).elements; + for (var i = 0; i < elements.length; ++i) { + checkGrammarNameInLetOrConstDeclarations(elements[i].name); + } + } } function checkGrammarVariableDeclarationList(declarationList: VariableDeclarationList): boolean { diff --git a/src/compiler/diagnosticInformationMap.generated.ts b/src/compiler/diagnosticInformationMap.generated.ts index a0e323dca1c..6c79578e41c 100644 --- a/src/compiler/diagnosticInformationMap.generated.ts +++ b/src/compiler/diagnosticInformationMap.generated.ts @@ -380,6 +380,7 @@ module ts { const_enum_member_initializer_was_evaluated_to_a_non_finite_value: { code: 4086, category: DiagnosticCategory.Error, key: "'const' enum member initializer was evaluated to a non-finite value." }, const_enum_member_initializer_was_evaluated_to_disallowed_value_NaN: { code: 4087, category: DiagnosticCategory.Error, key: "'const' enum member initializer was evaluated to disallowed value 'NaN'." }, Property_0_does_not_exist_on_const_enum_1: { code: 4088, category: DiagnosticCategory.Error, key: "Property '{0}' does not exist on 'const' enum '{1}'." }, + let_is_not_allowed_to_be_used_as_a_name_in_let_or_const_declarations: { code: 4089, category: DiagnosticCategory.Error, key: "'let' is not allowed to be used as a name in 'let' or 'const' declarations." }, The_current_host_does_not_support_the_0_option: { code: 5001, category: DiagnosticCategory.Error, key: "The current host does not support the '{0}' option." }, Cannot_find_the_common_subdirectory_path_for_the_input_files: { code: 5009, category: DiagnosticCategory.Error, key: "Cannot find the common subdirectory path for the input files." }, Cannot_read_file_0_Colon_1: { code: 5012, category: DiagnosticCategory.Error, key: "Cannot read file '{0}': {1}" }, diff --git a/src/compiler/diagnosticMessages.json b/src/compiler/diagnosticMessages.json index 69db958075f..8a5d8d80427 100644 --- a/src/compiler/diagnosticMessages.json +++ b/src/compiler/diagnosticMessages.json @@ -1513,6 +1513,10 @@ "category": "Error", "code": 4088 }, + "'let' is not allowed to be used as a name in 'let' or 'const' declarations.": { + "category": "Error", + "code": 4089 + }, "The current host does not support the '{0}' option.": { "category": "Error", "code": 5001 diff --git a/tests/baselines/reference/letInLetOrConstDeclarations.errors.txt b/tests/baselines/reference/letInLetOrConstDeclarations.errors.txt new file mode 100644 index 00000000000..93dc307fc85 --- /dev/null +++ b/tests/baselines/reference/letInLetOrConstDeclarations.errors.txt @@ -0,0 +1,23 @@ +tests/cases/compiler/letInLetOrConstDeclarations.ts(2,9): error TS4089: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetOrConstDeclarations.ts(3,14): error TS4089: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. +tests/cases/compiler/letInLetOrConstDeclarations.ts(6,11): error TS4089: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + + +==== tests/cases/compiler/letInLetOrConstDeclarations.ts (3 errors) ==== + { + let let = 1; // should error + ~~~ +!!! error TS4089: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + for (let let in []) { } // should error + ~~~ +!!! error TS4089: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + } + { + const let = 1; // should error + ~~~ +!!! error TS4089: 'let' is not allowed to be used as a name in 'let' or 'const' declarations. + } + { + function let() { // should be ok + } + } \ No newline at end of file diff --git a/tests/baselines/reference/letInLetOrConstDeclarations.js b/tests/baselines/reference/letInLetOrConstDeclarations.js new file mode 100644 index 00000000000..ee23abc4e4f --- /dev/null +++ b/tests/baselines/reference/letInLetOrConstDeclarations.js @@ -0,0 +1,25 @@ +//// [letInLetOrConstDeclarations.ts] +{ + let let = 1; // should error + for (let let in []) { } // should error +} +{ + const let = 1; // should error +} +{ + function let() { // should be ok + } +} + +//// [letInLetOrConstDeclarations.js] +{ + let let = 1; // should error + for (let let in []) { } // should error +} +{ + const let = 1; // should error +} +{ + function let() { + } +} diff --git a/tests/cases/compiler/letInLetOrConstDeclarations.ts b/tests/cases/compiler/letInLetOrConstDeclarations.ts new file mode 100644 index 00000000000..c622759a459 --- /dev/null +++ b/tests/cases/compiler/letInLetOrConstDeclarations.ts @@ -0,0 +1,12 @@ +// @target: es6 +{ + let let = 1; // should error + for (let let in []) { } // should error +} +{ + const let = 1; // should error +} +{ + function let() { // should be ok + } +} \ No newline at end of file From 3523233ae6e2ef4b6c3b4b2d9507875a4ce3f21c Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Tue, 10 Feb 2015 14:59:20 -0800 Subject: [PATCH 38/39] Rewrite named imports to reference properties on module instance --- src/compiler/checker.ts | 162 +++++++++++++++++++++++++++++--------- src/compiler/emitter.ts | 62 ++++++--------- src/compiler/types.ts | 7 +- src/compiler/utilities.ts | 6 ++ 4 files changed, 157 insertions(+), 80 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 61cf3298fd8..51ea422ee8b 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -10141,62 +10141,149 @@ module ts { function isUniqueLocalName(name: string, container: Node): boolean { for (var node = container; isNodeDescendentOf(node, container); node = node.nextContainer) { if (node.locals && hasProperty(node.locals, name)) { - var symbolWithRelevantName = node.locals[name]; - if (symbolWithRelevantName.flags & (SymbolFlags.Value | SymbolFlags.ExportValue)) { + // We conservatively include import symbols to cover cases where they're emitted as locals + if (node.locals[name].flags & (SymbolFlags.Value | SymbolFlags.ExportValue | SymbolFlags.Import)) { return false; } - - // An import can be emitted too, if it is referenced as a value. - // Make sure the name in question does not collide with an import. - if (symbolWithRelevantName.flags & SymbolFlags.Import) { - var importEqualsDeclarationWithRelevantName = getDeclarationOfKind(symbolWithRelevantName, SyntaxKind.ImportEqualsDeclaration); - if (isReferencedImportDeclaration(importEqualsDeclarationWithRelevantName)) { - return false; - } - } } } return true; } - function getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string { - var links = getNodeLinks(container); - if (!links.localModuleName) { - var prefix = ""; - var name = unescapeIdentifier(container.name.text); - while (!isUniqueLocalName(escapeIdentifier(prefix + name), container)) { - prefix += "_"; - } - links.localModuleName = prefix + getTextOfNode(container.name); + function getGeneratedNamesForSourceFile(sourceFile: SourceFile): Map { + var links = getNodeLinks(sourceFile); + var generatedNames = links.generatedNames; + if (!generatedNames) { + generatedNames = links.generatedNames = {}; + generateNames(sourceFile); + } + return generatedNames; + + function generateNames(node: Node) { + switch (node.kind) { + case SyntaxKind.ModuleDeclaration: + generateNameForModuleOrEnum(node); + generateNames((node).body); + break; + case SyntaxKind.EnumDeclaration: + generateNameForModuleOrEnum(node); + break; + case SyntaxKind.ImportDeclaration: + generateNameForImportDeclaration(node); + break; + case SyntaxKind.SourceFile: + case SyntaxKind.ModuleBlock: + forEach((node).statements, generateNames); + break; + } + } + + function isExistingName(name: string) { + return hasProperty(sourceFile.identifiers, name) || hasProperty(generatedNames, name); + } + + function makeUniqueName(baseName: string): string { + // First try '_name' + if (baseName.charCodeAt(0) !== CharacterCodes._) { + var baseName = "_" + baseName; + if (!isExistingName(baseName)) { + return baseName; + } + } + // Find the first unique '_name_n', where n is a positive number + if (baseName.charCodeAt(baseName.length - 1) !== CharacterCodes._) { + baseName += "_"; + } + var i = 1; + while (true) { + name = baseName + i; + if (!isExistingName(name)) { + return name; + } + i++; + } + } + + function assignGeneratedName(node: Node, name: string) { + generatedNames[name] = name; + getNodeLinks(node).generatedName = unescapeIdentifier(name); + } + + function generateNameForModuleOrEnum(node: ModuleDeclaration | EnumDeclaration) { + if (node.name.kind === SyntaxKind.Identifier) { + var name = node.name.text; + // Use module/enum name itself if it is unique, otherwise make a unique variation + assignGeneratedName(node, isUniqueLocalName(name, node) ? name : makeUniqueName(name)); + } + } + + function generateNameForImportDeclaration(node: ImportDeclaration) { + if (node.importClause && node.importClause.namedBindings && node.importClause.namedBindings.kind === SyntaxKind.NamedImports) { + var expr = getImportedModuleName(node); + var baseName = expr.kind === SyntaxKind.StringLiteral ? + escapeIdentifier(makeIdentifierFromModuleName((expr).text)) : "module"; + assignGeneratedName(node, makeUniqueName(baseName)); + } } - return links.localModuleName; } - function getLocalNameForSymbol(symbol: Symbol, location: Node): string { + function getGeneratedNameForNode(node: ModuleDeclaration | EnumDeclaration | ImportDeclaration) { + var links = getNodeLinks(node); + if (!links.generatedName) { + getGeneratedNamesForSourceFile(getSourceFile(node)); + } + return links.generatedName; + } + + function getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string { + return getGeneratedNameForNode(container); + } + + function getLocalNameForImportDeclaration(node: ImportDeclaration): string { + return getGeneratedNameForNode(node); + } + + function getImportNameSubstitution(symbol: Symbol): string { + var declaration = getDeclarationOfImportSymbol(symbol); + if (declaration && declaration.kind === SyntaxKind.ImportSpecifier) { + var moduleName = getGeneratedNameForNode(declaration.parent.parent.parent); + var propertyName = (declaration).propertyName || (declaration).name; + return moduleName + "." + unescapeIdentifier(propertyName.text); + } + } + + function getExportNameSubstitution(symbol: Symbol, location: Node): string { + if (isExternalModuleSymbol(symbol.parent)) { + return "exports." + unescapeIdentifier(symbol.name); + } var node = location; + var containerSymbol = getParentOfSymbol(symbol); while (node) { - if ((node.kind === SyntaxKind.ModuleDeclaration || node.kind === SyntaxKind.EnumDeclaration) && getSymbolOfNode(node) === symbol) { - return getLocalNameOfContainer(node); + if ((node.kind === SyntaxKind.ModuleDeclaration || node.kind === SyntaxKind.EnumDeclaration) && getSymbolOfNode(node) === containerSymbol) { + return getGeneratedNameForNode(node) + "." + unescapeIdentifier(symbol.name); } node = node.parent; } - Debug.fail("getLocalNameForSymbol failed"); } - function getExpressionNamePrefix(node: Identifier): string { + function getExpressionNameSubstitution(node: Identifier): string { var symbol = getNodeLinks(node).resolvedSymbol; if (symbol) { - // In general, we need to prefix an identifier with its parent name if it references - // an exported entity from another module declaration. If we reference an exported - // entity within the same module declaration, then whether we prefix depends on the - // kind of entity. SymbolFlags.ExportHasLocal encompasses all the kinds that we - // do NOT prefix. + // Whan an identifier resolves to a parented symbol, it references an exported entity from + // another declaration of the same internal module. + if (symbol.parent) { + return getExportNameSubstitution(symbol, node.parent); + } + // If we reference an exported entity within the same module declaration, then whether + // we prefix depends on the kind of entity. SymbolFlags.ExportHasLocal encompasses all the + // kinds that we do NOT prefix. var exportSymbol = getExportSymbolOfValueSymbolIfExported(symbol); if (symbol !== exportSymbol && !(exportSymbol.flags & SymbolFlags.ExportHasLocal)) { - symbol = exportSymbol; + return getExportNameSubstitution(exportSymbol, node.parent); } - if (symbol.parent) { - return isExternalModuleSymbol(symbol.parent) ? "exports" : getLocalNameForSymbol(getParentOfSymbol(symbol), node.parent); + // Named imports from ES6 import declarations are rewritten + if (symbol.flags & SymbolFlags.Import) { + return getImportNameSubstitution(symbol); } } } @@ -10302,13 +10389,14 @@ module ts { } function isUnknownIdentifier(location: Node, name: string): boolean { - return !resolveName(location, name, SymbolFlags.Value, /*nodeNotFoundMessage*/ undefined, /*nameArg*/ undefined); + return !resolveName(location, name, SymbolFlags.Value, /*nodeNotFoundMessage*/ undefined, /*nameArg*/ undefined) && + !hasProperty(getGeneratedNamesForSourceFile(getSourceFile(location)), name); } function createResolver(): EmitResolver { return { - getLocalNameOfContainer, - getExpressionNamePrefix, + getGeneratedNameForNode, + getExpressionNameSubstitution, getExportAssignmentName, isReferencedImportDeclaration, getNodeCheckFlags, diff --git a/src/compiler/emitter.ts b/src/compiler/emitter.ts index 1ac305cf055..84b033ea94b 100644 --- a/src/compiler/emitter.ts +++ b/src/compiler/emitter.ts @@ -20,7 +20,6 @@ module ts { importNode: ImportDeclaration | ImportEqualsDeclaration; declarationNode?: ImportEqualsDeclaration | ImportClause | NamespaceImport; namedImports?: NamedImports; - tempName?: Identifier; // Temporary name for module instance } interface SymbolAccessibilityDiagnostic { @@ -2338,12 +2337,13 @@ module ts { } function emitExpressionIdentifier(node: Identifier) { - var prefix = resolver.getExpressionNamePrefix(node); - if (prefix) { - write(prefix); - write("."); + var substitution = resolver.getExpressionNameSubstitution(node); + if (substitution) { + write(substitution); + } + else { + writeTextOfNode(currentSourceFile, node); } - writeTextOfNode(currentSourceFile, node); } function emitIdentifier(node: Identifier) { @@ -2526,7 +2526,7 @@ module ts { // export var obj = { y }; // } // The short-hand property in obj need to emit as such ... = { y : m.y } regardless of the TargetScript version - if (languageVersion < ScriptTarget.ES6 || resolver.getExpressionNamePrefix(node.name)) { + if (languageVersion < ScriptTarget.ES6 || resolver.getExpressionNameSubstitution(node.name)) { // Emit identifier as an identifier write(": "); // Even though this is stored as identifier treat it as an expression @@ -2964,7 +2964,7 @@ module ts { emitStart(node.name); if (getCombinedNodeFlags(node) & NodeFlags.Export) { var container = getContainingModule(node); - write(container ? resolver.getLocalNameOfContainer(container) : "exports"); + write(container ? resolver.getGeneratedNameForNode(container) : "exports"); write("."); } emitNode(node.name); @@ -3771,7 +3771,7 @@ module ts { emitStart(node); write("(function ("); emitStart(node.name); - write(resolver.getLocalNameOfContainer(node)); + write(resolver.getGeneratedNameForNode(node)); emitEnd(node.name); write(") {"); increaseIndent(); @@ -3802,9 +3802,9 @@ module ts { function emitEnumMember(node: EnumMember) { var enumParent = node.parent; emitStart(node); - write(resolver.getLocalNameOfContainer(enumParent)); + write(resolver.getGeneratedNameForNode(enumParent)); write("["); - write(resolver.getLocalNameOfContainer(enumParent)); + write(resolver.getGeneratedNameForNode(enumParent)); write("["); emitExpressionForPropertyName(node.name); write("] = "); @@ -3860,7 +3860,7 @@ module ts { emitStart(node); write("(function ("); emitStart(node.name); - write(resolver.getLocalNameOfContainer(node)); + write(resolver.getGeneratedNameForNode(node)); emitEnd(node.name); write(") "); if (node.body.kind === SyntaxKind.ModuleBlock) { @@ -3918,23 +3918,6 @@ module ts { emitRequire(moduleName); } - function emitNamedImportAssignments(namedImports: NamedImports, moduleReference: Identifier) { - var elements = namedImports.elements; - for (var i = 0; i < elements.length; i++) { - var element = elements[i]; - if (resolver.isReferencedImportDeclaration(element)) { - writeLine(); - if (!(element.flags & NodeFlags.Export)) write("var "); - emitModuleMemberName(element); - write(" = "); - emit(moduleReference); - write("."); - emit(element.propertyName || element.name); - write(";"); - } - } - } - function emitImportDeclaration(node: ImportDeclaration | ImportEqualsDeclaration) { var info = getExternalImportInfo(node); if (info) { @@ -3943,7 +3926,7 @@ module ts { if (compilerOptions.module !== ModuleKind.AMD) { emitLeadingComments(node); emitStart(node); - var moduleName = getImportedModuleName(info.importNode); + var moduleName = getImportedModuleName(node); if (declarationNode) { if (!(declarationNode.flags & NodeFlags.Export)) write("var "); emitModuleMemberName(declarationNode); @@ -3952,10 +3935,9 @@ module ts { } else if (namedImports) { write("var "); - emit(info.tempName); + write(resolver.getGeneratedNameForNode(node)); write(" = "); emitRequire(moduleName); - emitNamedImportAssignments(namedImports, info.tempName); } else { emitRequire(moduleName); @@ -3972,9 +3954,6 @@ module ts { write(";"); } } - else if (namedImports) { - emitNamedImportAssignments(namedImports, info.tempName); - } } } } @@ -4027,7 +4006,8 @@ module ts { } return { importNode: node, - namedImports: importClause.namedBindings + namedImports: importClause.namedBindings, + localName: resolver.getGeneratedNameForNode(node) }; } return { @@ -4042,9 +4022,6 @@ module ts { var info = createExternalImportInfo(node); if (info) { if ((!info.declarationNode && !info.namedImports) || resolver.isReferencedImportDeclaration(node)) { - if (!info.declarationNode) { - info.tempName = createTempVariable(sourceFile); - } externalImports.push(info); } } @@ -4095,7 +4072,12 @@ module ts { write("], function (require, exports"); forEach(externalImports, info => { write(", "); - emit(info.declarationNode ? info.declarationNode.name : info.tempName); + if (info.declarationNode) { + emit(info.declarationNode.name); + } + else { + write(resolver.getGeneratedNameForNode(info.importNode)); + } }); write(") {"); increaseIndent(); diff --git a/src/compiler/types.ts b/src/compiler/types.ts index d50b4bcf335..eb28e2ddacd 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -1163,8 +1163,8 @@ module ts { } export interface EmitResolver { - getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; - getExpressionNamePrefix(node: Identifier): string; + getGeneratedNameForNode(node: ModuleDeclaration | EnumDeclaration | ImportDeclaration): string; + getExpressionNameSubstitution(node: Identifier): string; getExportAssignmentName(node: SourceFile): string; isReferencedImportDeclaration(node: Node): boolean; isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean; @@ -1312,7 +1312,8 @@ module ts { enumMemberValue?: number; // Constant value of enum member isIllegalTypeReferenceInConstraint?: boolean; // Is type reference in constraint refers to the type parameter from the same list isVisible?: boolean; // Is this node visible - localModuleName?: string; // Local name for module instance + generatedName?: string; // Generated name for module, enum, or import declaration + generatedNames?: Map; // Generated names table for source file assignmentChecks?: Map; // Cache of assignment checks hasReportedStatementInAmbientContext?: boolean; // Cache boolean if we report statements in ambient context importOnRightSide?: Symbol; // for import declarations - import that appear on the right side diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 6ce615c4869..9283064d7db 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -181,6 +181,12 @@ module ts { return identifier.length >= 3 && identifier.charCodeAt(0) === CharacterCodes._ && identifier.charCodeAt(1) === CharacterCodes._ && identifier.charCodeAt(2) === CharacterCodes._ ? identifier.substr(1) : identifier; } + // Make an identifier from an external module name by extracting the string after the last "/" and replacing + // all non-alphanumeric characters with underscores + export function makeIdentifierFromModuleName(moduleName: string): string { + return getBaseFileName(moduleName).replace(/\W/g, "_"); + } + // Return display name of an identifier // Computed property names will just be emitted as "[]", where is the source // text of the expression in the computed property. From bbab04e64e60dc744d13192e3347be2910aa531d Mon Sep 17 00:00:00 2001 From: Anders Hejlsberg Date: Tue, 10 Feb 2015 15:03:28 -0800 Subject: [PATCH 39/39] Accepting new baselines --- .../baselines/reference/APISample_compile.js | 7 ++- .../reference/APISample_compile.types | 19 +++--- tests/baselines/reference/APISample_linter.js | 7 ++- .../reference/APISample_linter.types | 19 +++--- .../reference/APISample_transform.js | 7 ++- .../reference/APISample_transform.types | 19 +++--- .../baselines/reference/APISample_watcher.js | 7 ++- .../reference/APISample_watcher.types | 19 +++--- ...lisionCodeGenModuleWithAccessorChildren.js | 8 +-- ...ionCodeGenModuleWithConstructorChildren.js | 8 +-- ...lisionCodeGenModuleWithFunctionChildren.js | 8 +-- ...ionCodeGenModuleWithMemberClassConflict.js | 6 +- ...ollisionCodeGenModuleWithMethodChildren.js | 8 +-- ...ollisionCodeGenModuleWithModuleChildren.js | 12 ++-- .../es6ImportNamedImportParsingError.js | 5 +- .../baselines/reference/escapedIdentifiers.js | 4 +- .../isDeclarationVisibleNodeKinds.js | 28 ++++----- ...haresNameWithImportDeclarationInsideIt5.js | 4 +- ...haresNameWithImportDeclarationInsideIt6.js | 4 +- tests/baselines/reference/nameCollision.js | 12 ++-- .../reference/privacyGloImportParseErrors.js | 2 +- .../reference/privacyImportParseErrors.js | 4 +- .../reference/recursiveClassReferenceTest.js | 4 +- .../recursiveClassReferenceTest.js.map | 2 +- .../recursiveClassReferenceTest.sourcemap.txt | 61 +++++++++---------- 25 files changed, 153 insertions(+), 131 deletions(-) diff --git a/tests/baselines/reference/APISample_compile.js b/tests/baselines/reference/APISample_compile.js index 5c74f2fa688..0186edfdf1d 100644 --- a/tests/baselines/reference/APISample_compile.js +++ b/tests/baselines/reference/APISample_compile.js @@ -902,8 +902,8 @@ declare module "typescript" { errorModuleName?: string; } interface EmitResolver { - getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; - getExpressionNamePrefix(node: Identifier): string; + getGeneratedNameForNode(node: ModuleDeclaration | EnumDeclaration | ImportDeclaration): string; + getExpressionNameSubstitution(node: Identifier): string; getExportAssignmentName(node: SourceFile): string; isReferencedImportDeclaration(node: Node): boolean; isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean; @@ -1028,7 +1028,8 @@ declare module "typescript" { enumMemberValue?: number; isIllegalTypeReferenceInConstraint?: boolean; isVisible?: boolean; - localModuleName?: string; + generatedName?: string; + generatedNames?: Map; assignmentChecks?: Map; hasReportedStatementInAmbientContext?: boolean; importOnRightSide?: Symbol; diff --git a/tests/baselines/reference/APISample_compile.types b/tests/baselines/reference/APISample_compile.types index aebe5ea695a..7860dd31c7f 100644 --- a/tests/baselines/reference/APISample_compile.types +++ b/tests/baselines/reference/APISample_compile.types @@ -2882,14 +2882,15 @@ declare module "typescript" { interface EmitResolver { >EmitResolver : EmitResolver - getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; ->getLocalNameOfContainer : (container: EnumDeclaration | ModuleDeclaration) => string ->container : EnumDeclaration | ModuleDeclaration + getGeneratedNameForNode(node: ModuleDeclaration | EnumDeclaration | ImportDeclaration): string; +>getGeneratedNameForNode : (node: EnumDeclaration | ModuleDeclaration | ImportDeclaration) => string +>node : EnumDeclaration | ModuleDeclaration | ImportDeclaration >ModuleDeclaration : ModuleDeclaration >EnumDeclaration : EnumDeclaration +>ImportDeclaration : ImportDeclaration - getExpressionNamePrefix(node: Identifier): string; ->getExpressionNamePrefix : (node: Identifier) => string + getExpressionNameSubstitution(node: Identifier): string; +>getExpressionNameSubstitution : (node: Identifier) => string >node : Identifier >Identifier : Identifier @@ -3313,8 +3314,12 @@ declare module "typescript" { isVisible?: boolean; >isVisible : boolean - localModuleName?: string; ->localModuleName : string + generatedName?: string; +>generatedName : string + + generatedNames?: Map; +>generatedNames : Map +>Map : Map assignmentChecks?: Map; >assignmentChecks : Map diff --git a/tests/baselines/reference/APISample_linter.js b/tests/baselines/reference/APISample_linter.js index 8b40586e88b..3b4ddd6f77d 100644 --- a/tests/baselines/reference/APISample_linter.js +++ b/tests/baselines/reference/APISample_linter.js @@ -933,8 +933,8 @@ declare module "typescript" { errorModuleName?: string; } interface EmitResolver { - getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; - getExpressionNamePrefix(node: Identifier): string; + getGeneratedNameForNode(node: ModuleDeclaration | EnumDeclaration | ImportDeclaration): string; + getExpressionNameSubstitution(node: Identifier): string; getExportAssignmentName(node: SourceFile): string; isReferencedImportDeclaration(node: Node): boolean; isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean; @@ -1059,7 +1059,8 @@ declare module "typescript" { enumMemberValue?: number; isIllegalTypeReferenceInConstraint?: boolean; isVisible?: boolean; - localModuleName?: string; + generatedName?: string; + generatedNames?: Map; assignmentChecks?: Map; hasReportedStatementInAmbientContext?: boolean; importOnRightSide?: Symbol; diff --git a/tests/baselines/reference/APISample_linter.types b/tests/baselines/reference/APISample_linter.types index 1bada73385f..c3e69a2fb18 100644 --- a/tests/baselines/reference/APISample_linter.types +++ b/tests/baselines/reference/APISample_linter.types @@ -3026,14 +3026,15 @@ declare module "typescript" { interface EmitResolver { >EmitResolver : EmitResolver - getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; ->getLocalNameOfContainer : (container: EnumDeclaration | ModuleDeclaration) => string ->container : EnumDeclaration | ModuleDeclaration + getGeneratedNameForNode(node: ModuleDeclaration | EnumDeclaration | ImportDeclaration): string; +>getGeneratedNameForNode : (node: EnumDeclaration | ModuleDeclaration | ImportDeclaration) => string +>node : EnumDeclaration | ModuleDeclaration | ImportDeclaration >ModuleDeclaration : ModuleDeclaration >EnumDeclaration : EnumDeclaration +>ImportDeclaration : ImportDeclaration - getExpressionNamePrefix(node: Identifier): string; ->getExpressionNamePrefix : (node: Identifier) => string + getExpressionNameSubstitution(node: Identifier): string; +>getExpressionNameSubstitution : (node: Identifier) => string >node : Identifier >Identifier : Identifier @@ -3457,8 +3458,12 @@ declare module "typescript" { isVisible?: boolean; >isVisible : boolean - localModuleName?: string; ->localModuleName : string + generatedName?: string; +>generatedName : string + + generatedNames?: Map; +>generatedNames : Map +>Map : Map assignmentChecks?: Map; >assignmentChecks : Map diff --git a/tests/baselines/reference/APISample_transform.js b/tests/baselines/reference/APISample_transform.js index 74aba68a76c..af88a03ee5c 100644 --- a/tests/baselines/reference/APISample_transform.js +++ b/tests/baselines/reference/APISample_transform.js @@ -934,8 +934,8 @@ declare module "typescript" { errorModuleName?: string; } interface EmitResolver { - getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; - getExpressionNamePrefix(node: Identifier): string; + getGeneratedNameForNode(node: ModuleDeclaration | EnumDeclaration | ImportDeclaration): string; + getExpressionNameSubstitution(node: Identifier): string; getExportAssignmentName(node: SourceFile): string; isReferencedImportDeclaration(node: Node): boolean; isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean; @@ -1060,7 +1060,8 @@ declare module "typescript" { enumMemberValue?: number; isIllegalTypeReferenceInConstraint?: boolean; isVisible?: boolean; - localModuleName?: string; + generatedName?: string; + generatedNames?: Map; assignmentChecks?: Map; hasReportedStatementInAmbientContext?: boolean; importOnRightSide?: Symbol; diff --git a/tests/baselines/reference/APISample_transform.types b/tests/baselines/reference/APISample_transform.types index 6be348b4131..288e7f53bd7 100644 --- a/tests/baselines/reference/APISample_transform.types +++ b/tests/baselines/reference/APISample_transform.types @@ -2978,14 +2978,15 @@ declare module "typescript" { interface EmitResolver { >EmitResolver : EmitResolver - getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; ->getLocalNameOfContainer : (container: EnumDeclaration | ModuleDeclaration) => string ->container : EnumDeclaration | ModuleDeclaration + getGeneratedNameForNode(node: ModuleDeclaration | EnumDeclaration | ImportDeclaration): string; +>getGeneratedNameForNode : (node: EnumDeclaration | ModuleDeclaration | ImportDeclaration) => string +>node : EnumDeclaration | ModuleDeclaration | ImportDeclaration >ModuleDeclaration : ModuleDeclaration >EnumDeclaration : EnumDeclaration +>ImportDeclaration : ImportDeclaration - getExpressionNamePrefix(node: Identifier): string; ->getExpressionNamePrefix : (node: Identifier) => string + getExpressionNameSubstitution(node: Identifier): string; +>getExpressionNameSubstitution : (node: Identifier) => string >node : Identifier >Identifier : Identifier @@ -3409,8 +3410,12 @@ declare module "typescript" { isVisible?: boolean; >isVisible : boolean - localModuleName?: string; ->localModuleName : string + generatedName?: string; +>generatedName : string + + generatedNames?: Map; +>generatedNames : Map +>Map : Map assignmentChecks?: Map; >assignmentChecks : Map diff --git a/tests/baselines/reference/APISample_watcher.js b/tests/baselines/reference/APISample_watcher.js index 79e2ac39802..d66c384627c 100644 --- a/tests/baselines/reference/APISample_watcher.js +++ b/tests/baselines/reference/APISample_watcher.js @@ -971,8 +971,8 @@ declare module "typescript" { errorModuleName?: string; } interface EmitResolver { - getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; - getExpressionNamePrefix(node: Identifier): string; + getGeneratedNameForNode(node: ModuleDeclaration | EnumDeclaration | ImportDeclaration): string; + getExpressionNameSubstitution(node: Identifier): string; getExportAssignmentName(node: SourceFile): string; isReferencedImportDeclaration(node: Node): boolean; isTopLevelValueImportEqualsWithEntityName(node: ImportEqualsDeclaration): boolean; @@ -1097,7 +1097,8 @@ declare module "typescript" { enumMemberValue?: number; isIllegalTypeReferenceInConstraint?: boolean; isVisible?: boolean; - localModuleName?: string; + generatedName?: string; + generatedNames?: Map; assignmentChecks?: Map; hasReportedStatementInAmbientContext?: boolean; importOnRightSide?: Symbol; diff --git a/tests/baselines/reference/APISample_watcher.types b/tests/baselines/reference/APISample_watcher.types index 429a63daed8..7825898dd56 100644 --- a/tests/baselines/reference/APISample_watcher.types +++ b/tests/baselines/reference/APISample_watcher.types @@ -3151,14 +3151,15 @@ declare module "typescript" { interface EmitResolver { >EmitResolver : EmitResolver - getLocalNameOfContainer(container: ModuleDeclaration | EnumDeclaration): string; ->getLocalNameOfContainer : (container: EnumDeclaration | ModuleDeclaration) => string ->container : EnumDeclaration | ModuleDeclaration + getGeneratedNameForNode(node: ModuleDeclaration | EnumDeclaration | ImportDeclaration): string; +>getGeneratedNameForNode : (node: EnumDeclaration | ModuleDeclaration | ImportDeclaration) => string +>node : EnumDeclaration | ModuleDeclaration | ImportDeclaration >ModuleDeclaration : ModuleDeclaration >EnumDeclaration : EnumDeclaration +>ImportDeclaration : ImportDeclaration - getExpressionNamePrefix(node: Identifier): string; ->getExpressionNamePrefix : (node: Identifier) => string + getExpressionNameSubstitution(node: Identifier): string; +>getExpressionNameSubstitution : (node: Identifier) => string >node : Identifier >Identifier : Identifier @@ -3582,8 +3583,12 @@ declare module "typescript" { isVisible?: boolean; >isVisible : boolean - localModuleName?: string; ->localModuleName : string + generatedName?: string; +>generatedName : string + + generatedNames?: Map; +>generatedNames : Map +>Map : Map assignmentChecks?: Map; >assignmentChecks : Map diff --git a/tests/baselines/reference/collisionCodeGenModuleWithAccessorChildren.js b/tests/baselines/reference/collisionCodeGenModuleWithAccessorChildren.js index 9db005de9b9..141ef285f03 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithAccessorChildren.js +++ b/tests/baselines/reference/collisionCodeGenModuleWithAccessorChildren.js @@ -63,14 +63,14 @@ var M; })(); })(M || (M = {})); var M; -(function (_M) { +(function (_M_1) { var d = (function () { function d() { } Object.defineProperty(d.prototype, "Z", { set: function (p) { var M = 10; - this.y = _M.x; + this.y = _M_1.x; }, enumerable: true, configurable: true @@ -94,14 +94,14 @@ var M; })(); })(M || (M = {})); var M; -(function (_M) { +(function (_M_2) { var f = (function () { function f() { } Object.defineProperty(f.prototype, "Z", { get: function () { var M = 10; - return _M.x; + return _M_2.x; }, enumerable: true, configurable: true diff --git a/tests/baselines/reference/collisionCodeGenModuleWithConstructorChildren.js b/tests/baselines/reference/collisionCodeGenModuleWithConstructorChildren.js index 33a9f97f6d1..2158a0562ea 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithConstructorChildren.js +++ b/tests/baselines/reference/collisionCodeGenModuleWithConstructorChildren.js @@ -35,21 +35,21 @@ var M; })(); })(M || (M = {})); var M; -(function (_M) { +(function (_M_1) { var d = (function () { function d(M, p) { - if (p === void 0) { p = _M.x; } + if (p === void 0) { p = _M_1.x; } this.M = M; } return d; })(); })(M || (M = {})); var M; -(function (_M) { +(function (_M_2) { var d2 = (function () { function d2() { var M = 10; - var p = _M.x; + var p = _M_2.x; } return d2; })(); diff --git a/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.js b/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.js index bb1c0e7845b..caaa6a59da5 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.js +++ b/tests/baselines/reference/collisionCodeGenModuleWithFunctionChildren.js @@ -28,17 +28,17 @@ var M; } })(M || (M = {})); var M; -(function (_M) { +(function (_M_1) { function fn2() { var M; - var p = _M.x; + var p = _M_1.x; } })(M || (M = {})); var M; -(function (_M) { +(function (_M_2) { function fn3() { function M() { - var p = _M.x; + var p = _M_2.x; } } })(M || (M = {})); diff --git a/tests/baselines/reference/collisionCodeGenModuleWithMemberClassConflict.js b/tests/baselines/reference/collisionCodeGenModuleWithMemberClassConflict.js index 3c75d2e5738..59c2ebf295d 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithMemberClassConflict.js +++ b/tests/baselines/reference/collisionCodeGenModuleWithMemberClassConflict.js @@ -27,19 +27,19 @@ var m1; })(m1 || (m1 = {})); var foo = new m1.m1(); var m2; -(function (__m2) { +(function (_m2_1) { var m2 = (function () { function m2() { } return m2; })(); - __m2.m2 = m2; + _m2_1.m2 = m2; var _m2 = (function () { function _m2() { } return _m2; })(); - __m2._m2 = _m2; + _m2_1._m2 = _m2; })(m2 || (m2 = {})); var foo = new m2.m2(); var foo = new m2._m2(); diff --git a/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.js b/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.js index 56efb2dcc02..212364ed30b 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.js +++ b/tests/baselines/reference/collisionCodeGenModuleWithMethodChildren.js @@ -46,25 +46,25 @@ var M; })(); })(M || (M = {})); var M; -(function (_M) { +(function (_M_1) { var d = (function () { function d() { } d.prototype.fn2 = function () { var M; - var p = _M.x; + var p = _M_1.x; }; return d; })(); })(M || (M = {})); var M; -(function (_M) { +(function (_M_2) { var e = (function () { function e() { } e.prototype.fn3 = function () { function M() { - var p = _M.x; + var p = _M_2.x; } }; return e; diff --git a/tests/baselines/reference/collisionCodeGenModuleWithModuleChildren.js b/tests/baselines/reference/collisionCodeGenModuleWithModuleChildren.js index ecc5fca2e9f..3c8b17deadd 100644 --- a/tests/baselines/reference/collisionCodeGenModuleWithModuleChildren.js +++ b/tests/baselines/reference/collisionCodeGenModuleWithModuleChildren.js @@ -53,7 +53,7 @@ var M; })(m1 || (m1 = {})); })(M || (M = {})); var M; -(function (_M) { +(function (_M_1) { var m2; (function (m2) { var M = (function () { @@ -61,17 +61,17 @@ var M; } return M; })(); - var p = _M.x; + var p = _M_1.x; var p2 = new M(); })(m2 || (m2 = {})); })(M || (M = {})); var M; -(function (_M) { +(function (_M_2) { var m3; (function (m3) { function M() { } - var p = _M.x; + var p = _M_2.x; var p2 = M(); })(m3 || (m3 = {})); })(M || (M = {})); @@ -84,12 +84,12 @@ var M; })(m3 || (m3 = {})); })(M || (M = {})); var M; -(function (_M) { +(function (_M_3) { var m4; (function (m4) { var M; (function (M) { - var p = _M.x; + var p = _M_3.x; })(M || (M = {})); })(m4 || (m4 = {})); })(M || (M = {})); diff --git a/tests/baselines/reference/es6ImportNamedImportParsingError.js b/tests/baselines/reference/es6ImportNamedImportParsingError.js index b1f7f2c295b..f9d8e90f707 100644 --- a/tests/baselines/reference/es6ImportNamedImportParsingError.js +++ b/tests/baselines/reference/es6ImportNamedImportParsingError.js @@ -20,10 +20,9 @@ exports.m = exports.a; from; "es6ImportNamedImportParsingError_0"; { - a; + _module_1.a; } from; "es6ImportNamedImportParsingError_0"; -var _a = require(); -var a = _a.a; +var _module_1 = require(); "es6ImportNamedImportParsingError_0"; diff --git a/tests/baselines/reference/escapedIdentifiers.js b/tests/baselines/reference/escapedIdentifiers.js index 5de505e4cb7..7051d8d2433 100644 --- a/tests/baselines/reference/escapedIdentifiers.js +++ b/tests/baselines/reference/escapedIdentifiers.js @@ -143,8 +143,8 @@ var moduleType1; moduleType1.baz1; })(moduleType1 || (moduleType1 = {})); var moduleType\u0032; -(function (moduleType\u0032) { - moduleType\u0032.baz2; +(function (moduleType2) { + moduleType2.baz2; })(moduleType\u0032 || (moduleType\u0032 = {})); moduleType1.baz1 = 3; moduleType\u0031.baz1 = 3; diff --git a/tests/baselines/reference/isDeclarationVisibleNodeKinds.js b/tests/baselines/reference/isDeclarationVisibleNodeKinds.js index 0d1664c7f59..d357922f5bc 100644 --- a/tests/baselines/reference/isDeclarationVisibleNodeKinds.js +++ b/tests/baselines/reference/isDeclarationVisibleNodeKinds.js @@ -80,59 +80,59 @@ var schema; })(schema || (schema = {})); // Constructor types var schema; -(function (_schema) { +(function (_schema_1) { function createValidator2(schema) { return undefined; } - _schema.createValidator2 = createValidator2; + _schema_1.createValidator2 = createValidator2; })(schema || (schema = {})); // union types var schema; -(function (_schema) { +(function (_schema_2) { function createValidator3(schema) { return undefined; } - _schema.createValidator3 = createValidator3; + _schema_2.createValidator3 = createValidator3; })(schema || (schema = {})); // Array types var schema; -(function (_schema) { +(function (_schema_3) { function createValidator4(schema) { return undefined; } - _schema.createValidator4 = createValidator4; + _schema_3.createValidator4 = createValidator4; })(schema || (schema = {})); // TypeLiterals var schema; -(function (_schema) { +(function (_schema_4) { function createValidator5(schema) { return undefined; } - _schema.createValidator5 = createValidator5; + _schema_4.createValidator5 = createValidator5; })(schema || (schema = {})); // Tuple types var schema; -(function (_schema) { +(function (_schema_5) { function createValidator6(schema) { return undefined; } - _schema.createValidator6 = createValidator6; + _schema_5.createValidator6 = createValidator6; })(schema || (schema = {})); // Paren Types var schema; -(function (_schema) { +(function (_schema_6) { function createValidator7(schema) { return undefined; } - _schema.createValidator7 = createValidator7; + _schema_6.createValidator7 = createValidator7; })(schema || (schema = {})); // Type reference var schema; -(function (_schema) { +(function (_schema_7) { function createValidator8(schema) { return undefined; } - _schema.createValidator8 = createValidator8; + _schema_7.createValidator8 = createValidator8; })(schema || (schema = {})); var schema; (function (schema) { diff --git a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt5.js b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt5.js index 0995dcbb9c0..0bc314ccc07 100644 --- a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt5.js +++ b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt5.js @@ -30,10 +30,10 @@ var Z; var A; (function (A) { var M; - (function (M) { + (function (_M) { function bar() { } - M.bar = bar; + _M.bar = bar; M.bar(); // Should call Z.M.bar })(M = A.M || (A.M = {})); })(A || (A = {})); diff --git a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt6.js b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt6.js index 51b2d4f89f9..4ba0a33c29a 100644 --- a/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt6.js +++ b/tests/baselines/reference/moduleSharesNameWithImportDeclarationInsideIt6.js @@ -24,9 +24,9 @@ var Z; var A; (function (A) { var M; - (function (M) { + (function (_M) { function bar() { } - M.bar = bar; + _M.bar = bar; })(M = A.M || (A.M = {})); })(A || (A = {})); diff --git a/tests/baselines/reference/nameCollision.js b/tests/baselines/reference/nameCollision.js index 67e6f3afa47..fe7bb3a8919 100644 --- a/tests/baselines/reference/nameCollision.js +++ b/tests/baselines/reference/nameCollision.js @@ -48,7 +48,7 @@ module D { //// [nameCollision.js] var A; -(function (__A) { +(function (_A_1) { // these 2 statements force an underscore before the 'A' // in the generated function call. var A = 12; @@ -83,15 +83,15 @@ var X; })(Y = _X.Y || (_X.Y = {})); })(X || (X = {})); var Y; -(function (_Y) { +(function (_Y_1) { var Y; - (function (_Y) { + (function (_Y_2) { (function (Y) { Y[Y["Red"] = 0] = "Red"; Y[Y["Blue"] = 1] = "Blue"; - })(_Y.Y || (_Y.Y = {})); - var Y = _Y.Y; - })(Y = _Y.Y || (_Y.Y = {})); + })(_Y_2.Y || (_Y_2.Y = {})); + var Y = _Y_2.Y; + })(Y = _Y_1.Y || (_Y_1.Y = {})); })(Y || (Y = {})); // no collision, since interface doesn't // generate code. diff --git a/tests/baselines/reference/privacyGloImportParseErrors.js b/tests/baselines/reference/privacyGloImportParseErrors.js index 27e24a1cf38..3b82d65a07b 100644 --- a/tests/baselines/reference/privacyGloImportParseErrors.js +++ b/tests/baselines/reference/privacyGloImportParseErrors.js @@ -238,7 +238,7 @@ var glo_M1_public; glo_M1_public.v2; })(glo_M1_public || (glo_M1_public = {})); var m2; -(function (m2) { +(function (_m2) { var m4; (function (m4) { var a = 10; diff --git a/tests/baselines/reference/privacyImportParseErrors.js b/tests/baselines/reference/privacyImportParseErrors.js index dd2a0cfe50b..7a875fa12d1 100644 --- a/tests/baselines/reference/privacyImportParseErrors.js +++ b/tests/baselines/reference/privacyImportParseErrors.js @@ -566,14 +566,14 @@ var glo_im4_private_v4_private = glo_im4_private.f1(); exports.glo_im1_public = glo_M1_public; exports.glo_im2_public = glo_M3_private; var m2; -(function (m2) { +(function (_m2) { var m4; (function (m4) { var a = 10; })(m4 || (m4 = {})); })(m2 || (m2 = {})); var m3; -(function (m3) { +(function (_m3) { var m4; (function (m4) { var a = 10; diff --git a/tests/baselines/reference/recursiveClassReferenceTest.js b/tests/baselines/reference/recursiveClassReferenceTest.js index 661ecb3a0e7..f565f8f23d0 100644 --- a/tests/baselines/reference/recursiveClassReferenceTest.js +++ b/tests/baselines/reference/recursiveClassReferenceTest.js @@ -116,7 +116,7 @@ var Sample; var Actions; (function (Actions) { var Thing; - (function (_Thing) { + (function (_Thing_1) { var Find; (function (Find) { var StartFindAction = (function () { @@ -131,7 +131,7 @@ var Sample; return StartFindAction; })(); Find.StartFindAction = StartFindAction; - })(Find = _Thing.Find || (_Thing.Find = {})); + })(Find = _Thing_1.Find || (_Thing_1.Find = {})); })(Thing = Actions.Thing || (Actions.Thing = {})); })(Actions = Sample.Actions || (Sample.Actions = {})); })(Sample || (Sample = {})); diff --git a/tests/baselines/reference/recursiveClassReferenceTest.js.map b/tests/baselines/reference/recursiveClassReferenceTest.js.map index d2e66a925a8..b2478b7f05c 100644 --- a/tests/baselines/reference/recursiveClassReferenceTest.js.map +++ b/tests/baselines/reference/recursiveClassReferenceTest.js.map @@ -1,2 +1,2 @@ //// [recursiveClassReferenceTest.js.map] -{"version":3,"file":"recursiveClassReferenceTest.js","sourceRoot":"","sources":["recursiveClassReferenceTest.ts"],"names":["Sample","Sample.Actions","Sample.Actions.Thing","Sample.Actions.Thing.Find","Sample.Actions.Thing.Find.StartFindAction","Sample.Actions.Thing.Find.StartFindAction.constructor","Sample.Actions.Thing.Find.StartFindAction.getId","Sample.Actions.Thing.Find.StartFindAction.run","Sample.Thing","Sample.Thing.Widgets","Sample.Thing.Widgets.FindWidget","Sample.Thing.Widgets.FindWidget.constructor","Sample.Thing.Widgets.FindWidget.gar","Sample.Thing.Widgets.FindWidget.getDomNode","Sample.Thing.Widgets.FindWidget.destroy","AbstractMode","AbstractMode.constructor","AbstractMode.getInitialState","Sample.Thing.Languages","Sample.Thing.Languages.PlainText","Sample.Thing.Languages.PlainText.State","Sample.Thing.Languages.PlainText.State.constructor","Sample.Thing.Languages.PlainText.State.clone","Sample.Thing.Languages.PlainText.State.equals","Sample.Thing.Languages.PlainText.State.getMode","Sample.Thing.Languages.PlainText.Mode","Sample.Thing.Languages.PlainText.Mode.constructor","Sample.Thing.Languages.PlainText.Mode.getInitialState"],"mappings":"AAAA,iEAAiE;AACjE,0EAA0E;;;;;;;AA8B1E,IAAO,MAAM,CAUZ;AAVD,WAAO,MAAM;IAACA,IAAAA,OAAOA,CAUpBA;IAVaA,WAAAA,OAAOA;QAACC,IAAAA,KAAKA,CAU1BA;QAVqBA,WAAAA,MAAKA;YAACC,IAAAA,IAAIA,CAU/BA;YAV2BA,WAAAA,IAAIA,EAACA,CAACA;gBACjCC,IAAaA,eAAeA;oBAA5BC,SAAaA,eAAeA;oBAQ5BC,CAACA;oBANOD,+BAAKA,GAAZA;wBAAiBE,MAAMA,CAACA,IAAIA,CAACA;oBAACA,CAACA;oBAExBF,6BAAGA,GAAVA,UAAWA,KAA6BA;wBAEvCG,MAAMA,CAACA,IAAIA,CAACA;oBACbA,CAACA;oBACFH,sBAACA;gBAADA,CAACA,AARDD,IAQCA;gBARYA,oBAAeA,GAAfA,eAQZA,CAAAA;YACFA,CAACA,EAV2BD,IAAIA,GAAJA,WAAIA,KAAJA,WAAIA,QAU/BA;QAADA,CAACA,EAVqBD,KAAKA,GAALA,aAAKA,KAALA,aAAKA,QAU1BA;IAADA,CAACA,EAVaD,OAAOA,GAAPA,cAAOA,KAAPA,cAAOA,QAUpBA;AAADA,CAACA,EAVM,MAAM,KAAN,MAAM,QAUZ;AAED,IAAO,MAAM,CAoBZ;AApBD,WAAO,MAAM;IAACA,IAAAA,KAAKA,CAoBlBA;IApBaA,WAAAA,KAAKA;QAACQ,IAAAA,OAAOA,CAoB1BA;QApBmBA,WAAAA,OAAOA,EAACA,CAACA;YAC5BC,IAAaA,UAAUA;gBAKtBC,SALYA,UAAUA,CAKFA,SAAkCA;oBAAlCC,cAASA,GAATA,SAASA,CAAyBA;oBAD9CA,YAAOA,GAAOA,IAAIA,CAACA;oBAGvBA,AADAA,aAAaA;oBACbA,SAASA,CAACA,SAASA,CAACA,WAAWA,EAAEA,IAAIA,CAACA,CAACA;gBAC3CA,CAACA;gBANMD,wBAAGA,GAAVA,UAAWA,MAAyCA;oBAAIE,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAAAA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;oBAAAA,CAACA;gBAAAA,CAACA;gBAQlFF,+BAAUA,GAAjBA;oBACCG,MAAMA,CAACA,OAAOA,CAACA;gBAChBA,CAACA;gBAEMH,4BAAOA,GAAdA;gBAEAI,CAACA;gBAEFJ,iBAACA;YAADA,CAACA,AAlBDD,IAkBCA;YAlBYA,kBAAUA,GAAVA,UAkBZA,CAAAA;QACFA,CAACA,EApBmBD,OAAOA,GAAPA,aAAOA,KAAPA,aAAOA,QAoB1BA;IAADA,CAACA,EApBaR,KAAKA,GAALA,YAAKA,KAALA,YAAKA,QAoBlBA;AAADA,CAACA,EApBM,MAAM,KAAN,MAAM,QAoBZ;AAGD,IAAM,YAAY;IAAlBe,SAAMA,YAAYA;IAAqEC,CAACA;IAA3CD,sCAAeA,GAAtBA;QAAmCE,MAAMA,CAACA,IAAIA,CAACA;IAAAA,CAACA;IAACF,mBAACA;AAADA,CAACA,AAAxF,IAAwF;AASxF,IAAO,MAAM,CAwBZ;AAxBD,WAAO,MAAM;IAACf,IAAAA,KAAKA,CAwBlBA;IAxBaA,WAAAA,KAAKA;QAACQ,IAAAA,SAASA,CAwB5BA;QAxBmBA,WAAAA,SAASA;YAACU,IAAAA,SAASA,CAwBtCA;YAxB6BA,WAAAA,SAASA,EAACA,CAACA;gBAExCC,IAAaA,KAAKA;oBACXC,SADMA,KAAKA,CACSA,IAAWA;wBAAXC,SAAIA,GAAJA,IAAIA,CAAOA;oBAAIA,CAACA;oBACnCD,qBAAKA,GAAZA;wBACCE,MAAMA,CAACA,IAAIA,CAACA;oBACbA,CAACA;oBAEMF,sBAAMA,GAAbA,UAAcA,KAAYA;wBACzBG,MAAMA,CAACA,IAAIA,KAAKA,KAAKA,CAACA;oBACvBA,CAACA;oBAEMH,uBAAOA,GAAdA;wBAA0BI,MAAMA,CAACA,IAAIA,CAACA;oBAACA,CAACA;oBACzCJ,YAACA;gBAADA,CAACA,AAXDD,IAWCA;gBAXYA,eAAKA,GAALA,KAWZA,CAAAA;gBAEDA,IAAaA,IAAIA;oBAASM,UAAbA,IAAIA,UAAqBA;oBAAtCA,SAAaA,IAAIA;wBAASC,8BAAYA;oBAQtCA,CAACA;oBANAD,aAAaA;oBACNA,8BAAeA,GAAtBA;wBACCE,MAAMA,CAACA,IAAIA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACxBA,CAACA;oBAGFF,WAACA;gBAADA,CAACA,AARDN,EAA0BA,YAAYA,EAQrCA;gBARYA,cAAIA,GAAJA,IAQZA,CAAAA;YACFA,CAACA,EAxB6BD,SAASA,GAATA,mBAASA,KAATA,mBAASA,QAwBtCA;QAADA,CAACA,EAxBmBV,SAASA,GAATA,eAASA,KAATA,eAASA,QAwB5BA;IAADA,CAACA,EAxBaR,KAAKA,GAALA,YAAKA,KAALA,YAAKA,QAwBlBA;AAADA,CAACA,EAxBM,MAAM,KAAN,MAAM,QAwBZ"} \ No newline at end of file +{"version":3,"file":"recursiveClassReferenceTest.js","sourceRoot":"","sources":["recursiveClassReferenceTest.ts"],"names":["Sample","Sample.Actions","Sample.Actions.Thing","Sample.Actions.Thing.Find","Sample.Actions.Thing.Find.StartFindAction","Sample.Actions.Thing.Find.StartFindAction.constructor","Sample.Actions.Thing.Find.StartFindAction.getId","Sample.Actions.Thing.Find.StartFindAction.run","Sample.Thing","Sample.Thing.Widgets","Sample.Thing.Widgets.FindWidget","Sample.Thing.Widgets.FindWidget.constructor","Sample.Thing.Widgets.FindWidget.gar","Sample.Thing.Widgets.FindWidget.getDomNode","Sample.Thing.Widgets.FindWidget.destroy","AbstractMode","AbstractMode.constructor","AbstractMode.getInitialState","Sample.Thing.Languages","Sample.Thing.Languages.PlainText","Sample.Thing.Languages.PlainText.State","Sample.Thing.Languages.PlainText.State.constructor","Sample.Thing.Languages.PlainText.State.clone","Sample.Thing.Languages.PlainText.State.equals","Sample.Thing.Languages.PlainText.State.getMode","Sample.Thing.Languages.PlainText.Mode","Sample.Thing.Languages.PlainText.Mode.constructor","Sample.Thing.Languages.PlainText.Mode.getInitialState"],"mappings":"AAAA,iEAAiE;AACjE,0EAA0E;;;;;;;AA8B1E,IAAO,MAAM,CAUZ;AAVD,WAAO,MAAM;IAACA,IAAAA,OAAOA,CAUpBA;IAVaA,WAAAA,OAAOA;QAACC,IAAAA,KAAKA,CAU1BA;QAVqBA,WAAAA,QAAKA;YAACC,IAAAA,IAAIA,CAU/BA;YAV2BA,WAAAA,IAAIA,EAACA,CAACA;gBACjCC,IAAaA,eAAeA;oBAA5BC,SAAaA,eAAeA;oBAQ5BC,CAACA;oBANOD,+BAAKA,GAAZA;wBAAiBE,MAAMA,CAACA,IAAIA,CAACA;oBAACA,CAACA;oBAExBF,6BAAGA,GAAVA,UAAWA,KAA6BA;wBAEvCG,MAAMA,CAACA,IAAIA,CAACA;oBACbA,CAACA;oBACFH,sBAACA;gBAADA,CAACA,AARDD,IAQCA;gBARYA,oBAAeA,GAAfA,eAQZA,CAAAA;YACFA,CAACA,EAV2BD,IAAIA,GAAJA,aAAIA,KAAJA,aAAIA,QAU/BA;QAADA,CAACA,EAVqBD,KAAKA,GAALA,aAAKA,KAALA,aAAKA,QAU1BA;IAADA,CAACA,EAVaD,OAAOA,GAAPA,cAAOA,KAAPA,cAAOA,QAUpBA;AAADA,CAACA,EAVM,MAAM,KAAN,MAAM,QAUZ;AAED,IAAO,MAAM,CAoBZ;AApBD,WAAO,MAAM;IAACA,IAAAA,KAAKA,CAoBlBA;IApBaA,WAAAA,KAAKA;QAACQ,IAAAA,OAAOA,CAoB1BA;QApBmBA,WAAAA,OAAOA,EAACA,CAACA;YAC5BC,IAAaA,UAAUA;gBAKtBC,SALYA,UAAUA,CAKFA,SAAkCA;oBAAlCC,cAASA,GAATA,SAASA,CAAyBA;oBAD9CA,YAAOA,GAAOA,IAAIA,CAACA;oBAGvBA,AADAA,aAAaA;oBACbA,SAASA,CAACA,SAASA,CAACA,WAAWA,EAAEA,IAAIA,CAACA,CAACA;gBAC3CA,CAACA;gBANMD,wBAAGA,GAAVA,UAAWA,MAAyCA;oBAAIE,EAAEA,CAACA,CAACA,IAAIA,CAACA,CAACA,CAACA;wBAAAA,MAAMA,CAACA,MAAMA,CAACA,IAAIA,CAACA,CAACA;oBAAAA,CAACA;gBAAAA,CAACA;gBAQlFF,+BAAUA,GAAjBA;oBACCG,MAAMA,CAACA,OAAOA,CAACA;gBAChBA,CAACA;gBAEMH,4BAAOA,GAAdA;gBAEAI,CAACA;gBAEFJ,iBAACA;YAADA,CAACA,AAlBDD,IAkBCA;YAlBYA,kBAAUA,GAAVA,UAkBZA,CAAAA;QACFA,CAACA,EApBmBD,OAAOA,GAAPA,aAAOA,KAAPA,aAAOA,QAoB1BA;IAADA,CAACA,EApBaR,KAAKA,GAALA,YAAKA,KAALA,YAAKA,QAoBlBA;AAADA,CAACA,EApBM,MAAM,KAAN,MAAM,QAoBZ;AAGD,IAAM,YAAY;IAAlBe,SAAMA,YAAYA;IAAqEC,CAACA;IAA3CD,sCAAeA,GAAtBA;QAAmCE,MAAMA,CAACA,IAAIA,CAACA;IAAAA,CAACA;IAACF,mBAACA;AAADA,CAACA,AAAxF,IAAwF;AASxF,IAAO,MAAM,CAwBZ;AAxBD,WAAO,MAAM;IAACf,IAAAA,KAAKA,CAwBlBA;IAxBaA,WAAAA,KAAKA;QAACQ,IAAAA,SAASA,CAwB5BA;QAxBmBA,WAAAA,SAASA;YAACU,IAAAA,SAASA,CAwBtCA;YAxB6BA,WAAAA,SAASA,EAACA,CAACA;gBAExCC,IAAaA,KAAKA;oBACXC,SADMA,KAAKA,CACSA,IAAWA;wBAAXC,SAAIA,GAAJA,IAAIA,CAAOA;oBAAIA,CAACA;oBACnCD,qBAAKA,GAAZA;wBACCE,MAAMA,CAACA,IAAIA,CAACA;oBACbA,CAACA;oBAEMF,sBAAMA,GAAbA,UAAcA,KAAYA;wBACzBG,MAAMA,CAACA,IAAIA,KAAKA,KAAKA,CAACA;oBACvBA,CAACA;oBAEMH,uBAAOA,GAAdA;wBAA0BI,MAAMA,CAACA,IAAIA,CAACA;oBAACA,CAACA;oBACzCJ,YAACA;gBAADA,CAACA,AAXDD,IAWCA;gBAXYA,eAAKA,GAALA,KAWZA,CAAAA;gBAEDA,IAAaA,IAAIA;oBAASM,UAAbA,IAAIA,UAAqBA;oBAAtCA,SAAaA,IAAIA;wBAASC,8BAAYA;oBAQtCA,CAACA;oBANAD,aAAaA;oBACNA,8BAAeA,GAAtBA;wBACCE,MAAMA,CAACA,IAAIA,KAAKA,CAACA,IAAIA,CAACA,CAACA;oBACxBA,CAACA;oBAGFF,WAACA;gBAADA,CAACA,AARDN,EAA0BA,YAAYA,EAQrCA;gBARYA,cAAIA,GAAJA,IAQZA,CAAAA;YACFA,CAACA,EAxB6BD,SAASA,GAATA,mBAASA,KAATA,mBAASA,QAwBtCA;QAADA,CAACA,EAxBmBV,SAASA,GAATA,eAASA,KAATA,eAASA,QAwB5BA;IAADA,CAACA,EAxBaR,KAAKA,GAALA,YAAKA,KAALA,YAAKA,QAwBlBA;AAADA,CAACA,EAxBM,MAAM,KAAN,MAAM,QAwBZ"} \ No newline at end of file diff --git a/tests/baselines/reference/recursiveClassReferenceTest.sourcemap.txt b/tests/baselines/reference/recursiveClassReferenceTest.sourcemap.txt index d7163bf7760..d02743ba296 100644 --- a/tests/baselines/reference/recursiveClassReferenceTest.sourcemap.txt +++ b/tests/baselines/reference/recursiveClassReferenceTest.sourcemap.txt @@ -139,7 +139,7 @@ sourceFile:recursiveClassReferenceTest.ts 2 > ^^^^ 3 > ^^^^^ 4 > ^ -5 > ^^^^^^^^^^^-> +5 > ^^^^^^^^^^^^^-> 1 >. 2 > 3 > Thing @@ -159,16 +159,16 @@ sourceFile:recursiveClassReferenceTest.ts 3 >Emitted(13, 18) Source(32, 28) + SourceIndex(0) name (Sample.Actions) 4 >Emitted(13, 19) Source(42, 2) + SourceIndex(0) name (Sample.Actions) --- ->>> (function (_Thing) { +>>> (function (_Thing_1) { 1->^^^^^^^^ 2 > ^^^^^^^^^^^ -3 > ^^^^^^ +3 > ^^^^^^^^ 1-> 2 > 3 > Thing 1->Emitted(14, 9) Source(32, 23) + SourceIndex(0) name (Sample.Actions) 2 >Emitted(14, 20) Source(32, 23) + SourceIndex(0) name (Sample.Actions) -3 >Emitted(14, 26) Source(32, 28) + SourceIndex(0) name (Sample.Actions) +3 >Emitted(14, 28) Source(32, 28) + SourceIndex(0) name (Sample.Actions) --- >>> var Find; 1 >^^^^^^^^^^^^ @@ -377,7 +377,7 @@ sourceFile:recursiveClassReferenceTest.ts 3 > ^^^ 4 > ^^^^^^^^^^^^^^^ 5 > ^ -6 > ^^^-> +6 > ^^^^^^^-> 1-> 2 > StartFindAction 3 > @@ -397,17 +397,16 @@ sourceFile:recursiveClassReferenceTest.ts 4 >Emitted(28, 55) Source(41, 3) + SourceIndex(0) name (Sample.Actions.Thing.Find) 5 >Emitted(28, 56) Source(41, 3) + SourceIndex(0) name (Sample.Actions.Thing.Find) --- ->>> })(Find = _Thing.Find || (_Thing.Find = {})); +>>> })(Find = _Thing_1.Find || (_Thing_1.Find = {})); 1->^^^^^^^^^^^^ 2 > ^ 3 > ^^ 4 > ^^^^ 5 > ^^^ -6 > ^^^^^^^^^^^ -7 > ^^^^^ -8 > ^^^^^^^^^^^ -9 > ^^^^^^^^ -10> ^^-> +6 > ^^^^^^^^^^^^^ +7 > ^^^^^ +8 > ^^^^^^^^^^^^^ +9 > ^^^^^^^^ 1-> > 2 > } @@ -415,31 +414,31 @@ sourceFile:recursiveClassReferenceTest.ts 4 > Find 5 > 6 > Find -7 > -8 > Find -9 > { - > export class StartFindAction implements Sample.Thing.IAction { - > - > public getId() { return "yo"; } - > - > public run(Thing:Sample.Thing.ICodeThing):boolean { - > - > return true; - > } - > } - > } +7 > +8 > Find +9 > { + > export class StartFindAction implements Sample.Thing.IAction { + > + > public getId() { return "yo"; } + > + > public run(Thing:Sample.Thing.ICodeThing):boolean { + > + > return true; + > } + > } + > } 1->Emitted(29, 13) Source(42, 1) + SourceIndex(0) name (Sample.Actions.Thing.Find) 2 >Emitted(29, 14) Source(42, 2) + SourceIndex(0) name (Sample.Actions.Thing.Find) 3 >Emitted(29, 16) Source(32, 29) + SourceIndex(0) name (Sample.Actions.Thing) 4 >Emitted(29, 20) Source(32, 33) + SourceIndex(0) name (Sample.Actions.Thing) 5 >Emitted(29, 23) Source(32, 29) + SourceIndex(0) name (Sample.Actions.Thing) -6 >Emitted(29, 34) Source(32, 33) + SourceIndex(0) name (Sample.Actions.Thing) -7 >Emitted(29, 39) Source(32, 29) + SourceIndex(0) name (Sample.Actions.Thing) -8 >Emitted(29, 50) Source(32, 33) + SourceIndex(0) name (Sample.Actions.Thing) -9 >Emitted(29, 58) Source(42, 2) + SourceIndex(0) name (Sample.Actions.Thing) +6 >Emitted(29, 36) Source(32, 33) + SourceIndex(0) name (Sample.Actions.Thing) +7 >Emitted(29, 41) Source(32, 29) + SourceIndex(0) name (Sample.Actions.Thing) +8 >Emitted(29, 54) Source(32, 33) + SourceIndex(0) name (Sample.Actions.Thing) +9 >Emitted(29, 62) Source(42, 2) + SourceIndex(0) name (Sample.Actions.Thing) --- >>> })(Thing = Actions.Thing || (Actions.Thing = {})); -1->^^^^^^^^ +1 >^^^^^^^^ 2 > ^ 3 > ^^ 4 > ^^^^^ @@ -449,7 +448,7 @@ sourceFile:recursiveClassReferenceTest.ts 8 > ^^^^^^^^^^^^^ 9 > ^^^^^^^^ 10> ^-> -1-> +1 > 2 > } 3 > 4 > Thing @@ -468,7 +467,7 @@ sourceFile:recursiveClassReferenceTest.ts > } > } > } -1->Emitted(30, 9) Source(42, 1) + SourceIndex(0) name (Sample.Actions.Thing) +1 >Emitted(30, 9) Source(42, 1) + SourceIndex(0) name (Sample.Actions.Thing) 2 >Emitted(30, 10) Source(42, 2) + SourceIndex(0) name (Sample.Actions.Thing) 3 >Emitted(30, 12) Source(32, 23) + SourceIndex(0) name (Sample.Actions) 4 >Emitted(30, 17) Source(32, 28) + SourceIndex(0) name (Sample.Actions)