mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-06 20:14:01 -06:00
Merge pull request #6563 from Microsoft/reExportUndefined
handle undefined entry as export specifier
This commit is contained in:
commit
4ce436714a
@ -14476,7 +14476,7 @@ namespace ts {
|
||||
// find immediate value referenced by exported name (SymbolFlags.Alias is set so we don't chase down aliases)
|
||||
const symbol = resolveName(exportedName, exportedName.text, SymbolFlags.Value | SymbolFlags.Type | SymbolFlags.Namespace | SymbolFlags.Alias,
|
||||
/*nameNotFoundMessage*/ undefined, /*nameArg*/ undefined);
|
||||
if (symbol && isGlobalSourceFile(getDeclarationContainer(symbol.declarations[0]))) {
|
||||
if (symbol && (symbol === undefinedSymbol || isGlobalSourceFile(getDeclarationContainer(symbol.declarations[0])))) {
|
||||
error(exportedName, Diagnostics.Cannot_re_export_name_that_is_not_defined_in_the_module);
|
||||
}
|
||||
else {
|
||||
|
||||
8
tests/baselines/reference/reExportUndefined1.errors.txt
Normal file
8
tests/baselines/reference/reExportUndefined1.errors.txt
Normal file
@ -0,0 +1,8 @@
|
||||
tests/cases/compiler/a.ts(2,10): error TS2661: Cannot re-export name that is not defined in the module.
|
||||
|
||||
|
||||
==== tests/cases/compiler/a.ts (1 errors) ====
|
||||
|
||||
export { undefined };
|
||||
~~~~~~~~~
|
||||
!!! error TS2661: Cannot re-export name that is not defined in the module.
|
||||
6
tests/baselines/reference/reExportUndefined1.js
Normal file
6
tests/baselines/reference/reExportUndefined1.js
Normal file
@ -0,0 +1,6 @@
|
||||
//// [a.ts]
|
||||
|
||||
export { undefined };
|
||||
|
||||
//// [a.js]
|
||||
"use strict";
|
||||
20
tests/baselines/reference/reExportUndefined2.js
Normal file
20
tests/baselines/reference/reExportUndefined2.js
Normal file
@ -0,0 +1,20 @@
|
||||
//// [tests/cases/compiler/reExportUndefined2.ts] ////
|
||||
|
||||
//// [a.ts]
|
||||
|
||||
var undefined;
|
||||
export { undefined };
|
||||
|
||||
//// [b.ts]
|
||||
import { undefined } from "./a";
|
||||
declare function use(a: number);
|
||||
use(undefined);
|
||||
|
||||
//// [a.js]
|
||||
"use strict";
|
||||
var undefined;
|
||||
exports.undefined = undefined;
|
||||
//// [b.js]
|
||||
"use strict";
|
||||
var a_1 = require("./a");
|
||||
use(a_1.undefined);
|
||||
20
tests/baselines/reference/reExportUndefined2.symbols
Normal file
20
tests/baselines/reference/reExportUndefined2.symbols
Normal file
@ -0,0 +1,20 @@
|
||||
=== tests/cases/compiler/a.ts ===
|
||||
|
||||
var undefined;
|
||||
>undefined : Symbol(undefined, Decl(a.ts, 1, 3))
|
||||
|
||||
export { undefined };
|
||||
>undefined : Symbol(undefined, Decl(a.ts, 2, 8))
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
import { undefined } from "./a";
|
||||
>undefined : Symbol(undefined, Decl(b.ts, 0, 8))
|
||||
|
||||
declare function use(a: number);
|
||||
>use : Symbol(use, Decl(b.ts, 0, 32))
|
||||
>a : Symbol(a, Decl(b.ts, 1, 21))
|
||||
|
||||
use(undefined);
|
||||
>use : Symbol(use, Decl(b.ts, 0, 32))
|
||||
>undefined : Symbol(undefined, Decl(b.ts, 0, 8))
|
||||
|
||||
21
tests/baselines/reference/reExportUndefined2.types
Normal file
21
tests/baselines/reference/reExportUndefined2.types
Normal file
@ -0,0 +1,21 @@
|
||||
=== tests/cases/compiler/a.ts ===
|
||||
|
||||
var undefined;
|
||||
>undefined : any
|
||||
|
||||
export { undefined };
|
||||
>undefined : any
|
||||
|
||||
=== tests/cases/compiler/b.ts ===
|
||||
import { undefined } from "./a";
|
||||
>undefined : any
|
||||
|
||||
declare function use(a: number);
|
||||
>use : (a: number) => any
|
||||
>a : number
|
||||
|
||||
use(undefined);
|
||||
>use(undefined) : any
|
||||
>use : (a: number) => any
|
||||
>undefined : any
|
||||
|
||||
4
tests/cases/compiler/reExportUndefined1.ts
Normal file
4
tests/cases/compiler/reExportUndefined1.ts
Normal file
@ -0,0 +1,4 @@
|
||||
// @module: commonjs
|
||||
|
||||
// @filename: a.ts
|
||||
export { undefined };
|
||||
10
tests/cases/compiler/reExportUndefined2.ts
Normal file
10
tests/cases/compiler/reExportUndefined2.ts
Normal file
@ -0,0 +1,10 @@
|
||||
// @module: commonjs
|
||||
|
||||
// @filename: a.ts
|
||||
var undefined;
|
||||
export { undefined };
|
||||
|
||||
// @filename: b.ts
|
||||
import { undefined } from "./a";
|
||||
declare function use(a: number);
|
||||
use(undefined);
|
||||
Loading…
x
Reference in New Issue
Block a user