From c1dfdaa436f85665b6bc5f73ba0d55a217eaf68c Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Thu, 5 Feb 2015 02:15:38 -0800 Subject: [PATCH] Simplify code for getting diagnostics in the Program. --- src/compiler/program.ts | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index e60a9e9f188..ee41e9c4ba7 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -211,19 +211,27 @@ module ts { return hasProperty(filesByName, fileName) ? filesByName[fileName] : undefined; } - function getSyntacticDiagnostics(sourceFile?: SourceFile): Diagnostic[] { + function getDiagnosticsHelper(sourceFile: SourceFile, getDiagnostics: (sourceFile: SourceFile) => Diagnostic[]): Diagnostic[] { if (sourceFile) { - return ts.getSyntacticDiagnostics(sourceFile); + return getDiagnostics(sourceFile); } var allDiagnostics: Diagnostic[] = []; forEach(program.getSourceFiles(), sourceFile => { - addRange(allDiagnostics, ts.getSyntacticDiagnostics(sourceFile)); + addRange(allDiagnostics, getDiagnostics(sourceFile)); }); return sortAndDeduplicateDiagnostics(allDiagnostics); } + function getSyntacticDiagnostics(sourceFile?: SourceFile): Diagnostic[]{ + return getDiagnosticsHelper(sourceFile, ts.getSyntacticDiagnostics); + } + + function getSemanticDiagnostics(sourceFile?: SourceFile): Diagnostic[]{ + return getDiagnosticsHelper(sourceFile, getSemanticDiagnosticsForFile); + } + function getSemanticDiagnosticsForFile(sourceFile: SourceFile): Diagnostic[] { var typeChecker = getDiagnosticsProducingTypeChecker(); @@ -235,19 +243,6 @@ module ts { return bindDiagnostics.concat(checkDiagnostics).concat(programDiagnostics); } - function getSemanticDiagnostics(sourceFile?: SourceFile): Diagnostic[] { - if (sourceFile) { - return sortAndDeduplicateDiagnostics(getSemanticDiagnosticsForFile(sourceFile)); - } - - var allDiagnostics: Diagnostic[] = []; - forEach(program.getSourceFiles(), sourceFile => { - addRange(allDiagnostics, getSemanticDiagnosticsForFile(sourceFile)); - }); - - return sortAndDeduplicateDiagnostics(allDiagnostics); - } - function getGlobalDiagnostics(): Diagnostic[]{ var typeChecker = getDiagnosticsProducingTypeChecker();