diff --git a/src/compiler/program.ts b/src/compiler/program.ts index 2bdb23a2c3e..15fbf1f7df8 100755 --- a/src/compiler/program.ts +++ b/src/compiler/program.ts @@ -1819,11 +1819,9 @@ namespace ts { else if (isLiteralImportTypeNode(node)) { imports = append(imports, node.argument.literal); } - else { - collectDynamicImportOrRequireCallsForEachChild(node); - if (hasJSDocNodes(node)) { - forEach(node.jsDoc, collectDynamicImportOrRequireCallsForEachChild); - } + collectDynamicImportOrRequireCallsForEachChild(node); + if (hasJSDocNodes(node)) { + forEach(node.jsDoc, collectDynamicImportOrRequireCallsForEachChild); } } diff --git a/tests/baselines/reference/importUsedInGenericImportResolves.js b/tests/baselines/reference/importUsedInGenericImportResolves.js new file mode 100644 index 00000000000..05d64b1c19a --- /dev/null +++ b/tests/baselines/reference/importUsedInGenericImportResolves.js @@ -0,0 +1,17 @@ +//// [tests/cases/compiler/importUsedInGenericImportResolves.ts] //// + +//// [test1.d.ts] +export interface T
{
+ a: P;
+}
+
+//// [test2.d.ts]
+export declare const theme: { a: string }
+
+//// [test3.ts]
+export const a: import("./test1").T {
+>T : Symbol(T, Decl(test1.d.ts, 0, 0))
+>P : Symbol(P, Decl(test1.d.ts, 0, 19))
+
+ a: P;
+>a : Symbol(T.a, Decl(test1.d.ts, 0, 23))
+>P : Symbol(P, Decl(test1.d.ts, 0, 19))
+}
+
+=== tests/cases/compiler/test2.d.ts ===
+export declare const theme: { a: string }
+>theme : Symbol(theme, Decl(test2.d.ts, 0, 20))
+>a : Symbol(a, Decl(test2.d.ts, 0, 29))
+
+=== tests/cases/compiler/test3.ts ===
+export const a: import("./test1").T {
+>T : T
+>P : P
+
+ a: P;
+>a : P
+>P : P
+}
+
+=== tests/cases/compiler/test2.d.ts ===
+export declare const theme: { a: string }
+>theme : { a: string; }
+>a : string
+
+=== tests/cases/compiler/test3.ts ===
+export const a: import("./test1").T
+>theme : any
+>null as any : any
+>null : null
+
diff --git a/tests/cases/compiler/importUsedInGenericImportResolves.ts b/tests/cases/compiler/importUsedInGenericImportResolves.ts
new file mode 100644
index 00000000000..88c57804c98
--- /dev/null
+++ b/tests/cases/compiler/importUsedInGenericImportResolves.ts
@@ -0,0 +1,10 @@
+// @filename: test1.d.ts
+export interface T {
+ a: P;
+}
+
+// @filename: test2.d.ts
+export declare const theme: { a: string }
+
+// @filename: test3.ts
+export const a: import("./test1").T