mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-07 09:20:57 -05:00
Remove require name collision check for ES6 modules and later
This commit is contained in:
@@ -15554,6 +15554,11 @@ namespace ts {
|
||||
}
|
||||
|
||||
function checkCollisionWithRequireExportsInGeneratedCode(node: Node, name: Identifier) {
|
||||
// No need to check for require or exports for ES6 modules and later
|
||||
if (modulekind >= ModuleKind.ES6) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!needCollisionCheckForIdentifier(node, name, "require") && !needCollisionCheckForIdentifier(node, name, "exports")) {
|
||||
return;
|
||||
}
|
||||
|
||||
30
tests/baselines/reference/es6UseOfTopLevelRequire.js
Normal file
30
tests/baselines/reference/es6UseOfTopLevelRequire.js
Normal file
@@ -0,0 +1,30 @@
|
||||
//// [tests/cases/compiler/es6UseOfTopLevelRequire.ts] ////
|
||||
|
||||
//// [b.ts]
|
||||
|
||||
export default function require(s: string): void {
|
||||
}
|
||||
|
||||
//// [c.ts]
|
||||
export const exports = 0;
|
||||
export default exports;
|
||||
|
||||
//// [a.ts]
|
||||
import require from "./b"
|
||||
require("arg");
|
||||
|
||||
import exports from "./c"
|
||||
var x = exports + 2;
|
||||
|
||||
|
||||
//// [b.js]
|
||||
export default function require(s) {
|
||||
}
|
||||
//// [c.js]
|
||||
export const exports = 0;
|
||||
export default exports;
|
||||
//// [a.js]
|
||||
import require from "./b";
|
||||
require("arg");
|
||||
import exports from "./c";
|
||||
var x = exports + 2;
|
||||
28
tests/baselines/reference/es6UseOfTopLevelRequire.symbols
Normal file
28
tests/baselines/reference/es6UseOfTopLevelRequire.symbols
Normal file
@@ -0,0 +1,28 @@
|
||||
=== tests/cases/compiler/a.ts ===
|
||||
import require from "./b"
|
||||
>require : Symbol(require, Decl(a.ts, 0, 6))
|
||||
|
||||
require("arg");
|
||||
>require : Symbol(require, Decl(a.ts, 0, 6))
|
||||
|
||||
import exports from "./c"
|
||||
>exports : Symbol(exports, Decl(a.ts, 3, 6))
|
||||
|
||||
var x = exports + 2;
|
||||
>x : Symbol(x, Decl(a.ts, 4, 3))
|
||||
>exports : Symbol(exports, Decl(a.ts, 3, 6))
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
|
||||
export default function require(s: string): void {
|
||||
>require : Symbol(require, Decl(b.ts, 0, 0))
|
||||
>s : Symbol(s, Decl(b.ts, 1, 32))
|
||||
}
|
||||
|
||||
=== tests/cases/compiler/c.ts ===
|
||||
export const exports = 0;
|
||||
>exports : Symbol(exports, Decl(c.ts, 0, 12))
|
||||
|
||||
export default exports;
|
||||
>exports : Symbol(exports, Decl(c.ts, 0, 12))
|
||||
|
||||
33
tests/baselines/reference/es6UseOfTopLevelRequire.types
Normal file
33
tests/baselines/reference/es6UseOfTopLevelRequire.types
Normal file
@@ -0,0 +1,33 @@
|
||||
=== tests/cases/compiler/a.ts ===
|
||||
import require from "./b"
|
||||
>require : (s: string) => void
|
||||
|
||||
require("arg");
|
||||
>require("arg") : void
|
||||
>require : (s: string) => void
|
||||
>"arg" : "arg"
|
||||
|
||||
import exports from "./c"
|
||||
>exports : 0
|
||||
|
||||
var x = exports + 2;
|
||||
>x : number
|
||||
>exports + 2 : number
|
||||
>exports : 0
|
||||
>2 : 2
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
|
||||
export default function require(s: string): void {
|
||||
>require : (s: string) => void
|
||||
>s : string
|
||||
}
|
||||
|
||||
=== tests/cases/compiler/c.ts ===
|
||||
export const exports = 0;
|
||||
>exports : 0
|
||||
>0 : 0
|
||||
|
||||
export default exports;
|
||||
>exports : 0
|
||||
|
||||
16
tests/cases/compiler/es6UseOfTopLevelRequire.ts
Normal file
16
tests/cases/compiler/es6UseOfTopLevelRequire.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
// @target: ES6
|
||||
|
||||
// @filename: b.ts
|
||||
export default function require(s: string): void {
|
||||
}
|
||||
|
||||
// @filename: c.ts
|
||||
export const exports = 0;
|
||||
export default exports;
|
||||
|
||||
// @filename: a.ts
|
||||
import require from "./b"
|
||||
require("arg");
|
||||
|
||||
import exports from "./c"
|
||||
var x = exports + 2;
|
||||
Reference in New Issue
Block a user