Add noCheck API option (#57934)

This commit is contained in:
Wesley Wigham
2024-04-26 13:21:15 -07:00
committed by GitHub
parent 95d23ca7d2
commit f76727d17a
47 changed files with 3674 additions and 7 deletions
+2
View File
@@ -8797,6 +8797,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
}
function serializeSymbol(symbol: Symbol, isPrivate: boolean, propertyAsAlias: boolean): void {
void getPropertiesOfType(getTypeOfSymbol(symbol)); // resolve symbol's type and properties, which should trigger any required merges
// cache visited list based on merged symbol, since we want to use the unmerged top-level symbol, but
// still skip reserializing it if we encounter the merged product later on
const visitedSym = getMergedSymbol(symbol);
@@ -48893,6 +48894,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
if (!sym) {
return !node.locals ? [] : nodeBuilder.symbolTableToDeclarationStatements(node.locals, node, flags, tracker);
}
resolveExternalModuleSymbol(sym); // ensures cjs export assignment is setup
return !sym.exports ? [] : nodeBuilder.symbolTableToDeclarationStatements(sym.exports, node, flags, tracker);
},
isImportRequiredByAugmentation,
+14
View File
@@ -772,6 +772,20 @@ const commandOptionsWithoutBuild: CommandLineOption[] = [
defaultValueDescription: false,
description: Diagnostics.Disable_emitting_comments,
},
{
name: "noCheck",
type: "boolean",
showInSimplifiedHelpView: false,
category: Diagnostics.Compiler_Diagnostics,
description: Diagnostics.Disable_full_type_checking_only_critical_parse_and_emit_errors_will_be_reported,
transpileOptionValue: undefined,
defaultValueDescription: false,
affectsSemanticDiagnostics: true,
affectsBuildInfo: true,
extraValidation() {
return [Diagnostics.Unknown_compiler_option_0, "noCheck"];
},
},
{
name: "noEmit",
type: "boolean",
+4
View File
@@ -6388,6 +6388,10 @@
"category": "Message",
"code": 6804
},
"Disable full type checking (only critical parse and emit errors will be reported).": {
"category": "Message",
"code": 6805
},
"one of:": {
"category": "Message",
+2 -2
View File
@@ -848,8 +848,8 @@ export function emitFiles(resolver: EmitResolver, host: EmitHost, targetSourceFi
const filesForEmit = forceDtsEmit ? sourceFiles : filter(sourceFiles, isSourceFileNotJson);
// Setup and perform the transformation to retrieve declarations from the input files
const inputListOrBundle = compilerOptions.outFile ? [factory.createBundle(filesForEmit)] : filesForEmit;
if (emitOnly && !getEmitDeclarations(compilerOptions)) {
// Checker wont collect the linked aliases since thats only done when declaration is enabled.
if ((emitOnly && !getEmitDeclarations(compilerOptions)) || compilerOptions.noCheck) {
// Checker wont collect the linked aliases since thats only done when declaration is enabled and checking is performed.
// Do that here when emitting only dts files
filesForEmit.forEach(collectLinkedAliases);
}
+9
View File
@@ -4425,6 +4425,15 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
}
}
if (options.noCheck) {
if (options.noEmit) {
createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_with_option_1, "noCheck", "noEmit");
}
if (!options.emitDeclarationOnly) {
createDiagnosticForOptionName(Diagnostics.Option_0_cannot_be_specified_without_specifying_option_1, "noCheck", "emitDeclarationOnly");
}
}
if (
options.emitDecoratorMetadata &&
!options.experimentalDecorators
+1
View File
@@ -7270,6 +7270,7 @@ export interface CompilerOptions {
moduleDetection?: ModuleDetectionKind;
newLine?: NewLineKind;
noEmit?: boolean;
/** @internal */ noCheck?: boolean;
/** @internal */ noEmitForJsFiles?: boolean;
noEmitHelpers?: boolean;
noEmitOnError?: boolean;
+1
View File
@@ -9967,6 +9967,7 @@ export function skipTypeChecking(sourceFile: SourceFile, options: CompilerOption
// '/// <reference no-default-lib="true"/>' directive.
return (options.skipLibCheck && sourceFile.isDeclarationFile ||
options.skipDefaultLibCheck && sourceFile.hasNoDefaultLib) ||
options.noCheck ||
host.isSourceOfProjectReferenceRedirect(sourceFile.fileName);
}
+32 -3
View File
@@ -303,6 +303,7 @@ export namespace Compiler {
{ name: "noTypesAndSymbols", type: "boolean", defaultValueDescription: false },
// Emitted js baseline will print full paths for every output file
{ name: "fullEmitPaths", type: "boolean", defaultValueDescription: false },
{ name: "noCheck", type: "boolean", defaultValueDescription: false },
{ name: "reportDiagnostics", type: "boolean", defaultValueDescription: false }, // used to enable error collection in `transpile` baselines
];
@@ -371,6 +372,8 @@ export namespace Compiler {
fileOptions?: any;
}
export type CompileFilesResult = compiler.CompilationResult & { repeat(newOptions: TestCaseParser.CompilerSettings): CompileFilesResult; };
export function compileFiles(
inputFiles: TestFile[],
otherFiles: TestFile[],
@@ -379,7 +382,8 @@ export namespace Compiler {
// Current directory is needed for rwcRunner to be able to use currentDirectory defined in json file
currentDirectory: string | undefined,
symlinks?: vfs.FileSet,
): compiler.CompilationResult {
): CompileFilesResult {
const originalCurrentDirectory = currentDirectory;
const options: ts.CompilerOptions & HarnessOptions = compilerOptions ? ts.cloneCompilerOptions(compilerOptions) : { noResolve: false };
options.newLine = options.newLine || ts.NewLineKind.CarriageReturnLineFeed;
options.noErrorTruncation = true;
@@ -428,7 +432,8 @@ export namespace Compiler {
const host = new fakes.CompilerHost(fs, options);
const result = compiler.compileFiles(host, programFileNames, options, typeScriptVersion);
result.symlinks = symlinks;
return result;
(result as CompileFilesResult).repeat = newOptions => compileFiles(inputFiles, otherFiles, { ...harnessSettings, ...newOptions }, compilerOptions, originalCurrentDirectory, symlinks);
return result as CompileFilesResult;
}
export interface DeclarationCompilationContext {
@@ -944,7 +949,7 @@ export namespace Compiler {
return "\n//// https://sokra.github.io/source-map-visualization" + hash + "\n";
}
export function doJsEmitBaseline(baselinePath: string, header: string, options: ts.CompilerOptions, result: compiler.CompilationResult, tsConfigFiles: readonly TestFile[], toBeCompiled: readonly TestFile[], otherFiles: readonly TestFile[], harnessSettings: TestCaseParser.CompilerSettings) {
export function doJsEmitBaseline(baselinePath: string, header: string, options: ts.CompilerOptions, result: CompileFilesResult, tsConfigFiles: readonly TestFile[], toBeCompiled: readonly TestFile[], otherFiles: readonly TestFile[], harnessSettings: TestCaseParser.CompilerSettings) {
if (!options.noEmit && !options.emitDeclarationOnly && result.js.size === 0 && result.diagnostics.length === 0) {
throw new Error("Expected at least one js file to be emitted or at least one error to be created.");
}
@@ -996,9 +1001,33 @@ export namespace Compiler {
jsCode += "\r\n\r\n";
jsCode += getErrorBaseline(tsConfigFiles.concat(declFileCompilationResult.declInputFiles, declFileCompilationResult.declOtherFiles), declFileCompilationResult.declResult.diagnostics);
}
else if (!options.noCheck && !options.noEmit && (options.composite || options.declaration || options.emitDeclarationOnly)) {
const withoutChecking = result.repeat({ noCheck: "true", emitDeclarationOnly: "true" });
compareResultFileSets(withoutChecking.dts, result.dts);
}
// eslint-disable-next-line no-restricted-syntax
Baseline.runBaseline(baselinePath.replace(/\.tsx?/, ts.Extension.Js), jsCode.length > 0 ? tsCode + "\r\n\r\n" + jsCode : null);
function compareResultFileSets(a: ReadonlyMap<string, documents.TextDocument>, b: ReadonlyMap<string, documents.TextDocument>) {
a.forEach((doc, key) => {
const original = b.get(key);
if (!original) {
jsCode += `\r\n\r\n!!!! File ${Utils.removeTestPathPrefixes(doc.file)} missing from original emit, but present in noCheck emit\r\n`;
jsCode += fileOutput(doc, harnessSettings);
}
else if (original.text !== doc.text) {
jsCode += `\r\n\r\n!!!! File ${Utils.removeTestPathPrefixes(doc.file)} differs from original emit in noCheck emit\r\n`;
const Diff = require("diff");
const expected = original.text;
const actual = doc.text;
const patch = Diff.createTwoFilesPatch("Expected", "Actual", expected, actual, "The full check baseline", "with noCheck set");
const fileName = harnessSettings.fullEmitPaths ? Utils.removeTestPathPrefixes(doc.file) : ts.getBaseFileName(doc.file);
jsCode += "//// [" + fileName + "]\r\n";
jsCode += patch;
}
});
}
}
function fileOutput(file: documents.TextDocument, harnessSettings: TestCaseParser.CompilerSettings): string {
+2
View File
@@ -75,6 +75,7 @@ export function transpileModule(input: string, transpileOptions: TranspileOption
* - noResolve = true
* - declaration = true
* - emitDeclarationOnly = true
* - noCheck = true
* Note that this declaration file may differ from one produced by a full program typecheck,
* in that only types in the single input file are available to be used in the generated declarations.
*/
@@ -141,6 +142,7 @@ function transpileWorker(input: string, transpileOptions: TranspileOptions, decl
options.declaration = true;
options.emitDeclarationOnly = true;
options.isolatedDeclarations = true;
options.noCheck = true;
}
else {
options.declaration = false;
+1 -2
View File
@@ -1,4 +1,3 @@
import * as compiler from "./_namespaces/compiler";
import {
Baseline,
Compiler,
@@ -171,7 +170,7 @@ class CompilerTest {
private configuredName: string;
private harnessSettings: TestCaseParser.CompilerSettings;
private hasNonDtsFiles: boolean;
private result: compiler.CompilationResult;
private result: Compiler.CompileFilesResult;
private options: ts.CompilerOptions;
private tsConfigFiles: Compiler.TestFile[];
// equivalent to the files that will be passed on the command line
+1
View File
@@ -86,6 +86,7 @@ import "./unittests/tsbuild/lateBoundSymbol";
import "./unittests/tsbuild/libraryResolution";
import "./unittests/tsbuild/moduleResolution";
import "./unittests/tsbuild/moduleSpecifiers";
import "./unittests/tsbuild/noCheck";
import "./unittests/tsbuild/noEmit";
import "./unittests/tsbuild/noEmitOnError";
import "./unittests/tsbuild/outFile";
@@ -0,0 +1,86 @@
import {
CommandLineOption,
optionDeclarations,
} from "../../_namespaces/ts";
import { jsonToReadableText } from "../helpers";
import {
noChangeRun,
verifyTsc,
} from "../helpers/tsc";
import { loadProjectFromFiles } from "../helpers/vfs";
function verifyNoCheckFlag(variant: string) {
function verifyNoCheckWorker(subScenario: string, declAText: string, commandLineArgs: readonly string[]) {
verifyTsc({
scenario: variant,
subScenario,
fs: () =>
loadProjectFromFiles({
"/src/a.ts": getATsContent(declAText),
"/src/tsconfig.json": jsonToReadableText({
compilerOptions: { noCheck: true, emitDeclarationOnly: true, declaration: true },
}),
}),
commandLineArgs,
edits: [
noChangeRun,
{
caption: "Fix `a` error",
edit: fs => fs.writeFileSync("/src/a.ts", getATsContent(`const a = "hello"`)),
},
noChangeRun,
{
caption: "Disable noCheck",
edit: fs =>
fs.writeFileSync(
"/src/tsconfig.json",
jsonToReadableText({
compilerOptions: { emitDeclarationOnly: true, declaration: true },
}),
),
},
noChangeRun,
],
baselinePrograms: true,
});
function getATsContent(declAText: string) {
return `const err: number = "error";
${declAText}`;
}
}
function verifyNoCheck(subScenario: string, aTsContent: string) {
verifyNoCheckWorker(subScenario, aTsContent, ["--b", "/src/tsconfig.json", "-v"]);
verifyNoCheckWorker(`${subScenario} with incremental`, aTsContent, ["--b", "/src/tsconfig.json", "-v", "--incremental"]);
}
verifyNoCheck("syntax errors", `const a = "hello`);
verifyNoCheck("semantic errors", `const a: number = "hello"`);
}
describe("unittests:: tsbuild:: noCheck", () => {
// Enable the `noCheck` option on the CLI for testing purposes, to ensure it works with incremental/build
let validate: CommandLineOption["extraValidation"];
before(() => {
for (const opt of optionDeclarations) {
if (opt.name === "noCheck") {
validate = opt.extraValidation;
opt.extraValidation = () => undefined;
}
}
});
after(() => {
for (const opt of optionDeclarations) {
if (opt.name === "noCheck") {
opt.extraValidation = validate;
}
}
});
verifyNoCheckFlag("noCheck");
});
describe("unittests:: tsbuild:: noCheck:: errors", () => {
verifyNoCheckFlag("noCheck-errors");
});
@@ -0,0 +1,3 @@
{
"compilerOptions": {}
}
@@ -62,3 +62,20 @@ declare function f3(x: 'a' | 'b'): {
b: any;
x: any;
};
!!!! File deferredLookupTypeResolution.d.ts differs from original emit in noCheck emit
//// [deferredLookupTypeResolution.d.ts]
===================================================================
--- Expected The full check baseline
+++ Actual with noCheck set
@@ -15,8 +15,8 @@
[P in A | B]: any;
};
declare function f2<A extends string>(a: A): { [P in A | "x"]: any; };
declare function f3(x: 'a' | 'b'): {
+ x: any;
a: any;
b: any;
- x: any;
};
@@ -680,3 +680,21 @@ type Rec1 = {
type Rec2 = Record<Id, number>;
type K1 = keyof Rec1;
type K2 = keyof Rec2;
!!!! File indexSignatures1.d.ts differs from original emit in noCheck emit
//// [indexSignatures1.d.ts]
===================================================================
--- Expected The full check baseline
+++ Actual with noCheck set
@@ -118,9 +118,9 @@
[x: symbol]: 4 | 5;
[sym]: 4;
};
declare const obj13: {
- [x: string]: 0 | 2 | 1 | 3;
+ [x: string]: 0 | 1 | 2 | 3;
[x: number]: 2 | 3;
[x: symbol]: 4 | 5;
x: 0;
1: 2;
@@ -27,3 +27,9 @@ module.exports.memberName = "thing";
declare const _exports: typeof m.default;
export = _exports;
import m = require("./exporter");
!!!! File out/exporter.d.ts missing from original emit, but present in noCheck emit
//// [exporter.d.ts]
export default validate;
declare function validate(): void;
@@ -0,0 +1,10 @@
//// [tests/cases/compiler/noCheckDoesNotReportError.ts] ////
//// [noCheckDoesNotReportError.ts]
export const a: number = "not ok";
//// [noCheckDoesNotReportError.d.ts]
export declare const a: number;
@@ -0,0 +1,6 @@
//// [tests/cases/compiler/noCheckDoesNotReportError.ts] ////
=== noCheckDoesNotReportError.ts ===
export const a: number = "not ok";
>a : Symbol(a, Decl(noCheckDoesNotReportError.ts, 0, 12))
@@ -0,0 +1,9 @@
//// [tests/cases/compiler/noCheckDoesNotReportError.ts] ////
=== noCheckDoesNotReportError.ts ===
export const a: number = "not ok";
>a : number
> : ^^^^^^
>"not ok" : "not ok"
> : ^^^^^^^^
@@ -0,0 +1,9 @@
error TS5053: Option 'emitDeclarationOnly' cannot be specified with option 'noEmit'.
error TS5053: Option 'noCheck' cannot be specified with option 'noEmit'.
!!! error TS5053: Option 'emitDeclarationOnly' cannot be specified with option 'noEmit'.
!!! error TS5053: Option 'noCheck' cannot be specified with option 'noEmit'.
==== noCheckNoEmit.ts (0 errors) ====
export const a: number = "not ok";
@@ -0,0 +1,6 @@
//// [tests/cases/compiler/noCheckNoEmit.ts] ////
=== noCheckNoEmit.ts ===
export const a: number = "not ok";
>a : Symbol(a, Decl(noCheckNoEmit.ts, 0, 12))
@@ -0,0 +1,9 @@
//// [tests/cases/compiler/noCheckNoEmit.ts] ////
=== noCheckNoEmit.ts ===
export const a: number = "not ok";
>a : number
> : ^^^^^^
>"not ok" : "not ok"
> : ^^^^^^^^
@@ -0,0 +1,7 @@
error TS5052: Option 'noCheck' cannot be specified without specifying option 'emitDeclarationOnly'.
!!! error TS5052: Option 'noCheck' cannot be specified without specifying option 'emitDeclarationOnly'.
==== noCheckRequiresEmitDeclarationOnly.ts (0 errors) ====
export const a: number = "not ok";
@@ -0,0 +1,11 @@
//// [tests/cases/compiler/noCheckRequiresEmitDeclarationOnly.ts] ////
//// [noCheckRequiresEmitDeclarationOnly.ts]
export const a: number = "not ok";
//// [noCheckRequiresEmitDeclarationOnly.js]
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.a = void 0;
exports.a = "not ok";
@@ -0,0 +1,6 @@
//// [tests/cases/compiler/noCheckRequiresEmitDeclarationOnly.ts] ////
=== noCheckRequiresEmitDeclarationOnly.ts ===
export const a: number = "not ok";
>a : Symbol(a, Decl(noCheckRequiresEmitDeclarationOnly.ts, 0, 12))
@@ -0,0 +1,9 @@
//// [tests/cases/compiler/noCheckRequiresEmitDeclarationOnly.ts] ////
=== noCheckRequiresEmitDeclarationOnly.ts ===
export const a: number = "not ok";
>a : number
> : ^^^^^^
>"not ok" : "not ok"
> : ^^^^^^^^
@@ -0,0 +1,11 @@
//// [tests/cases/compiler/noEmitOnError.ts] ////
//// [noEmitOnError.ts]
var x: number = "";
!!!! File noEmitOnError.d.ts missing from original emit, but present in noCheck emit
//// [noEmitOnError.d.ts]
declare var x: number;
@@ -0,0 +1,23 @@
//// [tests/cases/compiler/outModuleConcatCommonjs.ts] ////
//// [a.ts]
export class A { }
//// [b.ts]
import {A} from "./ref/a";
export class B extends A { }
!!!! File all.d.ts missing from original emit, but present in noCheck emit
//// [all.d.ts]
declare module "ref/a" {
export class A {
}
}
declare module "b" {
import { A } from "ref/a";
export class B extends A {
}
}
@@ -0,0 +1,22 @@
//// [tests/cases/compiler/outModuleConcatES6.ts] ////
//// [a.ts]
export class A { }
//// [b.ts]
import {A} from "./ref/a";
export class B extends A { }
!!!! File all.d.ts missing from original emit, but present in noCheck emit
//// [all.d.ts]
declare module "ref/a" {
export class A {
}
}
declare module "b" {
import { A } from "ref/a";
export class B extends A {
}
}
@@ -0,0 +1,22 @@
//// [tests/cases/compiler/outModuleConcatUmd.ts] ////
//// [a.ts]
export class A { }
//// [b.ts]
import {A} from "./ref/a";
export class B extends A { }
!!!! File all.d.ts missing from original emit, but present in noCheck emit
//// [all.d.ts]
declare module "ref/a" {
export class A {
}
}
declare module "b" {
import { A } from "ref/a";
export class B extends A {
}
}
@@ -0,0 +1,481 @@
currentDirectory:: / useCaseSensitiveFileNames: false
Input::
//// [/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
//// [/src/a.ts]
const err: number = "error";
const a: number = "hello"
//// [/src/tsconfig.json]
{
"compilerOptions": {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:08 AM] Projects in this build:
* src/tsconfig.json
[12:00:09 AM] Project 'src/tsconfig.json' is out of date because output file 'src/tsconfig.tsbuildinfo' does not exist
[12:00:10 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
//// [/src/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","signature":false,"affectsGlobalScope":true,"impliedFormat":1},{"version":"9312413704-const err: number = \"error\";\nconst a: number = \"hello\"","signature":false,"affectsGlobalScope":true,"impliedFormat":1}],"root":[2],"options":{"declaration":true,"emitDeclarationOnly":true},"referencedMap":[],"changeFileSet":[1,2]},"version":"FakeTSVersion"}
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": false,
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"original": {
"version": "9312413704-const err: number = \"error\";\nconst a: number = \"hello\"",
"signature": false,
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "9312413704-const err: number = \"error\";\nconst a: number = \"hello\"",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true
},
"referencedMap": {},
"changeFileSet": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion",
"size": 866
}
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:14 AM] Projects in this build:
* src/tsconfig.json
[12:00:15 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:16 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: Fix `a` error
Input::
//// [/src/a.ts]
const err: number = "error";
const a = "hello"
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:18 AM] Projects in this build:
* src/tsconfig.json
[12:00:19 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:20 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
//// [/src/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","signature":false,"affectsGlobalScope":true,"impliedFormat":1},{"version":"6909448549-const err: number = \"error\";\nconst a = \"hello\"","signature":false,"affectsGlobalScope":true,"impliedFormat":1}],"root":[2],"options":{"declaration":true,"emitDeclarationOnly":true},"referencedMap":[],"changeFileSet":[1,2]},"version":"FakeTSVersion"}
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": false,
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"original": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"signature": false,
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true
},
"referencedMap": {},
"changeFileSet": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion",
"size": 858
}
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:24 AM] Projects in this build:
* src/tsconfig.json
[12:00:25 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:26 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: Disable noCheck
Input::
//// [/src/tsconfig.json]
{
"compilerOptions": {
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:28 AM] Projects in this build:
* src/tsconfig.json
[12:00:29 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:30 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (computed .d.ts)
//// [/src/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedFormat":1},{"version":"6909448549-const err: number = \"error\";\nconst a = \"hello\"","signature":"-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n","affectsGlobalScope":true,"impliedFormat":1}],"root":[2],"options":{"declaration":true,"emitDeclarationOnly":true},"referencedMap":[],"semanticDiagnosticsPerFile":[1,[2,[{"file":"./a.ts","start":6,"length":3,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type 'number'."}]]],"affectedFilesPendingEmit":[2]},"version":"FakeTSVersion"}
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"original": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"signature": "-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"signature": "-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
[
"./a.ts",
[
{
"file": "./a.ts",
"start": 6,
"length": 3,
"code": 2322,
"category": 1,
"messageText": "Type 'string' is not assignable to type 'number'."
}
]
]
],
"affectedFilesPendingEmit": [
[
"./a.ts",
"Dts"
]
]
},
"version": "FakeTSVersion",
"size": 1086
}
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:34 AM] Projects in this build:
* src/tsconfig.json
[12:00:35 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:36 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
No shapes updated in the builder::
@@ -0,0 +1,298 @@
currentDirectory:: / useCaseSensitiveFileNames: false
Input::
//// [/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
//// [/src/a.ts]
const err: number = "error";
const a: number = "hello"
//// [/src/tsconfig.json]
{
"compilerOptions": {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:08 AM] Projects in this build:
* src/tsconfig.json
[12:00:09 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:10 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:11 AM] Projects in this build:
* src/tsconfig.json
[12:00:12 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:13 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: Fix `a` error
Input::
//// [/src/a.ts]
const err: number = "error";
const a = "hello"
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:15 AM] Projects in this build:
* src/tsconfig.json
[12:00:16 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:17 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:18 AM] Projects in this build:
* src/tsconfig.json
[12:00:19 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:20 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: Disable noCheck
Input::
//// [/src/tsconfig.json]
{
"compilerOptions": {
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:22 AM] Projects in this build:
* src/tsconfig.json
[12:00:23 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:24 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (used version)
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:25 AM] Projects in this build:
* src/tsconfig.json
[12:00:26 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:27 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (used version)
@@ -0,0 +1,491 @@
currentDirectory:: / useCaseSensitiveFileNames: false
Input::
//// [/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
//// [/src/a.ts]
const err: number = "error";
const a = "hello
//// [/src/tsconfig.json]
{
"compilerOptions": {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:08 AM] Projects in this build:
* src/tsconfig.json
[12:00:09 AM] Project 'src/tsconfig.json' is out of date because output file 'src/tsconfig.tsbuildinfo' does not exist
[12:00:10 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
src/a.ts:2:17 - error TS1002: Unterminated string literal.
2 const a = "hello
   
Found 2 errors.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
//// [/src/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","signature":false,"affectsGlobalScope":true,"impliedFormat":1},{"version":"8018408675-const err: number = \"error\";\nconst a = \"hello","signature":false,"affectsGlobalScope":true,"impliedFormat":1}],"root":[2],"options":{"declaration":true,"emitDeclarationOnly":true},"referencedMap":[],"changeFileSet":[1,2]},"version":"FakeTSVersion"}
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": false,
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"original": {
"version": "8018408675-const err: number = \"error\";\nconst a = \"hello",
"signature": false,
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "8018408675-const err: number = \"error\";\nconst a = \"hello",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true
},
"referencedMap": {},
"changeFileSet": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion",
"size": 856
}
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:14 AM] Projects in this build:
* src/tsconfig.json
[12:00:15 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:16 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
src/a.ts:2:17 - error TS1002: Unterminated string literal.
2 const a = "hello
   
Found 2 errors.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: Fix `a` error
Input::
//// [/src/a.ts]
const err: number = "error";
const a = "hello"
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:18 AM] Projects in this build:
* src/tsconfig.json
[12:00:19 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:20 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
//// [/src/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","signature":false,"affectsGlobalScope":true,"impliedFormat":1},{"version":"6909448549-const err: number = \"error\";\nconst a = \"hello\"","signature":false,"affectsGlobalScope":true,"impliedFormat":1}],"root":[2],"options":{"declaration":true,"emitDeclarationOnly":true},"referencedMap":[],"changeFileSet":[1,2]},"version":"FakeTSVersion"}
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": false,
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"original": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"signature": false,
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true
},
"referencedMap": {},
"changeFileSet": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion",
"size": 858
}
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:24 AM] Projects in this build:
* src/tsconfig.json
[12:00:25 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:26 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: Disable noCheck
Input::
//// [/src/tsconfig.json]
{
"compilerOptions": {
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:28 AM] Projects in this build:
* src/tsconfig.json
[12:00:29 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:30 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (computed .d.ts)
//// [/src/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedFormat":1},{"version":"6909448549-const err: number = \"error\";\nconst a = \"hello\"","signature":"-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n","affectsGlobalScope":true,"impliedFormat":1}],"root":[2],"options":{"declaration":true,"emitDeclarationOnly":true},"referencedMap":[],"semanticDiagnosticsPerFile":[1,[2,[{"file":"./a.ts","start":6,"length":3,"code":2322,"category":1,"messageText":"Type 'string' is not assignable to type 'number'."}]]],"affectedFilesPendingEmit":[2]},"version":"FakeTSVersion"}
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"original": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"signature": "-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"signature": "-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
[
"./a.ts",
[
{
"file": "./a.ts",
"start": 6,
"length": 3,
"code": 2322,
"category": 1,
"messageText": "Type 'string' is not assignable to type 'number'."
}
]
]
],
"affectedFilesPendingEmit": [
[
"./a.ts",
"Dts"
]
]
},
"version": "FakeTSVersion",
"size": 1086
}
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:34 AM] Projects in this build:
* src/tsconfig.json
[12:00:35 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:36 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
No shapes updated in the builder::
@@ -0,0 +1,308 @@
currentDirectory:: / useCaseSensitiveFileNames: false
Input::
//// [/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
//// [/src/a.ts]
const err: number = "error";
const a = "hello
//// [/src/tsconfig.json]
{
"compilerOptions": {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:08 AM] Projects in this build:
* src/tsconfig.json
[12:00:09 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:10 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
src/a.ts:2:17 - error TS1002: Unterminated string literal.
2 const a = "hello
   
Found 2 errors.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:11 AM] Projects in this build:
* src/tsconfig.json
[12:00:12 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:13 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
src/a.ts:2:17 - error TS1002: Unterminated string literal.
2 const a = "hello
   
Found 2 errors.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: Fix `a` error
Input::
//// [/src/a.ts]
const err: number = "error";
const a = "hello"
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:15 AM] Projects in this build:
* src/tsconfig.json
[12:00:16 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:17 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:18 AM] Projects in this build:
* src/tsconfig.json
[12:00:19 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:20 AM] Building project '/src/tsconfig.json'...
src/tsconfig.json:3:16 - error TS5023: Unknown compiler option 'noCheck'.
3 "noCheck": true,
   ~~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: Disable noCheck
Input::
//// [/src/tsconfig.json]
{
"compilerOptions": {
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:22 AM] Projects in this build:
* src/tsconfig.json
[12:00:23 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:24 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (used version)
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:25 AM] Projects in this build:
* src/tsconfig.json
[12:00:26 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:27 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (used version)
@@ -0,0 +1,164 @@
3:: Disable noCheck
*** Needs explanation
TsBuild info text without affectedFilesPendingEmit:: /src/tsconfig.tsbuildinfo.readable.baseline.txt::
CleanBuild:
{
"program": {
"fileInfos": {
"../lib/lib.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
[
"./a.ts",
[
{
"file": "./a.ts",
"start": 6,
"length": 3,
"code": 2322,
"category": 1,
"messageText": "Type 'string' is not assignable to type 'number'."
}
]
]
]
},
"version": "FakeTSVersion"
}
IncrementalBuild:
{
"program": {
"fileInfos": {
"../lib/lib.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true,
"noCheck": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion"
}
4:: no-change-run
*** Needs explanation
TsBuild info text without affectedFilesPendingEmit:: /src/tsconfig.tsbuildinfo.readable.baseline.txt::
CleanBuild:
{
"program": {
"fileInfos": {
"../lib/lib.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
[
"./a.ts",
[
{
"file": "./a.ts",
"start": 6,
"length": 3,
"code": 2322,
"category": 1,
"messageText": "Type 'string' is not assignable to type 'number'."
}
]
]
]
},
"version": "FakeTSVersion"
}
IncrementalBuild:
{
"program": {
"fileInfos": {
"../lib/lib.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true,
"noCheck": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion"
}
@@ -0,0 +1,360 @@
currentDirectory:: / useCaseSensitiveFileNames: false
Input::
//// [/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
//// [/src/a.ts]
const err: number = "error";
const a: number = "hello"
//// [/src/tsconfig.json]
{
"compilerOptions": {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:08 AM] Projects in this build:
* src/tsconfig.json
[12:00:09 AM] Project 'src/tsconfig.json' is out of date because output file 'src/tsconfig.tsbuildinfo' does not exist
[12:00:10 AM] Building project '/src/tsconfig.json'...
exitCode:: ExitStatus.Success
Program root files: [
"/src/a.ts"
]
Program options: {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (computed .d.ts during emit)
//// [/src/a.d.ts]
declare const err: number;
declare const a: number;
//// [/src/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedFormat":1},{"version":"9312413704-const err: number = \"error\";\nconst a: number = \"hello\"","signature":"-22763377875-declare const err: number;\ndeclare const a: number;\n","affectsGlobalScope":true,"impliedFormat":1}],"root":[2],"options":{"declaration":true,"emitDeclarationOnly":true,"noCheck":true},"referencedMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"}
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"original": {
"version": "9312413704-const err: number = \"error\";\nconst a: number = \"hello\"",
"signature": "-22763377875-declare const err: number;\ndeclare const a: number;\n",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "9312413704-const err: number = \"error\";\nconst a: number = \"hello\"",
"signature": "-22763377875-declare const err: number;\ndeclare const a: number;\n",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true,
"noCheck": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion",
"size": 940
}
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:15 AM] Projects in this build:
* src/tsconfig.json
[12:00:16 AM] Project 'src/tsconfig.json' is up to date because newest input 'src/a.ts' is older than output 'src/tsconfig.tsbuildinfo'
exitCode:: ExitStatus.Success
Change:: Fix `a` error
Input::
//// [/src/a.ts]
const err: number = "error";
const a = "hello"
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:18 AM] Projects in this build:
* src/tsconfig.json
[12:00:19 AM] Project 'src/tsconfig.json' is out of date because output 'src/tsconfig.tsbuildinfo' is older than input 'src/a.ts'
[12:00:20 AM] Building project '/src/tsconfig.json'...
exitCode:: ExitStatus.Success
Program root files: [
"/src/a.ts"
]
Program options: {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/src/a.ts
Shape signatures in builder refreshed for::
/src/a.ts (computed .d.ts)
//// [/src/a.d.ts]
declare const err: number;
declare const a = "hello";
//// [/src/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedFormat":1},{"version":"6909448549-const err: number = \"error\";\nconst a = \"hello\"","signature":"-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n","affectsGlobalScope":true,"impliedFormat":1}],"root":[2],"options":{"declaration":true,"emitDeclarationOnly":true,"noCheck":true},"referencedMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"}
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"original": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"signature": "-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"signature": "-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true,
"noCheck": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion",
"size": 936
}
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:25 AM] Projects in this build:
* src/tsconfig.json
[12:00:26 AM] Project 'src/tsconfig.json' is up to date because newest input 'src/a.ts' is older than output 'src/tsconfig.tsbuildinfo'
exitCode:: ExitStatus.Success
Change:: Disable noCheck
Input::
//// [/src/tsconfig.json]
{
"compilerOptions": {
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:28 AM] Projects in this build:
* src/tsconfig.json
[12:00:29 AM] Project 'src/tsconfig.json' is out of date because output 'src/tsconfig.tsbuildinfo' is older than input 'src/tsconfig.json'
[12:00:30 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
No shapes updated in the builder::
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:31 AM] Projects in this build:
* src/tsconfig.json
[12:00:32 AM] Project 'src/tsconfig.json' is out of date because output 'src/tsconfig.tsbuildinfo' is older than input 'src/tsconfig.json'
[12:00:33 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
No shapes updated in the builder::
@@ -0,0 +1,250 @@
currentDirectory:: / useCaseSensitiveFileNames: false
Input::
//// [/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
//// [/src/a.ts]
const err: number = "error";
const a: number = "hello"
//// [/src/tsconfig.json]
{
"compilerOptions": {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:08 AM] Projects in this build:
* src/tsconfig.json
[12:00:09 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:10 AM] Building project '/src/tsconfig.json'...
exitCode:: ExitStatus.Success
Program root files: [
"/src/a.ts"
]
Program options: {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (computed .d.ts during emit)
//// [/src/a.d.ts]
declare const err: number;
declare const a: number;
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:12 AM] Projects in this build:
* src/tsconfig.json
[12:00:13 AM] Project 'src/tsconfig.json' is up to date because newest input 'src/a.ts' is older than output 'src/a.d.ts'
exitCode:: ExitStatus.Success
Change:: Fix `a` error
Input::
//// [/src/a.ts]
const err: number = "error";
const a = "hello"
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:15 AM] Projects in this build:
* src/tsconfig.json
[12:00:16 AM] Project 'src/tsconfig.json' is out of date because output 'src/a.d.ts' is older than input 'src/a.ts'
[12:00:17 AM] Building project '/src/tsconfig.json'...
exitCode:: ExitStatus.Success
Program root files: [
"/src/a.ts"
]
Program options: {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (computed .d.ts during emit)
//// [/src/a.d.ts]
declare const err: number;
declare const a = "hello";
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:19 AM] Projects in this build:
* src/tsconfig.json
[12:00:20 AM] Project 'src/tsconfig.json' is up to date because newest input 'src/a.ts' is older than output 'src/a.d.ts'
exitCode:: ExitStatus.Success
Change:: Disable noCheck
Input::
//// [/src/tsconfig.json]
{
"compilerOptions": {
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:22 AM] Projects in this build:
* src/tsconfig.json
[12:00:23 AM] Project 'src/tsconfig.json' is out of date because output 'src/a.d.ts' is older than input 'src/tsconfig.json'
[12:00:24 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (used version)
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:25 AM] Projects in this build:
* src/tsconfig.json
[12:00:26 AM] Project 'src/tsconfig.json' is out of date because output 'src/a.d.ts' is older than input 'src/tsconfig.json'
[12:00:27 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (used version)
@@ -0,0 +1,164 @@
3:: Disable noCheck
*** Needs explanation
TsBuild info text without affectedFilesPendingEmit:: /src/tsconfig.tsbuildinfo.readable.baseline.txt::
CleanBuild:
{
"program": {
"fileInfos": {
"../lib/lib.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
[
"./a.ts",
[
{
"file": "./a.ts",
"start": 6,
"length": 3,
"code": 2322,
"category": 1,
"messageText": "Type 'string' is not assignable to type 'number'."
}
]
]
]
},
"version": "FakeTSVersion"
}
IncrementalBuild:
{
"program": {
"fileInfos": {
"../lib/lib.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true,
"noCheck": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion"
}
4:: no-change-run
*** Needs explanation
TsBuild info text without affectedFilesPendingEmit:: /src/tsconfig.tsbuildinfo.readable.baseline.txt::
CleanBuild:
{
"program": {
"fileInfos": {
"../lib/lib.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
[
"./a.ts",
[
{
"file": "./a.ts",
"start": 6,
"length": 3,
"code": 2322,
"category": 1,
"messageText": "Type 'string' is not assignable to type 'number'."
}
]
]
]
},
"version": "FakeTSVersion"
}
IncrementalBuild:
{
"program": {
"fileInfos": {
"../lib/lib.d.ts": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true,
"noCheck": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion"
}
@@ -0,0 +1,388 @@
currentDirectory:: / useCaseSensitiveFileNames: false
Input::
//// [/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
//// [/src/a.ts]
const err: number = "error";
const a = "hello
//// [/src/tsconfig.json]
{
"compilerOptions": {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:08 AM] Projects in this build:
* src/tsconfig.json
[12:00:09 AM] Project 'src/tsconfig.json' is out of date because output file 'src/tsconfig.tsbuildinfo' does not exist
[12:00:10 AM] Building project '/src/tsconfig.json'...
src/a.ts:2:17 - error TS1002: Unterminated string literal.
2 const a = "hello
   
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
//// [/src/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","signature":false,"affectsGlobalScope":true,"impliedFormat":1},{"version":"8018408675-const err: number = \"error\";\nconst a = \"hello","signature":false,"affectsGlobalScope":true,"impliedFormat":1}],"root":[2],"options":{"declaration":true,"emitDeclarationOnly":true,"noCheck":true},"referencedMap":[],"changeFileSet":[1,2]},"version":"FakeTSVersion"}
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": false,
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"original": {
"version": "8018408675-const err: number = \"error\";\nconst a = \"hello",
"signature": false,
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "8018408675-const err: number = \"error\";\nconst a = \"hello",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true,
"noCheck": true
},
"referencedMap": {},
"changeFileSet": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion",
"size": 871
}
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:14 AM] Projects in this build:
* src/tsconfig.json
[12:00:15 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:16 AM] Building project '/src/tsconfig.json'...
src/a.ts:2:17 - error TS1002: Unterminated string literal.
2 const a = "hello
   
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: Fix `a` error
Input::
//// [/src/a.ts]
const err: number = "error";
const a = "hello"
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:18 AM] Projects in this build:
* src/tsconfig.json
[12:00:19 AM] Project 'src/tsconfig.json' is out of date because buildinfo file 'src/tsconfig.tsbuildinfo' indicates that some of the changes were not emitted
[12:00:20 AM] Building project '/src/tsconfig.json'...
exitCode:: ExitStatus.Success
Program root files: [
"/src/a.ts"
]
Program options: {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (computed .d.ts)
//// [/src/a.d.ts]
declare const err: number;
declare const a = "hello";
//// [/src/tsconfig.tsbuildinfo]
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts"],"fileInfos":[{"version":"3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true,"impliedFormat":1},{"version":"6909448549-const err: number = \"error\";\nconst a = \"hello\"","signature":"-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n","affectsGlobalScope":true,"impliedFormat":1}],"root":[2],"options":{"declaration":true,"emitDeclarationOnly":true,"noCheck":true},"referencedMap":[],"semanticDiagnosticsPerFile":[1,2]},"version":"FakeTSVersion"}
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
{
"program": {
"fileNames": [
"../lib/lib.d.ts",
"./a.ts"
],
"fileInfos": {
"../lib/lib.d.ts": {
"original": {
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"signature": "3858781397-/// <reference no-default-lib=\"true\"/>\ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array<T> { length: number; [n: number]: T; }\ninterface ReadonlyArray<T> {}\ndeclare const console: { log(msg: any): void; };",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
},
"./a.ts": {
"original": {
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"signature": "-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n",
"affectsGlobalScope": true,
"impliedFormat": 1
},
"version": "6909448549-const err: number = \"error\";\nconst a = \"hello\"",
"signature": "-22441876417-declare const err: number;\ndeclare const a = \"hello\";\n",
"affectsGlobalScope": true,
"impliedFormat": "commonjs"
}
},
"root": [
[
2,
"./a.ts"
]
],
"options": {
"declaration": true,
"emitDeclarationOnly": true,
"noCheck": true
},
"referencedMap": {},
"semanticDiagnosticsPerFile": [
"../lib/lib.d.ts",
"./a.ts"
]
},
"version": "FakeTSVersion",
"size": 936
}
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:25 AM] Projects in this build:
* src/tsconfig.json
[12:00:26 AM] Project 'src/tsconfig.json' is up to date because newest input 'src/a.ts' is older than output 'src/tsconfig.tsbuildinfo'
exitCode:: ExitStatus.Success
Change:: Disable noCheck
Input::
//// [/src/tsconfig.json]
{
"compilerOptions": {
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:28 AM] Projects in this build:
* src/tsconfig.json
[12:00:29 AM] Project 'src/tsconfig.json' is out of date because output 'src/tsconfig.tsbuildinfo' is older than input 'src/tsconfig.json'
[12:00:30 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
No shapes updated in the builder::
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v --incremental
[12:00:31 AM] Projects in this build:
* src/tsconfig.json
[12:00:32 AM] Project 'src/tsconfig.json' is out of date because output 'src/tsconfig.tsbuildinfo' is older than input 'src/tsconfig.json'
[12:00:33 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"incremental": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
No shapes updated in the builder::
@@ -0,0 +1,276 @@
currentDirectory:: / useCaseSensitiveFileNames: false
Input::
//// [/lib/lib.d.ts]
/// <reference no-default-lib="true"/>
interface Boolean {}
interface Function {}
interface CallableFunction {}
interface NewableFunction {}
interface IArguments {}
interface Number { toExponential: any; }
interface Object {}
interface RegExp {}
interface String { charAt: any; }
interface Array<T> { length: number; [n: number]: T; }
interface ReadonlyArray<T> {}
declare const console: { log(msg: any): void; };
//// [/src/a.ts]
const err: number = "error";
const a = "hello
//// [/src/tsconfig.json]
{
"compilerOptions": {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:08 AM] Projects in this build:
* src/tsconfig.json
[12:00:09 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:10 AM] Building project '/src/tsconfig.json'...
src/a.ts:2:17 - error TS1002: Unterminated string literal.
2 const a = "hello
   
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:11 AM] Projects in this build:
* src/tsconfig.json
[12:00:12 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:13 AM] Building project '/src/tsconfig.json'...
src/a.ts:2:17 - error TS1002: Unterminated string literal.
2 const a = "hello
   
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
No cached semantic diagnostics in the builder::
No shapes updated in the builder::
Change:: Fix `a` error
Input::
//// [/src/a.ts]
const err: number = "error";
const a = "hello"
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:15 AM] Projects in this build:
* src/tsconfig.json
[12:00:16 AM] Project 'src/tsconfig.json' is out of date because output file 'src/a.d.ts' does not exist
[12:00:17 AM] Building project '/src/tsconfig.json'...
exitCode:: ExitStatus.Success
Program root files: [
"/src/a.ts"
]
Program options: {
"noCheck": true,
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (computed .d.ts during emit)
//// [/src/a.d.ts]
declare const err: number;
declare const a = "hello";
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:19 AM] Projects in this build:
* src/tsconfig.json
[12:00:20 AM] Project 'src/tsconfig.json' is up to date because newest input 'src/a.ts' is older than output 'src/a.d.ts'
exitCode:: ExitStatus.Success
Change:: Disable noCheck
Input::
//// [/src/tsconfig.json]
{
"compilerOptions": {
"emitDeclarationOnly": true,
"declaration": true
}
}
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:22 AM] Projects in this build:
* src/tsconfig.json
[12:00:23 AM] Project 'src/tsconfig.json' is out of date because output 'src/a.d.ts' is older than input 'src/tsconfig.json'
[12:00:24 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (used version)
Change:: no-change-run
Input::
Output::
/lib/tsc --b /src/tsconfig.json -v
[12:00:25 AM] Projects in this build:
* src/tsconfig.json
[12:00:26 AM] Project 'src/tsconfig.json' is out of date because output 'src/a.d.ts' is older than input 'src/tsconfig.json'
[12:00:27 AM] Building project '/src/tsconfig.json'...
src/a.ts:1:7 - error TS2322: Type 'string' is not assignable to type 'number'.
1 const err: number = "error";
   ~~~
Found 1 error.
exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
Program root files: [
"/src/a.ts"
]
Program options: {
"emitDeclarationOnly": true,
"declaration": true,
"configFilePath": "/src/tsconfig.json"
}
Program structureReused: Not
Program files::
/lib/lib.d.ts
/src/a.ts
Semantic diagnostics in builder refreshed for::
/lib/lib.d.ts
/src/a.ts
Shape signatures in builder refreshed for::
/lib/lib.d.ts (used version)
/src/a.ts (used version)
@@ -0,0 +1,23 @@
//// [tests/cases/compiler/typeReferenceDirectives11.ts] ////
//// [index.d.ts]
interface Lib { x }
//// [mod1.ts]
export function foo(): Lib { return {x: 1} }
//// [mod2.ts]
import {foo} from "./mod1";
export const bar = foo();
!!!! File /output.d.ts missing from original emit, but present in noCheck emit
//// [output.d.ts]
declare module "mod1" {
export function foo(): Lib;
}
declare module "mod2" {
export const bar: Lib;
}
@@ -0,0 +1,60 @@
//// [tests/cases/compiler/typeReferenceDirectives12.ts] ////
//// [index.d.ts]
interface Lib { x }
//// [main.ts]
export class Cls {
x
}
//// [mod1.ts]
/// <reference types="lib" />
import {Cls} from "./main";
Cls.prototype.foo = function() { return undefined; }
declare module "./main" {
interface Cls {
foo(): Lib;
}
namespace Cls {
function bar(): Lib;
}
}
//// [mod2.ts]
import { Cls } from "./main";
import "./mod1";
export const cls = Cls;
export const foo = new Cls().foo();
export const bar = Cls.bar();
!!!! File /output.d.ts missing from original emit, but present in noCheck emit
//// [output.d.ts]
declare module "main" {
export class Cls {
x: any;
}
}
declare module "mod1" {
module "main" {
interface Cls {
foo(): Lib;
}
namespace Cls {
function bar(): Lib;
}
}
}
declare module "mod2" {
import { Cls } from "main";
import "mod1";
export const cls: typeof Cls;
export const foo: Lib;
export const bar: Lib;
}
@@ -833,3 +833,21 @@ type U3 = [...[string, number], boolean];
type ToStringLength1<T extends any[]> = `${T['length']}`;
type ToStringLength2<T extends any[]> = `${[...T]['length']}`;
type AnyArr = [...any];
!!!! File variadicTuples1.d.ts differs from original emit in noCheck emit
//// [variadicTuples1.d.ts]
===================================================================
--- Expected The full check baseline
+++ Actual with noCheck set
@@ -17,9 +17,9 @@
declare const tc2: [string, number];
declare const tc3: [number, number, number, ...string[]];
declare const tc4: [...string[], number, number, number];
declare function concat2<T extends readonly unknown[], U extends readonly unknown[]>(t: T, u: U): (T[number] | U[number])[];
-declare const tc5: (2 | 4 | 1 | 3 | 6 | 5)[];
+declare const tc5: (1 | 2 | 3 | 6 | 4 | 5)[];
declare function foo1(a: number, b: string, c: boolean, ...d: number[]): void;
declare function foo2(t1: [number, string], t2: [boolean], a1: number[]): void;
declare function foo3<T extends unknown[]>(x: number, ...args: [...T, number]): T;
declare function foo4<U extends unknown[]>(u: U): void;
@@ -67,3 +67,20 @@ declare const f: (arg: LiteralsOrWeakTypes) => WeakTypes | "A" | "B";
declare const g: (arg: WeakTypes) => WeakTypes;
declare const h: (arg: LiteralsOrWeakTypes) => LiteralsOrWeakTypes;
declare const i: (arg: WeakTypes) => WeakTypes;
!!!! File weakTypesAndLiterals01.d.ts differs from original emit in noCheck emit
//// [weakTypesAndLiterals01.d.ts]
===================================================================
--- Expected The full check baseline
+++ Actual with noCheck set
@@ -7,8 +7,8 @@
otherOptionalProp?: number;
};
type LiteralsOrWeakTypes = "A" | "B" | WeakTypes;
declare let aOrB: "A" | "B";
-declare const f: (arg: LiteralsOrWeakTypes) => WeakTypes | "A" | "B";
+declare const f: (arg: LiteralsOrWeakTypes) => "A" | "B" | WeakTypes;
declare const g: (arg: WeakTypes) => WeakTypes;
declare const h: (arg: LiteralsOrWeakTypes) => LiteralsOrWeakTypes;
declare const i: (arg: WeakTypes) => WeakTypes;
@@ -0,0 +1,6 @@
// @noCheck: true
// @emitDeclarationOnly: true
// @declaration: true
// @strict: true
export const a: number = "not ok";
+7
View File
@@ -0,0 +1,7 @@
// @noCheck: true
// @emitDeclarationOnly: true
// @declaration: true
// @noEmit: true
// @strict: true
export const a: number = "not ok";
@@ -0,0 +1,4 @@
// @noCheck: true
// @strict: true
export const a: number = "not ok";