Skip to content

Commit 6e0da2b

Browse files
committed
Add test to verify reexported const enums are elided
1 parent 857e7c4 commit 6e0da2b

File tree

4 files changed

+223
-0
lines changed

4 files changed

+223
-0
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
//// [tests/cases/compiler/constEnumNoEmitReexport.ts] ////
2+
3+
//// [ConstEnum.ts]
4+
export const enum MyConstEnum {
5+
Foo,
6+
Bar
7+
};
8+
//// [ImportExport.ts]
9+
import { MyConstEnum } from './ConstEnum';
10+
export { MyConstEnum };
11+
//// [ImportExportDefault.ts]
12+
import { MyConstEnum } from './ConstEnum';
13+
export default MyConstEnum;
14+
//// [ReExportDefault.ts]
15+
export { MyConstEnum as default } from './ConstEnum';
16+
//// [ReExport.ts]
17+
export { MyConstEnum } from './ConstEnum';
18+
//// [Usage1.ts]
19+
import MyConstEnum1 from './ImportExportDefault';
20+
import MyConstEnum2 from './ReExportDefault';
21+
MyConstEnum1.Foo;
22+
MyConstEnum2.Foo;
23+
//// [Usage2.ts]
24+
import { MyConstEnum } from './ImportExport';
25+
MyConstEnum.Foo;
26+
//// [Usage3.ts]
27+
import { MyConstEnum } from './ReExport';
28+
MyConstEnum.Foo;
29+
30+
31+
//// [ConstEnum.js]
32+
"use strict";
33+
exports.__esModule = true;
34+
;
35+
//// [ImportExport.js]
36+
"use strict";
37+
exports.__esModule = true;
38+
//// [ImportExportDefault.js]
39+
"use strict";
40+
exports.__esModule = true;
41+
//// [ReExportDefault.js]
42+
"use strict";
43+
exports.__esModule = true;
44+
//// [ReExport.js]
45+
"use strict";
46+
exports.__esModule = true;
47+
//// [Usage1.js]
48+
"use strict";
49+
exports.__esModule = true;
50+
0 /* Foo */;
51+
0 /* Foo */;
52+
//// [Usage2.js]
53+
"use strict";
54+
exports.__esModule = true;
55+
0 /* Foo */;
56+
//// [Usage3.js]
57+
"use strict";
58+
exports.__esModule = true;
59+
0 /* Foo */;
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
=== tests/cases/compiler/ConstEnum.ts ===
2+
export const enum MyConstEnum {
3+
>MyConstEnum : Symbol(MyConstEnum, Decl(ConstEnum.ts, 0, 0))
4+
5+
Foo,
6+
>Foo : Symbol(MyConstEnum.Foo, Decl(ConstEnum.ts, 0, 31))
7+
8+
Bar
9+
>Bar : Symbol(MyConstEnum.Bar, Decl(ConstEnum.ts, 1, 8))
10+
11+
};
12+
=== tests/cases/compiler/ImportExport.ts ===
13+
import { MyConstEnum } from './ConstEnum';
14+
>MyConstEnum : Symbol(MyConstEnum, Decl(ImportExport.ts, 0, 8))
15+
16+
export { MyConstEnum };
17+
>MyConstEnum : Symbol(MyConstEnum, Decl(ImportExport.ts, 1, 8))
18+
19+
=== tests/cases/compiler/ImportExportDefault.ts ===
20+
import { MyConstEnum } from './ConstEnum';
21+
>MyConstEnum : Symbol(MyConstEnum, Decl(ImportExportDefault.ts, 0, 8))
22+
23+
export default MyConstEnum;
24+
>MyConstEnum : Symbol(MyConstEnum, Decl(ImportExportDefault.ts, 0, 8))
25+
26+
=== tests/cases/compiler/ReExportDefault.ts ===
27+
export { MyConstEnum as default } from './ConstEnum';
28+
>MyConstEnum : Symbol(MyConstEnum, Decl(ConstEnum.ts, 0, 0))
29+
>default : Symbol(default, Decl(ReExportDefault.ts, 0, 8))
30+
31+
=== tests/cases/compiler/ReExport.ts ===
32+
export { MyConstEnum } from './ConstEnum';
33+
>MyConstEnum : Symbol(MyConstEnum, Decl(ReExport.ts, 0, 8))
34+
35+
=== tests/cases/compiler/Usage1.ts ===
36+
import MyConstEnum1 from './ImportExportDefault';
37+
>MyConstEnum1 : Symbol(MyConstEnum1, Decl(Usage1.ts, 0, 6))
38+
39+
import MyConstEnum2 from './ReExportDefault';
40+
>MyConstEnum2 : Symbol(MyConstEnum2, Decl(Usage1.ts, 1, 6))
41+
42+
MyConstEnum1.Foo;
43+
>MyConstEnum1.Foo : Symbol(MyConstEnum1.Foo, Decl(ConstEnum.ts, 0, 31))
44+
>MyConstEnum1 : Symbol(MyConstEnum1, Decl(Usage1.ts, 0, 6))
45+
>Foo : Symbol(MyConstEnum1.Foo, Decl(ConstEnum.ts, 0, 31))
46+
47+
MyConstEnum2.Foo;
48+
>MyConstEnum2.Foo : Symbol(MyConstEnum1.Foo, Decl(ConstEnum.ts, 0, 31))
49+
>MyConstEnum2 : Symbol(MyConstEnum2, Decl(Usage1.ts, 1, 6))
50+
>Foo : Symbol(MyConstEnum1.Foo, Decl(ConstEnum.ts, 0, 31))
51+
52+
=== tests/cases/compiler/Usage2.ts ===
53+
import { MyConstEnum } from './ImportExport';
54+
>MyConstEnum : Symbol(MyConstEnum, Decl(Usage2.ts, 0, 8))
55+
56+
MyConstEnum.Foo;
57+
>MyConstEnum.Foo : Symbol(MyConstEnum.Foo, Decl(ConstEnum.ts, 0, 31))
58+
>MyConstEnum : Symbol(MyConstEnum, Decl(Usage2.ts, 0, 8))
59+
>Foo : Symbol(MyConstEnum.Foo, Decl(ConstEnum.ts, 0, 31))
60+
61+
=== tests/cases/compiler/Usage3.ts ===
62+
import { MyConstEnum } from './ReExport';
63+
>MyConstEnum : Symbol(MyConstEnum, Decl(Usage3.ts, 0, 8))
64+
65+
MyConstEnum.Foo;
66+
>MyConstEnum.Foo : Symbol(MyConstEnum.Foo, Decl(ConstEnum.ts, 0, 31))
67+
>MyConstEnum : Symbol(MyConstEnum, Decl(Usage3.ts, 0, 8))
68+
>Foo : Symbol(MyConstEnum.Foo, Decl(ConstEnum.ts, 0, 31))
69+
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
=== tests/cases/compiler/ConstEnum.ts ===
2+
export const enum MyConstEnum {
3+
>MyConstEnum : MyConstEnum
4+
5+
Foo,
6+
>Foo : MyConstEnum.Foo
7+
8+
Bar
9+
>Bar : MyConstEnum.Bar
10+
11+
};
12+
=== tests/cases/compiler/ImportExport.ts ===
13+
import { MyConstEnum } from './ConstEnum';
14+
>MyConstEnum : typeof MyConstEnum
15+
16+
export { MyConstEnum };
17+
>MyConstEnum : typeof MyConstEnum
18+
19+
=== tests/cases/compiler/ImportExportDefault.ts ===
20+
import { MyConstEnum } from './ConstEnum';
21+
>MyConstEnum : typeof MyConstEnum
22+
23+
export default MyConstEnum;
24+
>MyConstEnum : MyConstEnum
25+
26+
=== tests/cases/compiler/ReExportDefault.ts ===
27+
export { MyConstEnum as default } from './ConstEnum';
28+
>MyConstEnum : typeof import("tests/cases/compiler/ConstEnum").MyConstEnum
29+
>default : typeof import("tests/cases/compiler/ConstEnum").MyConstEnum
30+
31+
=== tests/cases/compiler/ReExport.ts ===
32+
export { MyConstEnum } from './ConstEnum';
33+
>MyConstEnum : typeof import("tests/cases/compiler/ConstEnum").MyConstEnum
34+
35+
=== tests/cases/compiler/Usage1.ts ===
36+
import MyConstEnum1 from './ImportExportDefault';
37+
>MyConstEnum1 : typeof MyConstEnum1
38+
39+
import MyConstEnum2 from './ReExportDefault';
40+
>MyConstEnum2 : typeof MyConstEnum1
41+
42+
MyConstEnum1.Foo;
43+
>MyConstEnum1.Foo : MyConstEnum1.Foo
44+
>MyConstEnum1 : typeof MyConstEnum1
45+
>Foo : MyConstEnum1.Foo
46+
47+
MyConstEnum2.Foo;
48+
>MyConstEnum2.Foo : MyConstEnum1.Foo
49+
>MyConstEnum2 : typeof MyConstEnum1
50+
>Foo : MyConstEnum1.Foo
51+
52+
=== tests/cases/compiler/Usage2.ts ===
53+
import { MyConstEnum } from './ImportExport';
54+
>MyConstEnum : typeof MyConstEnum
55+
56+
MyConstEnum.Foo;
57+
>MyConstEnum.Foo : MyConstEnum.Foo
58+
>MyConstEnum : typeof MyConstEnum
59+
>Foo : MyConstEnum.Foo
60+
61+
=== tests/cases/compiler/Usage3.ts ===
62+
import { MyConstEnum } from './ReExport';
63+
>MyConstEnum : typeof MyConstEnum
64+
65+
MyConstEnum.Foo;
66+
>MyConstEnum.Foo : MyConstEnum.Foo
67+
>MyConstEnum : typeof MyConstEnum
68+
>Foo : MyConstEnum.Foo
69+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// @filename: ConstEnum.ts
2+
export const enum MyConstEnum {
3+
Foo,
4+
Bar
5+
};
6+
// @filename: ImportExport.ts
7+
import { MyConstEnum } from './ConstEnum';
8+
export { MyConstEnum };
9+
// @filename: ImportExportDefault.ts
10+
import { MyConstEnum } from './ConstEnum';
11+
export default MyConstEnum;
12+
// @filename: ReExportDefault.ts
13+
export { MyConstEnum as default } from './ConstEnum';
14+
// @filename: ReExport.ts
15+
export { MyConstEnum } from './ConstEnum';
16+
// @filename: Usage1.ts
17+
import MyConstEnum1 from './ImportExportDefault';
18+
import MyConstEnum2 from './ReExportDefault';
19+
MyConstEnum1.Foo;
20+
MyConstEnum2.Foo;
21+
// @filename: Usage2.ts
22+
import { MyConstEnum } from './ImportExport';
23+
MyConstEnum.Foo;
24+
// @filename: Usage3.ts
25+
import { MyConstEnum } from './ReExport';
26+
MyConstEnum.Foo;

0 commit comments

Comments
 (0)