Cache the emit of 'fourslash.ts'.

Yields a >25% decrease in running time for fourslash tests on my machine.
This commit is contained in:
Daniel Rosenwasser
2015-04-28 17:20:38 -07:00
parent f3b28c4a2a
commit 97cd07d1d4
2 changed files with 37 additions and 13 deletions

View File

@@ -102,11 +102,11 @@ module ts {
};
}
export function getPreEmitDiagnostics(program: Program): Diagnostic[] {
let diagnostics = program.getSyntacticDiagnostics().concat(program.getGlobalDiagnostics()).concat(program.getSemanticDiagnostics());
export function getPreEmitDiagnostics(program: Program, sourceFile?: SourceFile): Diagnostic[] {
let diagnostics = program.getSyntacticDiagnostics(sourceFile).concat(program.getGlobalDiagnostics()).concat(program.getSemanticDiagnostics(sourceFile));
if (program.getCompilerOptions().declaration) {
diagnostics.concat(program.getDeclarationDiagnostics());
diagnostics.concat(program.getDeclarationDiagnostics(sourceFile));
}
return sortAndDeduplicateDiagnostics(diagnostics);