From 8c33a792b3293f838d47c87ffb46153f384483eb Mon Sep 17 00:00:00 2001 From: Mohamed Hegazy Date: Tue, 18 Apr 2017 16:19:58 -0700 Subject: [PATCH] Do not query for bind errors if skipLibCheck or skipDefaultLibCheck is set --- src/compiler/program.ts | 7 +++++++ tests/cases/compiler/noDefaultLib.ts | 1 + tests/cases/compiler/variableDeclarationInStrictMode1.ts | 1 + 3 files changed, 9 insertions(+) diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 0971adfc098..347e6e97ebd 100644 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -908,6 +908,13 @@ namespace ts { function getSemanticDiagnosticsForFileNoCache(sourceFile: SourceFile, cancellationToken: CancellationToken): Diagnostic[] { return runWithCancellationToken(() => { + // If skipLibCheck is enabled, skip reporting errors if file is a declaration file. + // If skipDefaultLibCheck is enabled, skip reporting errors if file contains a + // '/// ' directive. + if (options.skipLibCheck && sourceFile.isDeclarationFile || options.skipDefaultLibCheck && sourceFile.hasNoDefaultLib) { + return emptyArray; + } + const typeChecker = getDiagnosticsProducingTypeChecker(); Debug.assert(!!sourceFile.bindDiagnostics); diff --git a/tests/cases/compiler/noDefaultLib.ts b/tests/cases/compiler/noDefaultLib.ts index 92c8a63fc64..fa1230e4cfe 100644 --- a/tests/cases/compiler/noDefaultLib.ts +++ b/tests/cases/compiler/noDefaultLib.ts @@ -1,3 +1,4 @@ +// @skipDefaultLibCheck: false /// var x; diff --git a/tests/cases/compiler/variableDeclarationInStrictMode1.ts b/tests/cases/compiler/variableDeclarationInStrictMode1.ts index 266e5af44ae..5785beb32aa 100644 --- a/tests/cases/compiler/variableDeclarationInStrictMode1.ts +++ b/tests/cases/compiler/variableDeclarationInStrictMode1.ts @@ -1,2 +1,3 @@ +// @skipDefaultLibCheck: false "use strict"; var eval; \ No newline at end of file