Skip to content

Commit 8fc7268

Browse files
committed
Dont record empty reference map
1 parent 666f49f commit 8fc7268

File tree

461 files changed

+1359
-2018
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

461 files changed

+1359
-2018
lines changed

src/compiler/builder.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1164,7 +1164,7 @@ function getBuildInfo(state: BuilderProgramState): BuildInfo {
11641164
});
11651165

11661166
let referencedMap: ProgramBuildInfoReferencedMap | undefined;
1167-
if (state.referencedMap) {
1167+
if (state.referencedMap?.size()) {
11681168
referencedMap = arrayFrom(state.referencedMap.keys()).sort(compareStringsCaseSensitive).map(key => [
11691169
toFileId(key),
11701170
toFileIdListId(state.referencedMap!.getValues(key)!),
@@ -1909,7 +1909,7 @@ export function createBuilderProgramUsingProgramBuildInfo(buildInfo: BuildInfo,
19091909
state = {
19101910
fileInfos,
19111911
compilerOptions: program.options ? convertToOptionsWithAbsolutePaths(program.options, toAbsolutePath) : {},
1912-
referencedMap: toManyToManyPathMap(program.referencedMap),
1912+
referencedMap: toManyToManyPathMap(program.referencedMap, program.options ?? {}),
19131913
semanticDiagnosticsPerFile: toPerFileSemanticDiagnostics(program.semanticDiagnosticsPerFile, fileInfos, changedFilesSet),
19141914
emitDiagnosticsPerFile: toPerFileEmitDiagnostics(program.emitDiagnosticsPerFile),
19151915
hasReusableDiagnostic: true,
@@ -1962,12 +1962,9 @@ export function createBuilderProgramUsingProgramBuildInfo(buildInfo: BuildInfo,
19621962
return filePathsSetList![fileIdsListId - 1];
19631963
}
19641964

1965-
function toManyToManyPathMap(referenceMap: ProgramBuildInfoReferencedMap | undefined): BuilderState.ManyToManyPathMap | undefined {
1966-
if (!referenceMap) {
1967-
return undefined;
1968-
}
1969-
1970-
const map = BuilderState.createManyToManyPathMap();
1965+
function toManyToManyPathMap(referenceMap: ProgramBuildInfoReferencedMap | undefined, options: CompilerOptions): BuilderState.ManyToManyPathMap | undefined {
1966+
const map = BuilderState.createReferencedMap(options);
1967+
if (!map || !referenceMap) return map;
19711968
referenceMap.forEach(([fileId, fileIdListId]) => map.set(toFilePath(fileId), toFilePathsSet(fileIdListId)));
19721969
return map;
19731970
}

src/compiler/builderState.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {
22
arrayFrom,
33
CancellationToken,
4+
CompilerOptions,
45
computeSignatureWithDiagnostics,
56
CustomTransformers,
67
Debug,
@@ -110,6 +111,7 @@ export namespace BuilderState {
110111
getKeys(v: Path): ReadonlySet<Path> | undefined;
111112
getValues(k: Path): ReadonlySet<Path> | undefined;
112113
keys(): IterableIterator<Path>;
114+
size(): number;
113115
}
114116

115117
export interface ManyToManyPathMap extends ReadonlyManyToManyPathMap {
@@ -123,6 +125,7 @@ export namespace BuilderState {
123125
getKeys: v => reverse.get(v),
124126
getValues: k => forward.get(k),
125127
keys: () => forward.keys(),
128+
size: () => forward.size,
126129

127130
deleteKey: k => {
128131
(deleted ||= new Set<Path>()).add(k);
@@ -292,15 +295,19 @@ export namespace BuilderState {
292295
return oldState && !oldState.referencedMap === !newReferencedMap;
293296
}
294297

298+
export function createReferencedMap(options: CompilerOptions) {
299+
return options.module !== ModuleKind.None && !options.outFile ?
300+
createManyToManyPathMap() :
301+
undefined;
302+
}
303+
295304
/**
296305
* Creates the state of file references and signature for the new program from oldState if it is safe
297306
*/
298307
export function create(newProgram: Program, oldState: Readonly<BuilderState> | undefined, disableUseFileVersionAsSignature: boolean): BuilderState {
299308
const fileInfos = new Map<Path, FileInfo>();
300309
const options = newProgram.getCompilerOptions();
301-
const isOutFile = options.outFile;
302-
const referencedMap = options.module !== ModuleKind.None && !isOutFile ?
303-
createManyToManyPathMap() : undefined;
310+
const referencedMap = createReferencedMap(options);
304311
const useOldState = canReuseOldState(referencedMap, oldState);
305312

306313
// Ensure source files have parent pointers set
@@ -323,7 +330,7 @@ export namespace BuilderState {
323330
version,
324331
signature,
325332
// No need to calculate affectsGlobalScope with --out since its not used at all
326-
affectsGlobalScope: !isOutFile ? isFileAffectingGlobalScope(sourceFile) || undefined : undefined,
333+
affectsGlobalScope: !options.outFile ? isFileAffectingGlobalScope(sourceFile) || undefined : undefined,
327334
impliedFormat: sourceFile.impliedNodeFormat,
328335
});
329336
}

tests/baselines/reference/tsbuild/configFileErrors/reports-syntax-errors-in-config-file-discrepancies.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ CleanBuild:
3434
"composite": true,
3535
"declaration": true
3636
},
37-
"referencedMap": {},
3837
"changeFileSet": [
3938
"../lib/lib.d.ts",
4039
"./a.ts",
@@ -74,7 +73,6 @@ IncrementalBuild:
7473
"options": {
7574
"composite": true
7675
},
77-
"referencedMap": {},
7876
"changeFileSet": [
7977
"../lib/lib.d.ts",
8078
"./a.ts",

tests/baselines/reference/tsbuild/configFileErrors/reports-syntax-errors-in-config-file.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
4848

4949

5050
//// [/src/tsconfig.tsbuildinfo]
51-
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts","./b.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":"4646078106-export function foo() { }","signature":false,"impliedFormat":1},{"version":"1045484683-export function bar() { }","signature":false,"impliedFormat":1}],"root":[2,3],"options":{"composite":true},"referencedMap":[],"changeFileSet":[1,2,3]},"version":"FakeTSVersion"}
51+
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts","./b.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":"4646078106-export function foo() { }","signature":false,"impliedFormat":1},{"version":"1045484683-export function bar() { }","signature":false,"impliedFormat":1}],"root":[2,3],"options":{"composite":true},"changeFileSet":[1,2,3]},"version":"FakeTSVersion"}
5252

5353
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
5454
{
@@ -102,15 +102,14 @@ exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
102102
"options": {
103103
"composite": true
104104
},
105-
"referencedMap": {},
106105
"changeFileSet": [
107106
"../lib/lib.d.ts",
108107
"./a.ts",
109108
"./b.ts"
110109
]
111110
},
112111
"version": "FakeTSVersion",
113-
"size": 877
112+
"size": 858
114113
}
115114

116115

@@ -167,7 +166,7 @@ exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
167166

168167

169168
//// [/src/tsconfig.tsbuildinfo]
170-
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts","./b.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":"9819159940-export function foo() { }export function fooBar() { }","signature":false,"impliedFormat":1},{"version":"1045484683-export function bar() { }","signature":false,"impliedFormat":1}],"root":[2,3],"options":{"composite":true,"declaration":true},"referencedMap":[],"changeFileSet":[1,2,3]},"version":"FakeTSVersion"}
169+
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts","./b.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":"9819159940-export function foo() { }export function fooBar() { }","signature":false,"impliedFormat":1},{"version":"1045484683-export function bar() { }","signature":false,"impliedFormat":1}],"root":[2,3],"options":{"composite":true,"declaration":true},"changeFileSet":[1,2,3]},"version":"FakeTSVersion"}
171170

172171
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
173172
{
@@ -222,15 +221,14 @@ exitCode:: ExitStatus.DiagnosticsPresent_OutputsSkipped
222221
"composite": true,
223222
"declaration": true
224223
},
225-
"referencedMap": {},
226224
"changeFileSet": [
227225
"../lib/lib.d.ts",
228226
"./a.ts",
229227
"./b.ts"
230228
]
231229
},
232230
"version": "FakeTSVersion",
233-
"size": 924
231+
"size": 905
234232
}
235233

236234

@@ -301,7 +299,7 @@ function bar() { }
301299

302300

303301
//// [/src/tsconfig.tsbuildinfo]
304-
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts","./b.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":"9819159940-export function foo() { }export function fooBar() { }","signature":"-9218003498-export declare function foo(): void;\nexport declare function fooBar(): void;\n","impliedFormat":1},{"version":"1045484683-export function bar() { }","signature":"-2904461644-export declare function bar(): void;\n","impliedFormat":1}],"root":[2,3],"options":{"composite":true,"declaration":true},"referencedMap":[],"latestChangedDtsFile":"./b.d.ts"},"version":"FakeTSVersion"}
302+
{"program":{"fileNames":["../lib/lib.d.ts","./a.ts","./b.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":"9819159940-export function foo() { }export function fooBar() { }","signature":"-9218003498-export declare function foo(): void;\nexport declare function fooBar(): void;\n","impliedFormat":1},{"version":"1045484683-export function bar() { }","signature":"-2904461644-export declare function bar(): void;\n","impliedFormat":1}],"root":[2,3],"options":{"composite":true,"declaration":true},"latestChangedDtsFile":"./b.d.ts"},"version":"FakeTSVersion"}
305303

306304
//// [/src/tsconfig.tsbuildinfo.readable.baseline.txt]
307305
{
@@ -358,10 +356,9 @@ function bar() { }
358356
"composite": true,
359357
"declaration": true
360358
},
361-
"referencedMap": {},
362359
"latestChangedDtsFile": "./b.d.ts"
363360
},
364361
"version": "FakeTSVersion",
365-
"size": 1051
362+
"size": 1032
366363
}
367364

tests/baselines/reference/tsbuild/configFileExtends/when-building-project-uses-reference-and-both-extend-config-with-include.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ exports.a = 1;
112112

113113

114114
//// [/src/target-tsc-build/shared/tsconfig.tsbuildinfo]
115-
{"program":{"fileNames":["../../../lib/lib.d.ts","../../shared/index.ts","../../shared/typings-base/globals.d.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":"-22125360210-export const a: Unrestricted = 1;","signature":"115643418-export declare const a: Unrestricted;\n","impliedFormat":1},{"version":"4725476611-type Unrestricted = any;","affectsGlobalScope":true,"impliedFormat":1}],"root":[2,3],"options":{"composite":true,"outDir":"..","rootDir":"../.."},"referencedMap":[],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
115+
{"program":{"fileNames":["../../../lib/lib.d.ts","../../shared/index.ts","../../shared/typings-base/globals.d.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":"-22125360210-export const a: Unrestricted = 1;","signature":"115643418-export declare const a: Unrestricted;\n","impliedFormat":1},{"version":"4725476611-type Unrestricted = any;","affectsGlobalScope":true,"impliedFormat":1}],"root":[2,3],"options":{"composite":true,"outDir":"..","rootDir":"../.."},"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
116116

117117
//// [/src/target-tsc-build/shared/tsconfig.tsbuildinfo.readable.baseline.txt]
118118
{
@@ -171,11 +171,10 @@ exports.a = 1;
171171
"outDir": "..",
172172
"rootDir": "../.."
173173
},
174-
"referencedMap": {},
175174
"latestChangedDtsFile": "./index.d.ts"
176175
},
177176
"version": "FakeTSVersion",
178-
"size": 1021
177+
"size": 1002
179178
}
180179

181180
//// [/src/target-tsc-build/webpack/index.d.ts]
@@ -190,7 +189,7 @@ exports.b = 1;
190189

191190

192191
//// [/src/target-tsc-build/webpack/tsconfig.tsbuildinfo]
193-
{"program":{"fileNames":["../../../lib/lib.d.ts","../../webpack/index.ts","../../shared/typings-base/globals.d.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":"-14405273073-export const b: Unrestricted = 1;","signature":"-6010538469-export declare const b: Unrestricted;\n","impliedFormat":1},{"version":"4725476611-type Unrestricted = any;","affectsGlobalScope":true,"impliedFormat":1}],"root":[2,3],"options":{"composite":true,"outDir":"..","rootDir":"../.."},"referencedMap":[],"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
192+
{"program":{"fileNames":["../../../lib/lib.d.ts","../../webpack/index.ts","../../shared/typings-base/globals.d.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":"-14405273073-export const b: Unrestricted = 1;","signature":"-6010538469-export declare const b: Unrestricted;\n","impliedFormat":1},{"version":"4725476611-type Unrestricted = any;","affectsGlobalScope":true,"impliedFormat":1}],"root":[2,3],"options":{"composite":true,"outDir":"..","rootDir":"../.."},"latestChangedDtsFile":"./index.d.ts"},"version":"FakeTSVersion"}
194193

195194
//// [/src/target-tsc-build/webpack/tsconfig.tsbuildinfo.readable.baseline.txt]
196195
{
@@ -249,10 +248,9 @@ exports.b = 1;
249248
"outDir": "..",
250249
"rootDir": "../.."
251250
},
252-
"referencedMap": {},
253251
"latestChangedDtsFile": "./index.d.ts"
254252
},
255253
"version": "FakeTSVersion",
256-
"size": 1024
254+
"size": 1005
257255
}
258256

0 commit comments

Comments
 (0)