mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-04 12:32:08 -06:00
Restore import defer = parsing (#61837)
This commit is contained in:
parent
34d1ea68f6
commit
0dfd0c2143
@ -8392,7 +8392,10 @@ namespace Parser {
|
||||
phaseModifier = SyntaxKind.TypeKeyword;
|
||||
identifier = isIdentifier() ? parseIdentifier() : undefined;
|
||||
}
|
||||
else if (identifier?.escapedText === "defer" && token() !== SyntaxKind.FromKeyword) {
|
||||
else if (
|
||||
identifier?.escapedText === "defer" &&
|
||||
(token() === SyntaxKind.FromKeyword ? !lookAhead(nextTokenIsStringLiteral) : token() !== SyntaxKind.CommaToken && token() !== SyntaxKind.EqualsToken)
|
||||
) {
|
||||
phaseModifier = SyntaxKind.DeferKeyword;
|
||||
identifier = isIdentifier() ? parseIdentifier() : undefined;
|
||||
}
|
||||
|
||||
13
tests/baselines/reference/importBindingDefer.js
Normal file
13
tests/baselines/reference/importBindingDefer.js
Normal file
@ -0,0 +1,13 @@
|
||||
//// [tests/cases/conformance/importDefer/importBindingDefer.ts] ////
|
||||
|
||||
//// [a.ts]
|
||||
export default 2;
|
||||
|
||||
//// [b.ts]
|
||||
import defer from "./a.js";
|
||||
|
||||
|
||||
//// [a.js]
|
||||
export default 2;
|
||||
//// [b.js]
|
||||
export {};
|
||||
10
tests/baselines/reference/importBindingDefer.symbols
Normal file
10
tests/baselines/reference/importBindingDefer.symbols
Normal file
@ -0,0 +1,10 @@
|
||||
//// [tests/cases/conformance/importDefer/importBindingDefer.ts] ////
|
||||
|
||||
=== a.ts ===
|
||||
|
||||
export default 2;
|
||||
|
||||
=== b.ts ===
|
||||
import defer from "./a.js";
|
||||
>defer : Symbol(defer, Decl(b.ts, 0, 6))
|
||||
|
||||
11
tests/baselines/reference/importBindingDefer.types
Normal file
11
tests/baselines/reference/importBindingDefer.types
Normal file
@ -0,0 +1,11 @@
|
||||
//// [tests/cases/conformance/importDefer/importBindingDefer.ts] ////
|
||||
|
||||
=== a.ts ===
|
||||
|
||||
export default 2;
|
||||
|
||||
=== b.ts ===
|
||||
import defer from "./a.js";
|
||||
>defer : 2
|
||||
> : ^
|
||||
|
||||
13
tests/baselines/reference/importBindingDefer2.js
Normal file
13
tests/baselines/reference/importBindingDefer2.js
Normal file
@ -0,0 +1,13 @@
|
||||
//// [tests/cases/conformance/importDefer/importBindingDefer2.ts] ////
|
||||
|
||||
//// [a.ts]
|
||||
export default 2;
|
||||
|
||||
//// [b.ts]
|
||||
import defer, {} from "./a.js";
|
||||
|
||||
|
||||
//// [a.js]
|
||||
export default 2;
|
||||
//// [b.js]
|
||||
export {};
|
||||
10
tests/baselines/reference/importBindingDefer2.symbols
Normal file
10
tests/baselines/reference/importBindingDefer2.symbols
Normal file
@ -0,0 +1,10 @@
|
||||
//// [tests/cases/conformance/importDefer/importBindingDefer2.ts] ////
|
||||
|
||||
=== a.ts ===
|
||||
|
||||
export default 2;
|
||||
|
||||
=== b.ts ===
|
||||
import defer, {} from "./a.js";
|
||||
>defer : Symbol(defer, Decl(b.ts, 0, 6))
|
||||
|
||||
11
tests/baselines/reference/importBindingDefer2.types
Normal file
11
tests/baselines/reference/importBindingDefer2.types
Normal file
@ -0,0 +1,11 @@
|
||||
//// [tests/cases/conformance/importDefer/importBindingDefer2.ts] ////
|
||||
|
||||
=== a.ts ===
|
||||
|
||||
export default 2;
|
||||
|
||||
=== b.ts ===
|
||||
import defer, {} from "./a.js";
|
||||
>defer : 2
|
||||
> : ^
|
||||
|
||||
11
tests/baselines/reference/importDeferFromInvalid.errors.txt
Normal file
11
tests/baselines/reference/importDeferFromInvalid.errors.txt
Normal file
@ -0,0 +1,11 @@
|
||||
b.ts(1,8): error TS18058: Default imports are not allowed in a deferred import.
|
||||
|
||||
|
||||
==== a.ts (0 errors) ====
|
||||
export default 2;
|
||||
|
||||
==== b.ts (1 errors) ====
|
||||
import defer from from "./a.js";
|
||||
~~~~~~~~~~
|
||||
!!! error TS18058: Default imports are not allowed in a deferred import.
|
||||
|
||||
13
tests/baselines/reference/importDeferFromInvalid.js
Normal file
13
tests/baselines/reference/importDeferFromInvalid.js
Normal file
@ -0,0 +1,13 @@
|
||||
//// [tests/cases/conformance/importDefer/importDeferFromInvalid.ts] ////
|
||||
|
||||
//// [a.ts]
|
||||
export default 2;
|
||||
|
||||
//// [b.ts]
|
||||
import defer from from "./a.js";
|
||||
|
||||
|
||||
//// [a.js]
|
||||
export default 2;
|
||||
//// [b.js]
|
||||
export {};
|
||||
10
tests/baselines/reference/importDeferFromInvalid.symbols
Normal file
10
tests/baselines/reference/importDeferFromInvalid.symbols
Normal file
@ -0,0 +1,10 @@
|
||||
//// [tests/cases/conformance/importDefer/importDeferFromInvalid.ts] ////
|
||||
|
||||
=== a.ts ===
|
||||
|
||||
export default 2;
|
||||
|
||||
=== b.ts ===
|
||||
import defer from from "./a.js";
|
||||
>from : Symbol(from, Decl(b.ts, 0, 6))
|
||||
|
||||
11
tests/baselines/reference/importDeferFromInvalid.types
Normal file
11
tests/baselines/reference/importDeferFromInvalid.types
Normal file
@ -0,0 +1,11 @@
|
||||
//// [tests/cases/conformance/importDefer/importDeferFromInvalid.ts] ////
|
||||
|
||||
=== a.ts ===
|
||||
|
||||
export default 2;
|
||||
|
||||
=== b.ts ===
|
||||
import defer from from "./a.js";
|
||||
>from : 2
|
||||
> : ^
|
||||
|
||||
15
tests/baselines/reference/importEqualsBindingDefer.js
Normal file
15
tests/baselines/reference/importEqualsBindingDefer.js
Normal file
@ -0,0 +1,15 @@
|
||||
//// [tests/cases/conformance/importDefer/importEqualsBindingDefer.ts] ////
|
||||
|
||||
//// [a.ts]
|
||||
export = 2;
|
||||
|
||||
//// [b.ts]
|
||||
import defer = require("./a");
|
||||
|
||||
|
||||
//// [a.js]
|
||||
"use strict";
|
||||
module.exports = 2;
|
||||
//// [b.js]
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
10
tests/baselines/reference/importEqualsBindingDefer.symbols
Normal file
10
tests/baselines/reference/importEqualsBindingDefer.symbols
Normal file
@ -0,0 +1,10 @@
|
||||
//// [tests/cases/conformance/importDefer/importEqualsBindingDefer.ts] ////
|
||||
|
||||
=== b.ts ===
|
||||
import defer = require("./a");
|
||||
>defer : Symbol(defer, Decl(b.ts, 0, 0))
|
||||
|
||||
=== a.ts ===
|
||||
|
||||
export = 2;
|
||||
|
||||
11
tests/baselines/reference/importEqualsBindingDefer.types
Normal file
11
tests/baselines/reference/importEqualsBindingDefer.types
Normal file
@ -0,0 +1,11 @@
|
||||
//// [tests/cases/conformance/importDefer/importEqualsBindingDefer.ts] ////
|
||||
|
||||
=== b.ts ===
|
||||
import defer = require("./a");
|
||||
>defer : 2
|
||||
> : ^
|
||||
|
||||
=== a.ts ===
|
||||
|
||||
export = 2;
|
||||
|
||||
@ -0,0 +1,8 @@
|
||||
// @module: esnext
|
||||
// @target: es2020
|
||||
|
||||
// @filename: a.ts
|
||||
export default 2;
|
||||
|
||||
// @filename: b.ts
|
||||
import defer from "./a.js";
|
||||
@ -0,0 +1,8 @@
|
||||
// @module: esnext
|
||||
// @target: es2020
|
||||
|
||||
// @filename: a.ts
|
||||
export default 2;
|
||||
|
||||
// @filename: b.ts
|
||||
import defer, {} from "./a.js";
|
||||
@ -0,0 +1,8 @@
|
||||
// @module: esnext
|
||||
// @target: es2020
|
||||
|
||||
// @filename: a.ts
|
||||
export default 2;
|
||||
|
||||
// @filename: b.ts
|
||||
import defer from from "./a.js";
|
||||
@ -0,0 +1,8 @@
|
||||
// @module: commonjs
|
||||
// @target: es2020
|
||||
|
||||
// @filename: a.ts
|
||||
export = 2;
|
||||
|
||||
// @filename: b.ts
|
||||
import defer = require("./a");
|
||||
Loading…
x
Reference in New Issue
Block a user