Skip to content

Commit

Permalink
Fixed rewriteRelativeImportExtensions for import() within call ex…
Browse files Browse the repository at this point in the history
…pressions (#61154)
  • Loading branch information
Andarist authored Feb 10, 2025
1 parent 775412a commit df342b7
Show file tree
Hide file tree
Showing 6 changed files with 36 additions and 3 deletions.
2 changes: 1 addition & 1 deletion src/compiler/transformers/module/esnextAnd2015.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ export function transformECMAScriptModule(context: TransformationContext): (x: S
if (node === importsAndRequiresToRewriteOrShim?.[0]) {
return visitImportOrRequireCall(importsAndRequiresToRewriteOrShim.shift()!);
}
break;
// fallthrough
default:
if (importsAndRequiresToRewriteOrShim?.length && rangeContainsRange(node, importsAndRequiresToRewriteOrShim[0])) {
return visitEachChild(node, visitor, context);
Expand Down
11 changes: 10 additions & 1 deletion tests/baselines/reference/emit(jsx=preserve).errors.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ main.ts(6,22): error TS2307: Cannot find module './foo.ts' or its corresponding
main.ts(8,15): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(10,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(11,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(13,18): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(14,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
no.ts(1,16): error TS2307: Cannot find module './foo.ts/foo.js' or its corresponding type declarations.
no.ts(2,16): error TS2307: Cannot find module 'foo.ts' or its corresponding type declarations.
no.ts(3,16): error TS2307: Cannot find module 'pkg/foo.ts' or its corresponding type declarations.
Expand All @@ -21,7 +23,7 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
==== globals.d.ts (0 errors) ====
declare function require(module: string): any;

==== main.ts (8 errors) ====
==== main.ts (10 errors) ====
// Rewrite
import {} from "./foo.ts";
~~~~~~~~~~
Expand All @@ -45,6 +47,13 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
//Shim
import("./foo.ts");
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
import("./foo.ts").then(() => {});
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
function acceptAny(arg: any) {}
acceptAny(import("./foo.ts"));
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
import("./foo.ts", { with: { attr: "value" } });
~~~~~~~~~~
Expand Down
6 changes: 6 additions & 0 deletions tests/baselines/reference/emit(jsx=preserve).js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ import "./foo.ts";
export * from "./foo.ts";
//Shim
import("./foo.ts");
import("./foo.ts").then(() => {});
function acceptAny(arg: any) {}
acceptAny(import("./foo.ts"));
import("./foo.ts", { with: { attr: "value" } });
import("" + "./foo.ts");
//// [js.js]
Expand Down Expand Up @@ -71,6 +74,9 @@ import "./foo.js";
export * from "./foo.js";
//Shim
import("./foo.js");
import("./foo.js").then(() => { });
function acceptAny(arg) { }
acceptAny(import("./foo.js"));
import("./foo.js", { with: { attr: "value" } });
import(__rewriteRelativeImportExtension("" + "./foo.ts", true));
//// [js.js]
Expand Down
11 changes: 10 additions & 1 deletion tests/baselines/reference/emit(jsx=react).errors.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ main.ts(6,22): error TS2307: Cannot find module './foo.ts' or its corresponding
main.ts(8,15): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(10,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(11,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(13,18): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
main.ts(14,8): error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
no.ts(1,16): error TS2307: Cannot find module './foo.ts/foo.js' or its corresponding type declarations.
no.ts(2,16): error TS2307: Cannot find module 'foo.ts' or its corresponding type declarations.
no.ts(3,16): error TS2307: Cannot find module 'pkg/foo.ts' or its corresponding type declarations.
Expand All @@ -21,7 +23,7 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
==== globals.d.ts (0 errors) ====
declare function require(module: string): any;

==== main.ts (8 errors) ====
==== main.ts (10 errors) ====
// Rewrite
import {} from "./foo.ts";
~~~~~~~~~~
Expand All @@ -45,6 +47,13 @@ no.ts(11,8): error TS2307: Cannot find module 'node:path' or its corresponding t
//Shim
import("./foo.ts");
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
import("./foo.ts").then(() => {});
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
function acceptAny(arg: any) {}
acceptAny(import("./foo.ts"));
~~~~~~~~~~
!!! error TS2307: Cannot find module './foo.ts' or its corresponding type declarations.
import("./foo.ts", { with: { attr: "value" } });
~~~~~~~~~~
Expand Down
6 changes: 6 additions & 0 deletions tests/baselines/reference/emit(jsx=react).js
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ import "./foo.ts";
export * from "./foo.ts";
//Shim
import("./foo.ts");
import("./foo.ts").then(() => {});
function acceptAny(arg: any) {}
acceptAny(import("./foo.ts"));
import("./foo.ts", { with: { attr: "value" } });
import("" + "./foo.ts");
//// [js.js]
Expand Down Expand Up @@ -71,6 +74,9 @@ import "./foo.js";
export * from "./foo.js";
//Shim
import("./foo.js");
import("./foo.js").then(() => { });
function acceptAny(arg) { }
acceptAny(import("./foo.js"));
import("./foo.js", { with: { attr: "value" } });
import(__rewriteRelativeImportExtension("" + "./foo.ts"));
//// [js.js]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ import "./foo.ts";
export * from "./foo.ts";
//Shim
import("./foo.ts");
import("./foo.ts").then(() => {});
function acceptAny(arg: any) {}
acceptAny(import("./foo.ts"));
import("./foo.ts", { with: { attr: "value" } });
import("" + "./foo.ts");
// @Filename: js.js
Expand Down

0 comments on commit df342b7

Please sign in to comment.