Skip to content

Commit 8da9ed0

Browse files
committed
Test without change
1 parent e61d812 commit 8da9ed0

File tree

3 files changed

+209
-1
lines changed

3 files changed

+209
-1
lines changed

src/compiler/tsbuildPublic.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -849,7 +849,7 @@ namespace ts {
849849
state.projectCompilerOptions = config.options;
850850
// Update module resolution cache if needed
851851
state.moduleResolutionCache?.update(config.options);
852-
state.typeReferenceDirectiveResolutionCache?.update(config.options);
852+
// state.typeReferenceDirectiveResolutionCache?.update(config.options);
853853

854854
// Create program
855855
program = host.createProgram(

src/testRunner/unittests/tsbuild/moduleResolution.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,5 +65,25 @@ namespace ts.tscWatch {
6565
commandLineArgs: ["-b", "packages/pkg1", "--verbose", "--traceResolution"],
6666
changes: emptyArray
6767
});
68+
69+
verifyTsc({
70+
scenario: "moduleResolution",
71+
subScenario: `type reference resolution uses correct options for different resolution options referenced project`,
72+
fs: () => loadProjectFromFiles({
73+
"/src/packages/pkg1_index.ts": `export const theNum: TheNum = "type1";`,
74+
"/src/packages/pkg1.tsconfig.json": JSON.stringify({
75+
compilerOptions: { composite: true, typeRoots: ["./typeroot1"] },
76+
files: ["./pkg1_index.ts"]
77+
}),
78+
"/src/packages/typeroot1/sometype/index.d.ts": Utils.dedent`declare type TheNum = "type1";`,
79+
"/src/packages/pkg2_index.ts": `export const theNum: TheNum2 = "type2";`,
80+
"/src/packages/pkg2.tsconfig.json": JSON.stringify({
81+
compilerOptions: { composite: true, typeRoots: ["./typeroot2"] },
82+
files: ["./pkg2_index.ts"]
83+
}),
84+
"/src/packages/typeroot2/sometype/index.d.ts": Utils.dedent`declare type TheNum2 = "type2";`,
85+
}),
86+
commandLineArgs: ["-b", "/src/packages/pkg1.tsconfig.json", "/src/packages/pkg2.tsconfig.json", "--verbose", "--traceResolution"],
87+
});
6888
});
6989
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,188 @@
1+
Input::
2+
//// [/lib/lib.d.ts]
3+
/// <reference no-default-lib="true"/>
4+
interface Boolean {}
5+
interface Function {}
6+
interface CallableFunction {}
7+
interface NewableFunction {}
8+
interface IArguments {}
9+
interface Number { toExponential: any; }
10+
interface Object {}
11+
interface RegExp {}
12+
interface String { charAt: any; }
13+
interface Array<T> { length: number; [n: number]: T; }
14+
interface ReadonlyArray<T> {}
15+
declare const console: { log(msg: any): void; };
16+
17+
//// [/src/packages/pkg1.tsconfig.json]
18+
{"compilerOptions":{"composite":true,"typeRoots":["./typeroot1"]},"files":["./pkg1_index.ts"]}
19+
20+
//// [/src/packages/pkg1_index.ts]
21+
export const theNum: TheNum = "type1";
22+
23+
//// [/src/packages/pkg2.tsconfig.json]
24+
{"compilerOptions":{"composite":true,"typeRoots":["./typeroot2"]},"files":["./pkg2_index.ts"]}
25+
26+
//// [/src/packages/pkg2_index.ts]
27+
export const theNum: TheNum2 = "type2";
28+
29+
//// [/src/packages/typeroot1/sometype/index.d.ts]
30+
declare type TheNum = "type1";
31+
32+
//// [/src/packages/typeroot2/sometype/index.d.ts]
33+
34+
35+
36+
37+
Output::
38+
/lib/tsc -b /src/packages/pkg1.tsconfig.json /src/packages/pkg2.tsconfig.json --verbose --traceResolution
39+
[12:00:00 AM] Projects in this build:
40+
* src/packages/pkg1.tsconfig.json
41+
* src/packages/pkg2.tsconfig.json
42+
43+
[12:00:00 AM] Project 'src/packages/pkg1.tsconfig.json' is out of date because output file 'src/packages/pkg1_index.js' does not exist
44+
45+
[12:00:00 AM] Building project '/src/packages/pkg1.tsconfig.json'...
46+
47+
======== Resolving type reference directive 'sometype', containing file '/src/packages/__inferred type names__.ts', root directory '/src/packages/typeroot1'. ========
48+
Resolving with primary search path '/src/packages/typeroot1'.
49+
File '/src/packages/typeroot1/sometype/package.json' does not exist.
50+
File '/src/packages/typeroot1/sometype/index.d.ts' exist - use it as a name resolution result.
51+
Resolving real path for '/src/packages/typeroot1/sometype/index.d.ts', result '/src/packages/typeroot1/sometype/index.d.ts'.
52+
======== Type reference directive 'sometype' was successfully resolved to '/src/packages/typeroot1/sometype/index.d.ts', primary: true. ========
53+
[12:00:00 AM] Project 'src/packages/pkg2.tsconfig.json' is out of date because output file 'src/packages/pkg2_index.js' does not exist
54+
55+
[12:00:00 AM] Building project '/src/packages/pkg2.tsconfig.json'...
56+
57+
======== Resolving type reference directive 'sometype', containing file '/src/packages/__inferred type names__.ts'. ========
58+
Resolution for type reference directive 'sometype' was found in cache from location '/src/packages'.
59+
======== Type reference directive 'sometype' was successfully resolved to '/src/packages/typeroot1/sometype/index.d.ts', primary: true. ========
60+
src/packages/pkg2_index.ts:1:22 - error TS2304: Cannot find name 'TheNum2'.
61+
62+
1 export const theNum: TheNum2 = "type2";
63+
   ~~~~~~~
64+
65+
66+
Found 1 error.
67+
68+
exitCode:: ExitStatus.DiagnosticsPresent_OutputsGenerated
69+
70+
71+
//// [/src/packages/pkg1.tsconfig.tsbuildinfo]
72+
{"program":{"fileNames":["../../lib/lib.d.ts","./pkg1_index.ts","./typeroot1/sometype/index.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},"-9601687719-export const theNum: TheNum = \"type1\";",{"version":"-4557394441-declare type TheNum = \"type1\";","affectsGlobalScope":true}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2,3]},"version":"FakeTSVersion"}
73+
74+
//// [/src/packages/pkg1.tsconfig.tsbuildinfo.readable.baseline.txt]
75+
{
76+
"program": {
77+
"fileNames": [
78+
"../../lib/lib.d.ts",
79+
"./pkg1_index.ts",
80+
"./typeroot1/sometype/index.d.ts"
81+
],
82+
"fileInfos": {
83+
"../../lib/lib.d.ts": {
84+
"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; };",
85+
"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; };",
86+
"affectsGlobalScope": true
87+
},
88+
"./pkg1_index.ts": {
89+
"version": "-9601687719-export const theNum: TheNum = \"type1\";",
90+
"signature": "-9601687719-export const theNum: TheNum = \"type1\";"
91+
},
92+
"./typeroot1/sometype/index.d.ts": {
93+
"version": "-4557394441-declare type TheNum = \"type1\";",
94+
"signature": "-4557394441-declare type TheNum = \"type1\";",
95+
"affectsGlobalScope": true
96+
}
97+
},
98+
"options": {
99+
"composite": true
100+
},
101+
"referencedMap": {},
102+
"exportedModulesMap": {},
103+
"semanticDiagnosticsPerFile": [
104+
"../../lib/lib.d.ts",
105+
"./pkg1_index.ts",
106+
"./typeroot1/sometype/index.d.ts"
107+
]
108+
},
109+
"version": "FakeTSVersion",
110+
"size": 868
111+
}
112+
113+
//// [/src/packages/pkg1_index.d.ts]
114+
/// <reference types="sometype" />
115+
export declare const theNum: TheNum;
116+
117+
118+
//// [/src/packages/pkg1_index.js]
119+
"use strict";
120+
exports.__esModule = true;
121+
exports.theNum = void 0;
122+
exports.theNum = "type1";
123+
124+
125+
//// [/src/packages/pkg2.tsconfig.tsbuildinfo]
126+
{"program":{"fileNames":["../../lib/lib.d.ts","./pkg2_index.ts","./typeroot1/sometype/index.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},"-12823281204-export const theNum: TheNum2 = \"type2\";",{"version":"-4557394441-declare type TheNum = \"type1\";","affectsGlobalScope":true}],"options":{"composite":true},"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,[2,[{"file":"./pkg2_index.ts","start":21,"length":7,"messageText":"Cannot find name 'TheNum2'.","category":1,"code":2304}]],3],"affectedFilesPendingEmit":[[2,1],[3,1]]},"version":"FakeTSVersion"}
127+
128+
//// [/src/packages/pkg2.tsconfig.tsbuildinfo.readable.baseline.txt]
129+
{
130+
"program": {
131+
"fileNames": [
132+
"../../lib/lib.d.ts",
133+
"./pkg2_index.ts",
134+
"./typeroot1/sometype/index.d.ts"
135+
],
136+
"fileInfos": {
137+
"../../lib/lib.d.ts": {
138+
"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; };",
139+
"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; };",
140+
"affectsGlobalScope": true
141+
},
142+
"./pkg2_index.ts": {
143+
"version": "-12823281204-export const theNum: TheNum2 = \"type2\";",
144+
"signature": "-12823281204-export const theNum: TheNum2 = \"type2\";"
145+
},
146+
"./typeroot1/sometype/index.d.ts": {
147+
"version": "-4557394441-declare type TheNum = \"type1\";",
148+
"signature": "-4557394441-declare type TheNum = \"type1\";",
149+
"affectsGlobalScope": true
150+
}
151+
},
152+
"options": {
153+
"composite": true
154+
},
155+
"referencedMap": {},
156+
"exportedModulesMap": {},
157+
"semanticDiagnosticsPerFile": [
158+
"../../lib/lib.d.ts",
159+
[
160+
"./pkg2_index.ts",
161+
[
162+
{
163+
"file": "./pkg2_index.ts",
164+
"start": 21,
165+
"length": 7,
166+
"messageText": "Cannot find name 'TheNum2'.",
167+
"category": 1,
168+
"code": 2304
169+
}
170+
]
171+
],
172+
"./typeroot1/sometype/index.d.ts"
173+
],
174+
"affectedFilesPendingEmit": [
175+
[
176+
"./pkg2_index.ts",
177+
"Full"
178+
],
179+
[
180+
"./typeroot1/sometype/index.d.ts",
181+
"Full"
182+
]
183+
]
184+
},
185+
"version": "FakeTSVersion",
186+
"size": 1033
187+
}
188+

0 commit comments

Comments
 (0)