Skip to content

Commit beb375a

Browse files
authored
Fix incorrect lib condition again! (#58945)
1 parent ef079c9 commit beb375a

14 files changed

+496
-37
lines changed

src/compiler/program.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2777,7 +2777,7 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
27772777
return true;
27782778
}
27792779

2780-
if (!options.noLib) {
2780+
if (options.noLib) {
27812781
return false;
27822782
}
27832783

@@ -2788,7 +2788,11 @@ export function createProgram(rootNamesOrOptions: readonly string[] | CreateProg
27882788
return equalityComparer(file.fileName, getDefaultLibraryFileName());
27892789
}
27902790
else {
2791-
return some(options.lib, libFileName => equalityComparer(file.fileName, resolvedLibReferences!.get(libFileName)!.actual));
2791+
return some(options.lib, libFileName => {
2792+
// We might not have resolved lib if one of the root file included contained no-default-lib = true
2793+
const resolvedLib = resolvedLibReferences!.get(libFileName);
2794+
return !!resolvedLib && equalityComparer(file.fileName, resolvedLib.actual);
2795+
});
27922796
}
27932797
}
27942798

src/testRunner/unittests/tsc/libraryResolution.ts

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
1+
import { dedent } from "../../_namespaces/Utils.js";
2+
import { jsonToReadableText } from "../helpers.js";
3+
import { libContent } from "../helpers/contents.js";
14
import {
25
getCommandLineArgsForLibResolution,
36
getFsForLibResolution,
47
getFsForLibResolutionUnknown,
58
} from "../helpers/libraryResolution.js";
6-
import { verifyTsc } from "../helpers/tsc.js";
9+
import {
10+
noChangeRun,
11+
verifyTsc,
12+
} from "../helpers/tsc.js";
13+
import { loadProjectFromFiles } from "../helpers/vfs.js";
714

815
describe("unittests:: tsc:: libraryResolution:: library file resolution", () => {
916
function verify(libRedirection?: true, withoutConfig?: true) {
@@ -27,4 +34,52 @@ describe("unittests:: tsc:: libraryResolution:: library file resolution", () =>
2734
commandLineArgs: getCommandLineArgsForLibResolution(/*withoutConfig*/ undefined),
2835
baselinePrograms: true,
2936
});
37+
38+
verifyTsc({
39+
scenario: "libraryResolution",
40+
subScenario: "when noLib toggles",
41+
fs: () =>
42+
loadProjectFromFiles({
43+
"/src/a.d.ts": `declare const a = "hello";`,
44+
"/src/b.ts": `const b = 10;`,
45+
"/src/tsconfig.json": jsonToReadableText({
46+
compilerOptions: {
47+
declaration: true,
48+
incremental: true,
49+
lib: ["es6"],
50+
},
51+
}),
52+
"/lib/lib.es2015.d.ts": libContent,
53+
}),
54+
commandLineArgs: ["-p", "/src/tsconfig.json"],
55+
edits: [
56+
{
57+
...noChangeRun,
58+
commandLineArgs: ["-p", "/src/tsconfig.json", "--noLib"],
59+
},
60+
],
61+
baselinePrograms: true,
62+
});
63+
64+
verifyTsc({
65+
scenario: "libraryResolution",
66+
subScenario: "when one of the file skips default lib inclusion",
67+
fs: () =>
68+
loadProjectFromFiles({
69+
"/src/a.d.ts": dedent`
70+
/// <reference no-default-lib="true"/>
71+
/// <reference lib="es6"/>
72+
declare const a = "hello";
73+
`,
74+
"/src/b.d.ts": `export const b = 10;`,
75+
"/src/tsconfig.json": jsonToReadableText({
76+
compilerOptions: {
77+
lib: ["es6", "dom"],
78+
},
79+
}),
80+
"/lib/lib.es2015.d.ts": libContent,
81+
}),
82+
commandLineArgs: ["-p", "/src/tsconfig.json", "-i", "--explainFiles"],
83+
baselinePrograms: true,
84+
});
3085
});

tests/baselines/reference/tsbuild/libraryResolution/with-config-with-redirection.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -442,14 +442,14 @@ Semantic diagnostics in builder refreshed for::
442442
Shape signatures in builder refreshed for::
443443
/home/src/projects/node_modules/@typescript/lib-webworker/index.d.ts (used version)
444444
/home/src/projects/node_modules/@typescript/lib-scripthost/index.d.ts (used version)
445-
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
446445
/home/src/projects/project1/core.d.ts (used version)
447446
/home/src/projects/project1/file.ts (computed .d.ts during emit)
448447
/home/src/projects/project1/file2.ts (computed .d.ts during emit)
449448
/home/src/projects/project1/index.ts (computed .d.ts during emit)
450449
/home/src/projects/project1/utils.d.ts (used version)
451450
/home/src/projects/project1/typeroot1/sometype/index.d.ts (used version)
452451
/home/src/projects/node_modules/@typescript/lib-es5/index.d.ts (used version)
452+
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
453453

454454
Program root files: [
455455
"/home/src/projects/project2/index.ts",
@@ -481,9 +481,9 @@ Semantic diagnostics in builder refreshed for::
481481

482482
Shape signatures in builder refreshed for::
483483
/home/src/projects/node_modules/@typescript/lib-es5/index.d.ts (used version)
484-
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
485484
/home/src/projects/project2/index.ts (computed .d.ts during emit)
486485
/home/src/projects/project2/utils.d.ts (used version)
486+
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
487487

488488
Program root files: [
489489
"/home/src/projects/project3/index.ts",
@@ -515,9 +515,9 @@ Semantic diagnostics in builder refreshed for::
515515

516516
Shape signatures in builder refreshed for::
517517
/home/src/projects/node_modules/@typescript/lib-es5/index.d.ts (used version)
518-
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
519518
/home/src/projects/project3/index.ts (computed .d.ts during emit)
520519
/home/src/projects/project3/utils.d.ts (used version)
520+
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
521521

522522
Program root files: [
523523
"/home/src/projects/project4/index.ts",
@@ -552,10 +552,10 @@ Semantic diagnostics in builder refreshed for::
552552

553553
Shape signatures in builder refreshed for::
554554
/home/src/projects/node_modules/@typescript/lib-esnext/index.d.ts (used version)
555-
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
556-
/home/src/projects/node_modules/@typescript/lib-webworker/index.d.ts (used version)
557555
/home/src/projects/project4/index.ts (computed .d.ts during emit)
558556
/home/src/projects/project4/utils.d.ts (used version)
557+
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
558+
/home/src/projects/node_modules/@typescript/lib-webworker/index.d.ts (used version)
559559

560560

561561
//// [/home/src/projects/project1/file.d.ts]

tests/baselines/reference/tsbuild/libraryResolution/with-config.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,6 @@ Semantic diagnostics in builder refreshed for::
457457

458458
Shape signatures in builder refreshed for::
459459
/home/src/lib/lib.es5.d.ts (used version)
460-
/home/src/lib/lib.dom.d.ts (used version)
461460
/home/src/lib/lib.webworker.d.ts (used version)
462461
/home/src/lib/lib.scripthost.d.ts (used version)
463462
/home/src/projects/project1/core.d.ts (used version)
@@ -466,6 +465,7 @@ Shape signatures in builder refreshed for::
466465
/home/src/projects/project1/index.ts (computed .d.ts during emit)
467466
/home/src/projects/project1/utils.d.ts (used version)
468467
/home/src/projects/project1/typeroot1/sometype/index.d.ts (used version)
468+
/home/src/lib/lib.dom.d.ts (used version)
469469

470470
Program root files: [
471471
"/home/src/projects/project2/index.ts",
@@ -497,9 +497,9 @@ Semantic diagnostics in builder refreshed for::
497497

498498
Shape signatures in builder refreshed for::
499499
/home/src/lib/lib.es5.d.ts (used version)
500-
/home/src/lib/lib.dom.d.ts (used version)
501500
/home/src/projects/project2/index.ts (computed .d.ts during emit)
502501
/home/src/projects/project2/utils.d.ts (used version)
502+
/home/src/lib/lib.dom.d.ts (used version)
503503

504504
Program root files: [
505505
"/home/src/projects/project3/index.ts",
@@ -531,9 +531,9 @@ Semantic diagnostics in builder refreshed for::
531531

532532
Shape signatures in builder refreshed for::
533533
/home/src/lib/lib.es5.d.ts (used version)
534-
/home/src/lib/lib.dom.d.ts (used version)
535534
/home/src/projects/project3/index.ts (computed .d.ts during emit)
536535
/home/src/projects/project3/utils.d.ts (used version)
536+
/home/src/lib/lib.dom.d.ts (used version)
537537

538538
Program root files: [
539539
"/home/src/projects/project4/index.ts",
@@ -568,10 +568,10 @@ Semantic diagnostics in builder refreshed for::
568568

569569
Shape signatures in builder refreshed for::
570570
/home/src/lib/lib.esnext.d.ts (used version)
571-
/home/src/lib/lib.dom.d.ts (used version)
572-
/home/src/lib/lib.webworker.d.ts (used version)
573571
/home/src/projects/project4/index.ts (computed .d.ts during emit)
574572
/home/src/projects/project4/utils.d.ts (used version)
573+
/home/src/lib/lib.dom.d.ts (used version)
574+
/home/src/lib/lib.webworker.d.ts (used version)
575575

576576

577577
//// [/home/src/projects/project1/file.d.ts]

tests/baselines/reference/tsbuildWatch/libraryResolution/with-config-with-redirection.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -894,14 +894,14 @@ Semantic diagnostics in builder refreshed for::
894894
Shape signatures in builder refreshed for::
895895
/home/src/projects/node_modules/@typescript/lib-webworker/index.d.ts (used version)
896896
/home/src/projects/node_modules/@typescript/lib-scripthost/index.d.ts (used version)
897-
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
898897
/home/src/projects/project1/core.d.ts (used version)
899898
/home/src/projects/project1/file.ts (computed .d.ts during emit)
900899
/home/src/projects/project1/file2.ts (computed .d.ts during emit)
901900
/home/src/projects/project1/index.ts (computed .d.ts during emit)
902901
/home/src/projects/project1/utils.d.ts (used version)
903902
/home/src/projects/project1/typeroot1/sometype/index.d.ts (used version)
904903
/home/src/projects/node_modules/@typescript/lib-es5/index.d.ts (used version)
904+
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
905905

906906
Program root files: [
907907
"/home/src/projects/project2/index.ts",
@@ -935,9 +935,9 @@ Semantic diagnostics in builder refreshed for::
935935

936936
Shape signatures in builder refreshed for::
937937
/home/src/projects/node_modules/@typescript/lib-es5/index.d.ts (used version)
938-
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
939938
/home/src/projects/project2/index.ts (computed .d.ts during emit)
940939
/home/src/projects/project2/utils.d.ts (used version)
940+
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
941941

942942
Program root files: [
943943
"/home/src/projects/project3/index.ts",
@@ -971,9 +971,9 @@ Semantic diagnostics in builder refreshed for::
971971

972972
Shape signatures in builder refreshed for::
973973
/home/src/projects/node_modules/@typescript/lib-es5/index.d.ts (used version)
974-
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
975974
/home/src/projects/project3/index.ts (computed .d.ts during emit)
976975
/home/src/projects/project3/utils.d.ts (used version)
976+
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
977977

978978
Program root files: [
979979
"/home/src/projects/project4/index.ts",
@@ -1010,9 +1010,9 @@ Semantic diagnostics in builder refreshed for::
10101010

10111011
Shape signatures in builder refreshed for::
10121012
/home/src/projects/node_modules/@typescript/lib-esnext/index.d.ts (used version)
1013-
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
1014-
/home/src/projects/node_modules/@typescript/lib-webworker/index.d.ts (used version)
10151013
/home/src/projects/project4/index.ts (computed .d.ts during emit)
10161014
/home/src/projects/project4/utils.d.ts (used version)
1015+
/home/src/projects/node_modules/@typescript/lib-dom/index.d.ts (used version)
1016+
/home/src/projects/node_modules/@typescript/lib-webworker/index.d.ts (used version)
10171017

10181018
exitCode:: ExitStatus.undefined

tests/baselines/reference/tsbuildWatch/libraryResolution/with-config.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -909,7 +909,6 @@ Semantic diagnostics in builder refreshed for::
909909

910910
Shape signatures in builder refreshed for::
911911
/home/src/lib/lib.es5.d.ts (used version)
912-
/home/src/lib/lib.dom.d.ts (used version)
913912
/home/src/lib/lib.webworker.d.ts (used version)
914913
/home/src/lib/lib.scripthost.d.ts (used version)
915914
/home/src/projects/project1/core.d.ts (used version)
@@ -918,6 +917,7 @@ Shape signatures in builder refreshed for::
918917
/home/src/projects/project1/index.ts (computed .d.ts during emit)
919918
/home/src/projects/project1/utils.d.ts (used version)
920919
/home/src/projects/project1/typeroot1/sometype/index.d.ts (used version)
920+
/home/src/lib/lib.dom.d.ts (used version)
921921

922922
Program root files: [
923923
"/home/src/projects/project2/index.ts",
@@ -951,9 +951,9 @@ Semantic diagnostics in builder refreshed for::
951951

952952
Shape signatures in builder refreshed for::
953953
/home/src/lib/lib.es5.d.ts (used version)
954-
/home/src/lib/lib.dom.d.ts (used version)
955954
/home/src/projects/project2/index.ts (computed .d.ts during emit)
956955
/home/src/projects/project2/utils.d.ts (used version)
956+
/home/src/lib/lib.dom.d.ts (used version)
957957

958958
Program root files: [
959959
"/home/src/projects/project3/index.ts",
@@ -987,9 +987,9 @@ Semantic diagnostics in builder refreshed for::
987987

988988
Shape signatures in builder refreshed for::
989989
/home/src/lib/lib.es5.d.ts (used version)
990-
/home/src/lib/lib.dom.d.ts (used version)
991990
/home/src/projects/project3/index.ts (computed .d.ts during emit)
992991
/home/src/projects/project3/utils.d.ts (used version)
992+
/home/src/lib/lib.dom.d.ts (used version)
993993

994994
Program root files: [
995995
"/home/src/projects/project4/index.ts",
@@ -1026,9 +1026,9 @@ Semantic diagnostics in builder refreshed for::
10261026

10271027
Shape signatures in builder refreshed for::
10281028
/home/src/lib/lib.esnext.d.ts (used version)
1029-
/home/src/lib/lib.dom.d.ts (used version)
1030-
/home/src/lib/lib.webworker.d.ts (used version)
10311029
/home/src/projects/project4/index.ts (computed .d.ts during emit)
10321030
/home/src/projects/project4/utils.d.ts (used version)
1031+
/home/src/lib/lib.dom.d.ts (used version)
1032+
/home/src/lib/lib.webworker.d.ts (used version)
10331033

10341034
exitCode:: ExitStatus.undefined

0 commit comments

Comments
 (0)