Fixed another bug in parser & fixed up baselines
This commit is contained in:
parent
c77135d3d9
commit
8286b67c09
|
@ -3674,7 +3674,8 @@ module ts {
|
|||
var errorCountBeforeEnumMember = file.syntacticErrors.length;
|
||||
node.name = parsePropertyName();
|
||||
|
||||
if(!isNaN(Number(node.name.text))) {
|
||||
// number("") returns 0 so we have to special case it
|
||||
if(node.name.text !== "" && !isNaN(Number(node.name.text))) {
|
||||
grammarErrorOnNode(node.name, Diagnostics.An_enum_member_cannot_have_a_numeric_name);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
//// [bitwiseNotOperatorWithEnumType.ts]
|
||||
// ~ operator on enum type
|
||||
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// enum type var
|
||||
var ResultIsNumber1 = ~ENUM1;
|
||||
|
@ -22,8 +22,8 @@ var ResultIsNumber4 = ~~~(ENUM1[1] + ENUM1[2]);
|
|||
// ~ operator on enum type
|
||||
var ENUM1;
|
||||
(function (ENUM1) {
|
||||
ENUM1[ENUM1["1"] = 0] = "1";
|
||||
ENUM1[ENUM1["2"] = 1] = "2";
|
||||
ENUM1[ENUM1["A"] = 0] = "A";
|
||||
ENUM1[ENUM1["B"] = 1] = "B";
|
||||
ENUM1[ENUM1[""] = 2] = "";
|
||||
})(ENUM1 || (ENUM1 = {}));
|
||||
;
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
=== tests/cases/conformance/expressions/unaryOperators/bitwiseNotOperator/bitwiseNotOperatorWithEnumType.ts ===
|
||||
// ~ operator on enum type
|
||||
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
>ENUM1 : ENUM1
|
||||
>A : ENUM1
|
||||
>B : ENUM1
|
||||
|
||||
// enum type var
|
||||
var ResultIsNumber1 = ~ENUM1;
|
||||
|
@ -14,17 +16,17 @@ var ResultIsNumber1 = ~ENUM1;
|
|||
var ResultIsNumber2 = ~ENUM1[1];
|
||||
>ResultIsNumber2 : number
|
||||
>~ENUM1[1] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
var ResultIsNumber3 = ~(ENUM1[1] + ENUM1[2]);
|
||||
>ResultIsNumber3 : number
|
||||
>~(ENUM1[1] + ENUM1[2]) : number
|
||||
>(ENUM1[1] + ENUM1[2]) : number
|
||||
>ENUM1[1] + ENUM1[2] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>(ENUM1[1] + ENUM1[2]) : string
|
||||
>ENUM1[1] + ENUM1[2] : string
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
>ENUM1[2] : ENUM1
|
||||
>ENUM1[2] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// multiple ~ operators
|
||||
|
@ -33,11 +35,11 @@ var ResultIsNumber4 = ~~~(ENUM1[1] + ENUM1[2]);
|
|||
>~~~(ENUM1[1] + ENUM1[2]) : number
|
||||
>~~(ENUM1[1] + ENUM1[2]) : number
|
||||
>~(ENUM1[1] + ENUM1[2]) : number
|
||||
>(ENUM1[1] + ENUM1[2]) : number
|
||||
>ENUM1[1] + ENUM1[2] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>(ENUM1[1] + ENUM1[2]) : string
|
||||
>ENUM1[1] + ENUM1[2] : string
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
>ENUM1[2] : ENUM1
|
||||
>ENUM1[2] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// miss assignment operators
|
||||
|
@ -47,15 +49,15 @@ var ResultIsNumber4 = ~~~(ENUM1[1] + ENUM1[2]);
|
|||
|
||||
~ENUM1[1];
|
||||
>~ENUM1[1] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
~ENUM1[1], ~ENUM1[2];
|
||||
>~ENUM1[1], ~ENUM1[2] : number
|
||||
>~ENUM1[1] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
>~ENUM1[2] : number
|
||||
>ENUM1[2] : ENUM1
|
||||
>ENUM1[2] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
tests/cases/conformance/expressions/unaryOperators/decrementOperator/decrementOperatorWithEnumType.ts(6,25): error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
tests/cases/conformance/expressions/unaryOperators/decrementOperator/decrementOperatorWithEnumType.ts(7,23): error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
tests/cases/conformance/expressions/unaryOperators/decrementOperator/decrementOperatorWithEnumType.ts(10,3): error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
tests/cases/conformance/expressions/unaryOperators/decrementOperator/decrementOperatorWithEnumType.ts(12,1): error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
|
||||
|
||||
==== tests/cases/conformance/expressions/unaryOperators/decrementOperator/decrementOperatorWithEnumType.ts (4 errors) ====
|
||||
// -- operator on enum type
|
||||
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// expression
|
||||
var ResultIsNumber1 = --ENUM1[1];
|
||||
~~~~~~~~
|
||||
!!! error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
var ResultIsNumber2 = ENUM1[1]--;
|
||||
~~~~~~~~
|
||||
!!! error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
|
||||
// miss assignment operator
|
||||
--ENUM1[1];
|
||||
~~~~~~~~
|
||||
!!! error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
|
||||
ENUM1[1]--;
|
||||
~~~~~~~~
|
||||
!!! error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
|
@ -1,7 +1,7 @@
|
|||
//// [decrementOperatorWithEnumType.ts]
|
||||
// -- operator on enum type
|
||||
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// expression
|
||||
var ResultIsNumber1 = --ENUM1[1];
|
||||
|
@ -16,8 +16,8 @@ ENUM1[1]--;
|
|||
// -- operator on enum type
|
||||
var ENUM1;
|
||||
(function (ENUM1) {
|
||||
ENUM1[ENUM1["1"] = 0] = "1";
|
||||
ENUM1[ENUM1["2"] = 1] = "2";
|
||||
ENUM1[ENUM1["A"] = 0] = "A";
|
||||
ENUM1[ENUM1["B"] = 1] = "B";
|
||||
ENUM1[ENUM1[""] = 2] = "";
|
||||
})(ENUM1 || (ENUM1 = {}));
|
||||
;
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
=== tests/cases/conformance/expressions/unaryOperators/decrementOperator/decrementOperatorWithEnumType.ts ===
|
||||
// -- operator on enum type
|
||||
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
>ENUM1 : ENUM1
|
||||
|
||||
// expression
|
||||
var ResultIsNumber1 = --ENUM1[1];
|
||||
>ResultIsNumber1 : number
|
||||
>--ENUM1[1] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
var ResultIsNumber2 = ENUM1[1]--;
|
||||
>ResultIsNumber2 : number
|
||||
>ENUM1[1]-- : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// miss assignment operator
|
||||
--ENUM1[1];
|
||||
>--ENUM1[1] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
ENUM1[1]--;
|
||||
>ENUM1[1]-- : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
|
@ -14,7 +14,7 @@ tests/cases/conformance/expressions/unaryOperators/decrementOperator/decrementOp
|
|||
// -- operator on enum type
|
||||
|
||||
enum ENUM { };
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// enum type var
|
||||
var ResultIsNumber1 = --ENUM;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// -- operator on enum type
|
||||
|
||||
enum ENUM { };
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// enum type var
|
||||
var ResultIsNumber1 = --ENUM;
|
||||
|
@ -30,8 +30,8 @@ var ENUM;
|
|||
;
|
||||
var ENUM1;
|
||||
(function (ENUM1) {
|
||||
ENUM1[ENUM1["1"] = 0] = "1";
|
||||
ENUM1[ENUM1["2"] = 1] = "2";
|
||||
ENUM1[ENUM1["A"] = 0] = "A";
|
||||
ENUM1[ENUM1["B"] = 1] = "B";
|
||||
ENUM1[ENUM1[""] = 2] = "";
|
||||
})(ENUM1 || (ENUM1 = {}));
|
||||
;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// delete operator on enum type
|
||||
|
||||
enum ENUM { };
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// enum type var
|
||||
var ResultIsBoolean1 = delete ENUM;
|
||||
|
@ -30,8 +30,8 @@ var ENUM;
|
|||
;
|
||||
var ENUM1;
|
||||
(function (ENUM1) {
|
||||
ENUM1[ENUM1["1"] = 0] = "1";
|
||||
ENUM1[ENUM1["2"] = 1] = "2";
|
||||
ENUM1[ENUM1["A"] = 0] = "A";
|
||||
ENUM1[ENUM1["B"] = 1] = "B";
|
||||
ENUM1[ENUM1[""] = 2] = "";
|
||||
})(ENUM1 || (ENUM1 = {}));
|
||||
;
|
||||
|
|
|
@ -4,8 +4,10 @@
|
|||
enum ENUM { };
|
||||
>ENUM : ENUM
|
||||
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
>ENUM1 : ENUM1
|
||||
>A : ENUM1
|
||||
>B : ENUM1
|
||||
|
||||
// enum type var
|
||||
var ResultIsBoolean1 = delete ENUM;
|
||||
|
@ -32,7 +34,7 @@ var ResultIsBoolean4 = delete (ENUM[0] + ENUM1[1]);
|
|||
>ENUM[0] + ENUM1[1] : string
|
||||
>ENUM[0] : string
|
||||
>ENUM : typeof ENUM
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// multiple delete operators
|
||||
|
@ -51,7 +53,7 @@ var ResultIsBoolean6 = delete delete delete (ENUM[0] + ENUM1[1]);
|
|||
>ENUM[0] + ENUM1[1] : string
|
||||
>ENUM[0] : string
|
||||
>ENUM : typeof ENUM
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// miss assignment operators
|
||||
|
@ -65,7 +67,7 @@ delete ENUM1;
|
|||
|
||||
delete ENUM1[1];
|
||||
>delete ENUM1[1] : boolean
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
delete ENUM, ENUM1;
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
tests/cases/compiler/enumIdenticalIdentifierValues.ts(2,5): error TS2300: Duplicate identifier '1'.
|
||||
tests/cases/compiler/enumIdenticalIdentifierValues.ts(3,5): error TS2300: Duplicate identifier '1.0'.
|
||||
|
||||
|
||||
==== tests/cases/compiler/enumIdenticalIdentifierValues.ts (2 errors) ====
|
||||
enum Enum {
|
||||
1,
|
||||
~
|
||||
!!! error TS2300: Duplicate identifier '1'.
|
||||
1.0
|
||||
~~~
|
||||
!!! error TS2300: Duplicate identifier '1.0'.
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
//// [enumIdenticalIdentifierValues.ts]
|
||||
enum Enum {
|
||||
1,
|
||||
1.0
|
||||
}
|
||||
|
||||
//// [enumIdenticalIdentifierValues.js]
|
||||
var Enum;
|
||||
(function (Enum) {
|
||||
Enum[Enum["1"] = 0] = "1";
|
||||
Enum[Enum["1"] = 1] = "1";
|
||||
})(Enum || (Enum = {}));
|
25
tests/baselines/reference/enumIdentifierLiterals.errors.txt
Normal file
25
tests/baselines/reference/enumIdentifierLiterals.errors.txt
Normal file
|
@ -0,0 +1,25 @@
|
|||
tests/cases/compiler/enumIdentifierLiterals.ts(2,5): error TS1065: An enum member cannot have a numeric name.
|
||||
tests/cases/compiler/enumIdentifierLiterals.ts(3,5): error TS1065: An enum member cannot have a numeric name.
|
||||
tests/cases/compiler/enumIdentifierLiterals.ts(4,5): error TS1065: An enum member cannot have a numeric name.
|
||||
tests/cases/compiler/enumIdentifierLiterals.ts(5,5): error TS1065: An enum member cannot have a numeric name.
|
||||
tests/cases/compiler/enumIdentifierLiterals.ts(6,5): error TS1065: An enum member cannot have a numeric name.
|
||||
|
||||
|
||||
==== tests/cases/compiler/enumIdentifierLiterals.ts (5 errors) ====
|
||||
enum Nums {
|
||||
1.0,
|
||||
~~~
|
||||
!!! error TS1065: An enum member cannot have a numeric name.
|
||||
11e-1,
|
||||
~~~~~
|
||||
!!! error TS1065: An enum member cannot have a numeric name.
|
||||
0.12e1,
|
||||
~~~~~~
|
||||
!!! error TS1065: An enum member cannot have a numeric name.
|
||||
"13e-1",
|
||||
~~~~~~~
|
||||
!!! error TS1065: An enum member cannot have a numeric name.
|
||||
0xF00D
|
||||
~~~~~~
|
||||
!!! error TS1065: An enum member cannot have a numeric name.
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
//// [enumIdentifierLiterals.ts]
|
||||
enum Nums {
|
||||
1.0,
|
||||
11e-1,
|
||||
0.12e1,
|
||||
"13e-1",
|
||||
0xF00D
|
||||
}
|
||||
|
||||
//// [enumIdentifierLiterals.js]
|
||||
var Nums;
|
||||
(function (Nums) {
|
||||
Nums[Nums["1"] = 0] = "1";
|
||||
Nums[Nums["1.1"] = 1] = "1.1";
|
||||
Nums[Nums["1.2"] = 2] = "1.2";
|
||||
Nums[Nums["13e-1"] = 3] = "13e-1";
|
||||
Nums[Nums["61453"] = 4] = "61453";
|
||||
})(Nums || (Nums = {}));
|
|
@ -1,10 +0,0 @@
|
|||
=== tests/cases/compiler/enumIdentifierLiterals.ts ===
|
||||
enum Nums {
|
||||
>Nums : Nums
|
||||
|
||||
1.0,
|
||||
11e-1,
|
||||
0.12e1,
|
||||
"13e-1",
|
||||
0xF00D
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
tests/cases/conformance/expressions/unaryOperators/incrementOperator/incrementOperatorWithEnumType.ts(6,25): error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
tests/cases/conformance/expressions/unaryOperators/incrementOperator/incrementOperatorWithEnumType.ts(7,23): error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
tests/cases/conformance/expressions/unaryOperators/incrementOperator/incrementOperatorWithEnumType.ts(10,3): error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
tests/cases/conformance/expressions/unaryOperators/incrementOperator/incrementOperatorWithEnumType.ts(12,1): error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
|
||||
|
||||
==== tests/cases/conformance/expressions/unaryOperators/incrementOperator/incrementOperatorWithEnumType.ts (4 errors) ====
|
||||
// ++ operator on enum type
|
||||
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// expression
|
||||
var ResultIsNumber1 = ++ENUM1[1];
|
||||
~~~~~~~~
|
||||
!!! error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
var ResultIsNumber2 = ENUM1[1]++;
|
||||
~~~~~~~~
|
||||
!!! error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
|
||||
// miss assignment operator
|
||||
++ENUM1[1];
|
||||
~~~~~~~~
|
||||
!!! error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
||||
|
||||
ENUM1[1]++;
|
||||
~~~~~~~~
|
||||
!!! error TS2356: An arithmetic operand must be of type 'any', 'number' or an enum type.
|
|
@ -1,7 +1,7 @@
|
|||
//// [incrementOperatorWithEnumType.ts]
|
||||
// ++ operator on enum type
|
||||
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// expression
|
||||
var ResultIsNumber1 = ++ENUM1[1];
|
||||
|
@ -16,8 +16,8 @@ ENUM1[1]++;
|
|||
// ++ operator on enum type
|
||||
var ENUM1;
|
||||
(function (ENUM1) {
|
||||
ENUM1[ENUM1["1"] = 0] = "1";
|
||||
ENUM1[ENUM1["2"] = 1] = "2";
|
||||
ENUM1[ENUM1["A"] = 0] = "A";
|
||||
ENUM1[ENUM1["B"] = 1] = "B";
|
||||
ENUM1[ENUM1[""] = 2] = "";
|
||||
})(ENUM1 || (ENUM1 = {}));
|
||||
;
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
=== tests/cases/conformance/expressions/unaryOperators/incrementOperator/incrementOperatorWithEnumType.ts ===
|
||||
// ++ operator on enum type
|
||||
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
>ENUM1 : ENUM1
|
||||
|
||||
// expression
|
||||
var ResultIsNumber1 = ++ENUM1[1];
|
||||
>ResultIsNumber1 : number
|
||||
>++ENUM1[1] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
var ResultIsNumber2 = ENUM1[1]++;
|
||||
>ResultIsNumber2 : number
|
||||
>ENUM1[1]++ : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// miss assignment operator
|
||||
++ENUM1[1];
|
||||
>++ENUM1[1] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
ENUM1[1]++;
|
||||
>ENUM1[1]++ : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
|
@ -14,7 +14,7 @@ tests/cases/conformance/expressions/unaryOperators/incrementOperator/incrementOp
|
|||
// ++ operator on enum type
|
||||
|
||||
enum ENUM { };
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// enum type var
|
||||
var ResultIsNumber1 = ++ENUM;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// ++ operator on enum type
|
||||
|
||||
enum ENUM { };
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// enum type var
|
||||
var ResultIsNumber1 = ++ENUM;
|
||||
|
@ -30,8 +30,8 @@ var ENUM;
|
|||
;
|
||||
var ENUM1;
|
||||
(function (ENUM1) {
|
||||
ENUM1[ENUM1["1"] = 0] = "1";
|
||||
ENUM1[ENUM1["2"] = 1] = "2";
|
||||
ENUM1[ENUM1["A"] = 0] = "A";
|
||||
ENUM1[ENUM1["B"] = 1] = "B";
|
||||
ENUM1[ENUM1[""] = 2] = "";
|
||||
})(ENUM1 || (ENUM1 = {}));
|
||||
;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
//// [logicalNotOperatorWithEnumType.ts]
|
||||
// ! operator on enum type
|
||||
|
||||
enum ENUM { 1, 2, 3 };
|
||||
enum ENUM { A, B, C };
|
||||
enum ENUM1 { };
|
||||
|
||||
// enum type var
|
||||
|
@ -25,9 +25,9 @@ var ResultIsBoolean5 = !!!(ENUM[1] + ENUM[2]);
|
|||
// ! operator on enum type
|
||||
var ENUM;
|
||||
(function (ENUM) {
|
||||
ENUM[ENUM["1"] = 0] = "1";
|
||||
ENUM[ENUM["2"] = 1] = "2";
|
||||
ENUM[ENUM["3"] = 2] = "3";
|
||||
ENUM[ENUM["A"] = 0] = "A";
|
||||
ENUM[ENUM["B"] = 1] = "B";
|
||||
ENUM[ENUM["C"] = 2] = "C";
|
||||
})(ENUM || (ENUM = {}));
|
||||
;
|
||||
var ENUM1;
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
=== tests/cases/conformance/expressions/unaryOperators/logicalNotOperator/logicalNotOperatorWithEnumType.ts ===
|
||||
// ! operator on enum type
|
||||
|
||||
enum ENUM { 1, 2, 3 };
|
||||
enum ENUM { A, B, C };
|
||||
>ENUM : ENUM
|
||||
>A : ENUM
|
||||
>B : ENUM
|
||||
>C : ENUM
|
||||
|
||||
enum ENUM1 { };
|
||||
>ENUM1 : ENUM1
|
||||
|
@ -17,17 +20,17 @@ var ResultIsBoolean1 = !ENUM;
|
|||
var ResultIsBoolean2 = !ENUM[1];
|
||||
>ResultIsBoolean2 : boolean
|
||||
>!ENUM[1] : boolean
|
||||
>ENUM[1] : ENUM
|
||||
>ENUM[1] : string
|
||||
>ENUM : typeof ENUM
|
||||
|
||||
var ResultIsBoolean3 = !(ENUM[1] + ENUM[2]);
|
||||
>ResultIsBoolean3 : boolean
|
||||
>!(ENUM[1] + ENUM[2]) : boolean
|
||||
>(ENUM[1] + ENUM[2]) : number
|
||||
>ENUM[1] + ENUM[2] : number
|
||||
>ENUM[1] : ENUM
|
||||
>(ENUM[1] + ENUM[2]) : string
|
||||
>ENUM[1] + ENUM[2] : string
|
||||
>ENUM[1] : string
|
||||
>ENUM : typeof ENUM
|
||||
>ENUM[2] : ENUM
|
||||
>ENUM[2] : string
|
||||
>ENUM : typeof ENUM
|
||||
|
||||
// multiple ! operators
|
||||
|
@ -42,11 +45,11 @@ var ResultIsBoolean5 = !!!(ENUM[1] + ENUM[2]);
|
|||
>!!!(ENUM[1] + ENUM[2]) : boolean
|
||||
>!!(ENUM[1] + ENUM[2]) : boolean
|
||||
>!(ENUM[1] + ENUM[2]) : boolean
|
||||
>(ENUM[1] + ENUM[2]) : number
|
||||
>ENUM[1] + ENUM[2] : number
|
||||
>ENUM[1] : ENUM
|
||||
>(ENUM[1] + ENUM[2]) : string
|
||||
>ENUM[1] + ENUM[2] : string
|
||||
>ENUM[1] : string
|
||||
>ENUM : typeof ENUM
|
||||
>ENUM[2] : ENUM
|
||||
>ENUM[2] : string
|
||||
>ENUM : typeof ENUM
|
||||
|
||||
// miss assignment operators
|
||||
|
@ -60,7 +63,7 @@ var ResultIsBoolean5 = !!!(ENUM[1] + ENUM[2]);
|
|||
|
||||
!ENUM[1];
|
||||
>!ENUM[1] : boolean
|
||||
>ENUM[1] : ENUM
|
||||
>ENUM[1] : string
|
||||
>ENUM : typeof ENUM
|
||||
|
||||
!ENUM, ENUM1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// - operator on enum type
|
||||
|
||||
enum ENUM { };
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// enum type var
|
||||
var ResultIsNumber1 = -ENUM;
|
||||
|
@ -25,8 +25,8 @@ var ENUM;
|
|||
;
|
||||
var ENUM1;
|
||||
(function (ENUM1) {
|
||||
ENUM1[ENUM1["1"] = 0] = "1";
|
||||
ENUM1[ENUM1["2"] = 1] = "2";
|
||||
ENUM1[ENUM1["A"] = 0] = "A";
|
||||
ENUM1[ENUM1["B"] = 1] = "B";
|
||||
ENUM1[ENUM1[""] = 2] = "";
|
||||
})(ENUM1 || (ENUM1 = {}));
|
||||
;
|
||||
|
|
|
@ -4,8 +4,10 @@
|
|||
enum ENUM { };
|
||||
>ENUM : ENUM
|
||||
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
>ENUM1 : ENUM1
|
||||
>A : ENUM1
|
||||
>B : ENUM1
|
||||
|
||||
// enum type var
|
||||
var ResultIsNumber1 = -ENUM;
|
||||
|
@ -17,17 +19,17 @@ var ResultIsNumber1 = -ENUM;
|
|||
var ResultIsNumber2 = -ENUM1[1];
|
||||
>ResultIsNumber2 : number
|
||||
>-ENUM1[1] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
var ResultIsNumber3 = -(ENUM1[1] + ENUM1[2]);
|
||||
>ResultIsNumber3 : number
|
||||
>-(ENUM1[1] + ENUM1[2]) : number
|
||||
>(ENUM1[1] + ENUM1[2]) : number
|
||||
>ENUM1[1] + ENUM1[2] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>(ENUM1[1] + ENUM1[2]) : string
|
||||
>ENUM1[1] + ENUM1[2] : string
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
>ENUM1[2] : ENUM1
|
||||
>ENUM1[2] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// miss assignment operators
|
||||
|
@ -41,7 +43,7 @@ var ResultIsNumber3 = -(ENUM1[1] + ENUM1[2]);
|
|||
|
||||
-ENUM1[1];
|
||||
>-ENUM1[1] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
-ENUM, ENUM1;
|
||||
|
|
|
@ -1,15 +1,24 @@
|
|||
tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum5.ts(2,12): error TS1005: ',' expected.
|
||||
tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum5.ts(2,14): error TS1065: An enum member cannot have a numeric name.
|
||||
tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum5.ts(3,15): error TS1005: ',' expected.
|
||||
tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum5.ts(3,17): error TS1065: An enum member cannot have a numeric name.
|
||||
tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum5.ts(3,24): error TS1005: ',' expected.
|
||||
tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum5.ts(3,26): error TS1065: An enum member cannot have a numeric name.
|
||||
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum5.ts (3 errors) ====
|
||||
==== tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum5.ts (6 errors) ====
|
||||
enum E2 { a, }
|
||||
enum E3 { a: 1, }
|
||||
~
|
||||
!!! error TS1005: ',' expected.
|
||||
~
|
||||
!!! error TS1065: An enum member cannot have a numeric name.
|
||||
enum E1 { a, b: 1, c, d: 2 = 3 }
|
||||
~
|
||||
!!! error TS1005: ',' expected.
|
||||
~
|
||||
!!! error TS1065: An enum member cannot have a numeric name.
|
||||
~
|
||||
!!! error TS1005: ',' expected.
|
||||
!!! error TS1005: ',' expected.
|
||||
~
|
||||
!!! error TS1065: An enum member cannot have a numeric name.
|
15
tests/baselines/reference/parserEnum7.errors.txt
Normal file
15
tests/baselines/reference/parserEnum7.errors.txt
Normal file
|
@ -0,0 +1,15 @@
|
|||
tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum7.ts(2,3): error TS1065: An enum member cannot have a numeric name.
|
||||
tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum7.ts(2,6): error TS1065: An enum member cannot have a numeric name.
|
||||
tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum7.ts(2,9): error TS1065: An enum member cannot have a numeric name.
|
||||
|
||||
|
||||
==== tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum7.ts (3 errors) ====
|
||||
enum E {
|
||||
1, 2, 3
|
||||
~
|
||||
!!! error TS1065: An enum member cannot have a numeric name.
|
||||
~
|
||||
!!! error TS1065: An enum member cannot have a numeric name.
|
||||
~
|
||||
!!! error TS1065: An enum member cannot have a numeric name.
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
//// [parserEnum7.ts]
|
||||
enum E {
|
||||
1, 2, 3
|
||||
}
|
||||
|
||||
//// [parserEnum7.js]
|
||||
var E;
|
||||
(function (E) {
|
||||
E[E["1"] = 0] = "1";
|
||||
E[E["2"] = 1] = "2";
|
||||
E[E["3"] = 2] = "3";
|
||||
})(E || (E = {}));
|
|
@ -1,6 +0,0 @@
|
|||
=== tests/cases/conformance/parser/ecmascript5/EnumDeclarations/parserEnum7.ts ===
|
||||
enum E {
|
||||
>E : E
|
||||
|
||||
1, 2, 3
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
// + operator on enum type
|
||||
|
||||
enum ENUM { };
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// enum type var
|
||||
var ResultIsNumber1 = +ENUM;
|
||||
|
@ -26,8 +26,8 @@ var ENUM;
|
|||
;
|
||||
var ENUM1;
|
||||
(function (ENUM1) {
|
||||
ENUM1[ENUM1["1"] = 0] = "1";
|
||||
ENUM1[ENUM1["2"] = 1] = "2";
|
||||
ENUM1[ENUM1["A"] = 0] = "A";
|
||||
ENUM1[ENUM1["B"] = 1] = "B";
|
||||
ENUM1[ENUM1[""] = 2] = "";
|
||||
})(ENUM1 || (ENUM1 = {}));
|
||||
;
|
||||
|
|
|
@ -4,8 +4,10 @@
|
|||
enum ENUM { };
|
||||
>ENUM : ENUM
|
||||
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
>ENUM1 : ENUM1
|
||||
>A : ENUM1
|
||||
>B : ENUM1
|
||||
|
||||
// enum type var
|
||||
var ResultIsNumber1 = +ENUM;
|
||||
|
@ -32,7 +34,7 @@ var ResultIsNumber4 = +(ENUM[0] + ENUM1[1]);
|
|||
>ENUM[0] + ENUM1[1] : string
|
||||
>ENUM[0] : string
|
||||
>ENUM : typeof ENUM
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// miss assignment operators
|
||||
|
@ -46,7 +48,7 @@ var ResultIsNumber4 = +(ENUM[0] + ENUM1[1]);
|
|||
|
||||
+ENUM1[1];
|
||||
>+ENUM1[1] : number
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
+ENUM, ENUM1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// typeof operator on enum type
|
||||
|
||||
enum ENUM { };
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// enum type var
|
||||
var ResultIsString1 = typeof ENUM;
|
||||
|
@ -35,8 +35,8 @@ var ENUM;
|
|||
;
|
||||
var ENUM1;
|
||||
(function (ENUM1) {
|
||||
ENUM1[ENUM1["1"] = 0] = "1";
|
||||
ENUM1[ENUM1["2"] = 1] = "2";
|
||||
ENUM1[ENUM1["A"] = 0] = "A";
|
||||
ENUM1[ENUM1["B"] = 1] = "B";
|
||||
ENUM1[ENUM1[""] = 2] = "";
|
||||
})(ENUM1 || (ENUM1 = {}));
|
||||
;
|
||||
|
|
|
@ -4,8 +4,10 @@
|
|||
enum ENUM { };
|
||||
>ENUM : ENUM
|
||||
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
>ENUM1 : ENUM1
|
||||
>A : ENUM1
|
||||
>B : ENUM1
|
||||
|
||||
// enum type var
|
||||
var ResultIsString1 = typeof ENUM;
|
||||
|
@ -32,7 +34,7 @@ var ResultIsString4 = typeof (ENUM[0] + ENUM1[1]);
|
|||
>ENUM[0] + ENUM1[1] : string
|
||||
>ENUM[0] : string
|
||||
>ENUM : typeof ENUM
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// multiple typeof operators
|
||||
|
@ -51,7 +53,7 @@ var ResultIsString6 = typeof typeof typeof (ENUM[0] + ENUM1[1]);
|
|||
>ENUM[0] + ENUM1[1] : string
|
||||
>ENUM[0] : string
|
||||
>ENUM : typeof ENUM
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// miss assignment operators
|
||||
|
@ -65,7 +67,7 @@ typeof ENUM1;
|
|||
|
||||
typeof ENUM1[1];
|
||||
>typeof ENUM1[1] : string
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
typeof ENUM, ENUM1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
// void operator on enum type
|
||||
|
||||
enum ENUM { };
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
|
||||
// enum type var
|
||||
var ResultIsAny1 = void ENUM;
|
||||
|
@ -30,8 +30,8 @@ var ENUM;
|
|||
;
|
||||
var ENUM1;
|
||||
(function (ENUM1) {
|
||||
ENUM1[ENUM1["1"] = 0] = "1";
|
||||
ENUM1[ENUM1["2"] = 1] = "2";
|
||||
ENUM1[ENUM1["A"] = 0] = "A";
|
||||
ENUM1[ENUM1["B"] = 1] = "B";
|
||||
ENUM1[ENUM1[""] = 2] = "";
|
||||
})(ENUM1 || (ENUM1 = {}));
|
||||
;
|
||||
|
|
|
@ -4,8 +4,10 @@
|
|||
enum ENUM { };
|
||||
>ENUM : ENUM
|
||||
|
||||
enum ENUM1 { 1, 2, "" };
|
||||
enum ENUM1 { A, B, "" };
|
||||
>ENUM1 : ENUM1
|
||||
>A : ENUM1
|
||||
>B : ENUM1
|
||||
|
||||
// enum type var
|
||||
var ResultIsAny1 = void ENUM;
|
||||
|
@ -32,7 +34,7 @@ var ResultIsAny4 = void (ENUM[0] + ENUM1[1]);
|
|||
>ENUM[0] + ENUM1[1] : string
|
||||
>ENUM[0] : string
|
||||
>ENUM : typeof ENUM
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// multiple void operators
|
||||
|
@ -51,7 +53,7 @@ var ResultIsAny6 = void void void (ENUM[0] + ENUM1[1]);
|
|||
>ENUM[0] + ENUM1[1] : string
|
||||
>ENUM[0] : string
|
||||
>ENUM : typeof ENUM
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
// miss assignment operators
|
||||
|
@ -65,7 +67,7 @@ void ENUM1;
|
|||
|
||||
void ENUM1[1];
|
||||
>void ENUM1[1] : undefined
|
||||
>ENUM1[1] : ENUM1
|
||||
>ENUM1[1] : string
|
||||
>ENUM1 : typeof ENUM1
|
||||
|
||||
void ENUM, ENUM1;
|
||||
|
|
Loading…
Reference in a new issue