Skip to content

Commit 4055689

Browse files
authored
Merge pull request #34487 from microsoft/skipTsBuildinfoEmit
Do not write build info if there are no files to emit
2 parents f5dbcb7 + afee423 commit 4055689

File tree

9 files changed

+123
-12
lines changed

9 files changed

+123
-12
lines changed

src/compiler/builder.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ namespace ts {
251251
state.seenAffectedFiles = createMap<true>();
252252
}
253253

254+
state.emittedBuildInfo = !state.changedFilesSet.size && !state.affectedFilesPendingEmit;
254255
return state;
255256
}
256257

src/testRunner/unittests/tsc/helpers.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,15 @@ namespace ts {
169169
Initial = "initial-build",
170170
IncrementalDtsChange = "incremental-declaration-changes",
171171
IncrementalDtsUnchanged = "incremental-declaration-doesnt-change",
172-
IncrementalHeadersChange = "incremental-headers-change-without-dts-changes"
172+
IncrementalHeadersChange = "incremental-headers-change-without-dts-changes",
173+
NoChangeRun ="no-change-run"
173174
}
174175

176+
export const noChangeRun: TscIncremental = {
177+
buildKind: BuildKind.NoChangeRun,
178+
modifyFs: noop
179+
};
180+
175181
export interface TscCompile {
176182
scenario: string;
177183
subScenario: string;

src/testRunner/unittests/tsc/incremental.ts

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,10 @@ namespace ts {
1717
}`,
1818
}),
1919
commandLineArgs: ["--incremental", "--p", "src/project", "--tsBuildInfoFile", "src/project/.tsbuildinfo"],
20-
incrementalScenarios: [{
21-
buildKind: BuildKind.IncrementalDtsUnchanged,
22-
modifyFs: noop,
23-
}]
20+
incrementalScenarios: [noChangeRun]
2421
});
2522

26-
verifyTsc({
23+
verifyTscIncrementalEdits({
2724
scenario: "incremental",
2825
subScenario: "when passing rootDir from commandline",
2926
fs: () => loadProjectFromFiles({
@@ -37,6 +34,25 @@ namespace ts {
3734
}`,
3835
}),
3936
commandLineArgs: ["--p", "src/project", "--rootDir", "src/project/src"],
37+
incrementalScenarios: [noChangeRun]
38+
});
39+
40+
verifyTscIncrementalEdits({
41+
scenario: "incremental",
42+
subScenario: "with only dts files",
43+
fs: () => loadProjectFromFiles({
44+
"/src/project/src/main.d.ts": "export const x = 10;",
45+
"/src/project/src/another.d.ts": "export const y = 10;",
46+
"/src/project/tsconfig.json": "{}",
47+
}),
48+
commandLineArgs: ["--incremental", "--p", "src/project"],
49+
incrementalScenarios: [
50+
noChangeRun,
51+
{
52+
buildKind: BuildKind.IncrementalDtsUnchanged,
53+
modifyFs: fs => appendText(fs, "/src/project/src/main.d.ts", "export const xy = 100;")
54+
}
55+
]
4056
});
4157
});
4258
}

tests/baselines/reference/tsc/incremental/incremental-declaration-doesnt-change/when-passing-filename-for-buildinfo-on-commandline.js

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
//// [/lib/incremental-declaration-doesnt-changeOutput.txt]
2+
/lib/tsc --incremental --p src/project
3+
exitCode:: 0
4+
5+
6+
//// [/src/project/src/main.d.ts]
7+
export const x = 10;export const xy = 100;
8+
9+
//// [/src/project/tsconfig.tsbuildinfo]
10+
{
11+
"program": {
12+
"fileInfos": {
13+
"../../lib/lib.d.ts": {
14+
"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; };",
15+
"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; };"
16+
},
17+
"./src/another.d.ts": {
18+
"version": "-13729955264-export const y = 10;",
19+
"signature": "-13729955264-export const y = 10;"
20+
},
21+
"./src/main.d.ts": {
22+
"version": "-10808461502-export const x = 10;export const xy = 100;",
23+
"signature": "-10808461502-export const x = 10;export const xy = 100;"
24+
}
25+
},
26+
"options": {
27+
"incremental": true,
28+
"project": "./",
29+
"configFilePath": "./tsconfig.json"
30+
},
31+
"referencedMap": {},
32+
"exportedModulesMap": {},
33+
"semanticDiagnosticsPerFile": [
34+
"../../lib/lib.d.ts",
35+
"./src/another.d.ts",
36+
"./src/main.d.ts"
37+
]
38+
},
39+
"version": "FakeTSVersion"
40+
}
41+
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
//// [/lib/initial-buildOutput.txt]
2+
/lib/tsc --incremental --p src/project
3+
exitCode:: 0
4+
5+
6+
//// [/src/project/tsconfig.tsbuildinfo]
7+
{
8+
"program": {
9+
"fileInfos": {
10+
"../../lib/lib.d.ts": {
11+
"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; };",
12+
"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; };"
13+
},
14+
"./src/another.d.ts": {
15+
"version": "-13729955264-export const y = 10;",
16+
"signature": "-13729955264-export const y = 10;"
17+
},
18+
"./src/main.d.ts": {
19+
"version": "-10726455937-export const x = 10;",
20+
"signature": "-10726455937-export const x = 10;"
21+
}
22+
},
23+
"options": {
24+
"incremental": true,
25+
"project": "./",
26+
"configFilePath": "./tsconfig.json"
27+
},
28+
"referencedMap": {},
29+
"exportedModulesMap": {},
30+
"semanticDiagnosticsPerFile": [
31+
"../../lib/lib.d.ts",
32+
"./src/another.d.ts",
33+
"./src/main.d.ts"
34+
]
35+
},
36+
"version": "FakeTSVersion"
37+
}
38+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
//// [/lib/no-change-runOutput.txt]
2+
/lib/tsc --incremental --p src/project --tsBuildInfoFile src/project/.tsbuildinfo
3+
exitCode:: 0
4+
5+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
//// [/lib/no-change-runOutput.txt]
2+
/lib/tsc --p src/project --rootDir src/project/src
3+
exitCode:: 0
4+
5+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
//// [/lib/no-change-runOutput.txt]
2+
/lib/tsc --incremental --p src/project
3+
exitCode:: 0
4+
5+

0 commit comments

Comments
 (0)