2014-07-13 01:04:16 +02:00
|
|
|
//// [enumMerging.ts]
|
|
|
|
// Enum with only constant members across 2 declarations with the same root module
|
|
|
|
// Enum with initializer in all declarations with constant members with the same root module
|
|
|
|
module M1 {
|
|
|
|
enum EImpl1 {
|
|
|
|
A, B, C
|
|
|
|
}
|
|
|
|
|
|
|
|
enum EImpl1 {
|
|
|
|
D = 1, E, F
|
|
|
|
}
|
|
|
|
|
|
|
|
export enum EConst1 {
|
|
|
|
A = 3, B = 2, C = 1
|
|
|
|
}
|
|
|
|
|
|
|
|
export enum EConst1 {
|
|
|
|
D = 7, E = 9, F = 8
|
|
|
|
}
|
|
|
|
|
|
|
|
var x = [EConst1.A, EConst1.B, EConst1.C, EConst1.D, EConst1.E, EConst1.F];
|
|
|
|
}
|
|
|
|
|
|
|
|
// Enum with only computed members across 2 declarations with the same root module
|
|
|
|
module M2 {
|
|
|
|
export enum EComp2 {
|
|
|
|
A = 'foo'.length, B = 'foo'.length, C = 'foo'.length
|
|
|
|
}
|
|
|
|
|
|
|
|
export enum EComp2 {
|
|
|
|
D = 'foo'.length, E = 'foo'.length, F = 'foo'.length
|
|
|
|
}
|
|
|
|
|
|
|
|
var x = [EComp2.A, EComp2.B, EComp2.C, EComp2.D, EComp2.E, EComp2.F];
|
|
|
|
}
|
|
|
|
|
|
|
|
// Enum with initializer in only one of two declarations with constant members with the same root module
|
|
|
|
module M3 {
|
|
|
|
enum EInit {
|
|
|
|
A,
|
|
|
|
B
|
|
|
|
}
|
|
|
|
|
|
|
|
enum EInit {
|
|
|
|
C = 1, D, E
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Enums with same name but different root module
|
|
|
|
module M4 {
|
|
|
|
export enum Color { Red, Green, Blue }
|
|
|
|
}
|
|
|
|
module M5 {
|
|
|
|
export enum Color { Red, Green, Blue }
|
|
|
|
}
|
|
|
|
|
|
|
|
module M6.A {
|
|
|
|
export enum Color { Red, Green, Blue }
|
|
|
|
}
|
|
|
|
module M6 {
|
|
|
|
export module A {
|
|
|
|
export enum Color { Yellow = 1 }
|
|
|
|
}
|
|
|
|
var t = A.Color.Yellow;
|
|
|
|
t = A.Color.Red;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//// [enumMerging.js]
|
2014-08-14 15:53:37 +02:00
|
|
|
// Enum with only constant members across 2 declarations with the same root module
|
|
|
|
// Enum with initializer in all declarations with constant members with the same root module
|
2014-07-13 01:04:16 +02:00
|
|
|
var M1;
|
|
|
|
(function (M1) {
|
|
|
|
var EImpl1;
|
|
|
|
(function (EImpl1) {
|
|
|
|
EImpl1[EImpl1["A"] = 0] = "A";
|
|
|
|
EImpl1[EImpl1["B"] = 1] = "B";
|
|
|
|
EImpl1[EImpl1["C"] = 2] = "C";
|
|
|
|
})(EImpl1 || (EImpl1 = {}));
|
|
|
|
var EImpl1;
|
|
|
|
(function (EImpl1) {
|
|
|
|
EImpl1[EImpl1["D"] = 1] = "D";
|
|
|
|
EImpl1[EImpl1["E"] = 2] = "E";
|
|
|
|
EImpl1[EImpl1["F"] = 3] = "F";
|
|
|
|
})(EImpl1 || (EImpl1 = {}));
|
|
|
|
(function (EConst1) {
|
|
|
|
EConst1[EConst1["A"] = 3] = "A";
|
|
|
|
EConst1[EConst1["B"] = 2] = "B";
|
|
|
|
EConst1[EConst1["C"] = 1] = "C";
|
|
|
|
})(M1.EConst1 || (M1.EConst1 = {}));
|
|
|
|
var EConst1 = M1.EConst1;
|
|
|
|
(function (EConst1) {
|
|
|
|
EConst1[EConst1["D"] = 7] = "D";
|
|
|
|
EConst1[EConst1["E"] = 9] = "E";
|
|
|
|
EConst1[EConst1["F"] = 8] = "F";
|
|
|
|
})(M1.EConst1 || (M1.EConst1 = {}));
|
|
|
|
var EConst1 = M1.EConst1;
|
|
|
|
var x = [3 /* A */, 2 /* B */, 1 /* C */, 7 /* D */, 9 /* E */, 8 /* F */];
|
|
|
|
})(M1 || (M1 = {}));
|
2014-08-14 15:53:37 +02:00
|
|
|
// Enum with only computed members across 2 declarations with the same root module
|
2014-07-13 01:04:16 +02:00
|
|
|
var M2;
|
|
|
|
(function (M2) {
|
|
|
|
(function (EComp2) {
|
|
|
|
EComp2[EComp2["A"] = 'foo'.length] = "A";
|
|
|
|
EComp2[EComp2["B"] = 'foo'.length] = "B";
|
|
|
|
EComp2[EComp2["C"] = 'foo'.length] = "C";
|
|
|
|
})(M2.EComp2 || (M2.EComp2 = {}));
|
|
|
|
var EComp2 = M2.EComp2;
|
|
|
|
(function (EComp2) {
|
|
|
|
EComp2[EComp2["D"] = 'foo'.length] = "D";
|
|
|
|
EComp2[EComp2["E"] = 'foo'.length] = "E";
|
|
|
|
EComp2[EComp2["F"] = 'foo'.length] = "F";
|
|
|
|
})(M2.EComp2 || (M2.EComp2 = {}));
|
|
|
|
var EComp2 = M2.EComp2;
|
|
|
|
var x = [EComp2.A, EComp2.B, EComp2.C, EComp2.D, EComp2.E, EComp2.F];
|
|
|
|
})(M2 || (M2 = {}));
|
2014-08-14 15:53:37 +02:00
|
|
|
// Enum with initializer in only one of two declarations with constant members with the same root module
|
2014-07-13 01:04:16 +02:00
|
|
|
var M3;
|
|
|
|
(function (M3) {
|
|
|
|
var EInit;
|
|
|
|
(function (EInit) {
|
|
|
|
EInit[EInit["A"] = 0] = "A";
|
|
|
|
EInit[EInit["B"] = 1] = "B";
|
|
|
|
})(EInit || (EInit = {}));
|
|
|
|
var EInit;
|
|
|
|
(function (EInit) {
|
|
|
|
EInit[EInit["C"] = 1] = "C";
|
|
|
|
EInit[EInit["D"] = 2] = "D";
|
|
|
|
EInit[EInit["E"] = 3] = "E";
|
|
|
|
})(EInit || (EInit = {}));
|
|
|
|
})(M3 || (M3 = {}));
|
2014-08-14 15:53:37 +02:00
|
|
|
// Enums with same name but different root module
|
2014-07-13 01:04:16 +02:00
|
|
|
var M4;
|
|
|
|
(function (M4) {
|
|
|
|
(function (Color) {
|
|
|
|
Color[Color["Red"] = 0] = "Red";
|
|
|
|
Color[Color["Green"] = 1] = "Green";
|
|
|
|
Color[Color["Blue"] = 2] = "Blue";
|
|
|
|
})(M4.Color || (M4.Color = {}));
|
|
|
|
var Color = M4.Color;
|
|
|
|
})(M4 || (M4 = {}));
|
|
|
|
var M5;
|
|
|
|
(function (M5) {
|
|
|
|
(function (Color) {
|
|
|
|
Color[Color["Red"] = 0] = "Red";
|
|
|
|
Color[Color["Green"] = 1] = "Green";
|
|
|
|
Color[Color["Blue"] = 2] = "Blue";
|
|
|
|
})(M5.Color || (M5.Color = {}));
|
|
|
|
var Color = M5.Color;
|
|
|
|
})(M5 || (M5 = {}));
|
|
|
|
var M6;
|
|
|
|
(function (M6) {
|
2014-09-07 02:40:19 +02:00
|
|
|
var A;
|
2014-07-13 01:04:16 +02:00
|
|
|
(function (A) {
|
|
|
|
(function (Color) {
|
|
|
|
Color[Color["Red"] = 0] = "Red";
|
|
|
|
Color[Color["Green"] = 1] = "Green";
|
|
|
|
Color[Color["Blue"] = 2] = "Blue";
|
|
|
|
})(A.Color || (A.Color = {}));
|
|
|
|
var Color = A.Color;
|
2014-09-07 02:40:19 +02:00
|
|
|
})(A = M6.A || (M6.A = {}));
|
2014-07-13 01:04:16 +02:00
|
|
|
})(M6 || (M6 = {}));
|
|
|
|
var M6;
|
|
|
|
(function (M6) {
|
2014-09-07 02:40:19 +02:00
|
|
|
var A;
|
2014-07-13 01:04:16 +02:00
|
|
|
(function (A) {
|
|
|
|
(function (Color) {
|
|
|
|
Color[Color["Yellow"] = 1] = "Yellow";
|
|
|
|
})(A.Color || (A.Color = {}));
|
|
|
|
var Color = A.Color;
|
2014-09-07 02:40:19 +02:00
|
|
|
})(A = M6.A || (M6.A = {}));
|
2014-07-13 01:04:16 +02:00
|
|
|
var t = 1 /* Yellow */;
|
|
|
|
t = 0 /* Red */;
|
|
|
|
})(M6 || (M6 = {}));
|