TypeScript/tests/baselines/reference/enumErrors.symbols
Josh Goldberg 49be51dcf3 Added more helpful syntax error for enum member commas
Switches the error message emitted by the parser to the more specific _"An enum member name must be followed by a ',' or '='."_ when the expected comma doesn't follow the member.
2019-09-09 22:11:56 -04:00

127 lines
3.8 KiB
Plaintext

=== tests/cases/conformance/enums/enumErrors.ts ===
// Enum named with PredefinedTypes
enum any { }
>any : Symbol(any, Decl(enumErrors.ts, 0, 0))
enum number { }
>number : Symbol(number, Decl(enumErrors.ts, 1, 12))
enum string { }
>string : Symbol(string, Decl(enumErrors.ts, 2, 15))
enum boolean { }
>boolean : Symbol(boolean, Decl(enumErrors.ts, 3, 15))
// Enum with computed member initializer of type Number
enum E5 {
>E5 : Symbol(E5, Decl(enumErrors.ts, 4, 16))
C = new Number(30)
>C : Symbol(E5.C, Decl(enumErrors.ts, 7, 9))
>Number : Symbol(Number, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
}
enum E9 {
>E9 : Symbol(E9, Decl(enumErrors.ts, 9, 1))
A,
>A : Symbol(E9.A, Decl(enumErrors.ts, 11, 9))
B = A
>B : Symbol(E9.B, Decl(enumErrors.ts, 12, 6))
>A : Symbol(E9.A, Decl(enumErrors.ts, 11, 9))
}
//Enum with computed member intializer of different enum type
// Bug 707850: This should be allowed
enum E10 {
>E10 : Symbol(E10, Decl(enumErrors.ts, 14, 1))
A = E9.A,
>A : Symbol(E10.A, Decl(enumErrors.ts, 18, 10))
>E9.A : Symbol(E9.A, Decl(enumErrors.ts, 11, 9))
>E9 : Symbol(E9, Decl(enumErrors.ts, 9, 1))
>A : Symbol(E9.A, Decl(enumErrors.ts, 11, 9))
B = E9.B
>B : Symbol(E10.B, Decl(enumErrors.ts, 19, 13))
>E9.B : Symbol(E9.B, Decl(enumErrors.ts, 12, 6))
>E9 : Symbol(E9, Decl(enumErrors.ts, 9, 1))
>B : Symbol(E9.B, Decl(enumErrors.ts, 12, 6))
}
// Enum with computed member intializer of other types
enum E11 {
>E11 : Symbol(E11, Decl(enumErrors.ts, 21, 1))
A = true,
>A : Symbol(E11.A, Decl(enumErrors.ts, 24, 10))
B = new Date(),
>B : Symbol(E11.B, Decl(enumErrors.ts, 25, 13))
>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --))
C = window,
>C : Symbol(E11.C, Decl(enumErrors.ts, 26, 19))
>window : Symbol(window, Decl(lib.dom.d.ts, --, --))
D = {}
>D : Symbol(E11.D, Decl(enumErrors.ts, 27, 15))
}
// Enum with string valued member and computed member initializers
enum E12 {
>E12 : Symbol(E12, Decl(enumErrors.ts, 29, 1))
A = '',
>A : Symbol(E12.A, Decl(enumErrors.ts, 32, 10))
B = new Date(),
>B : Symbol(E12.B, Decl(enumErrors.ts, 33, 11))
>Date : Symbol(Date, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --), Decl(lib.scripthost.d.ts, --, --))
C = window,
>C : Symbol(E12.C, Decl(enumErrors.ts, 34, 19))
>window : Symbol(window, Decl(lib.dom.d.ts, --, --))
D = {},
>D : Symbol(E12.D, Decl(enumErrors.ts, 35, 15))
E = 1 + 1,
>E : Symbol(E12.E, Decl(enumErrors.ts, 36, 11))
}
// Enum with incorrect syntax
enum E13 {
>E13 : Symbol(E13, Decl(enumErrors.ts, 38, 1))
postComma,
>postComma : Symbol(E13.postComma, Decl(enumErrors.ts, 41, 10))
postValueComma = 1,
>postValueComma : Symbol(E13.postValueComma, Decl(enumErrors.ts, 42, 14))
postSemicolon;
>postSemicolon : Symbol(E13.postSemicolon, Decl(enumErrors.ts, 43, 23))
postColonValueComma: 2,
>postColonValueComma : Symbol(E13.postColonValueComma, Decl(enumErrors.ts, 45, 18))
>2 : Symbol(E13[2], Decl(enumErrors.ts, 46, 24))
postColonValueSemicolon: 3;
>postColonValueSemicolon : Symbol(E13.postColonValueSemicolon, Decl(enumErrors.ts, 46, 27))
>3 : Symbol(E13[3], Decl(enumErrors.ts, 47, 28))
};
enum E14 { a, b: any "hello" += 1, c, d}
>E14 : Symbol(E14, Decl(enumErrors.ts, 48, 2))
>a : Symbol(E14.a, Decl(enumErrors.ts, 50, 10))
>b : Symbol(E14.b, Decl(enumErrors.ts, 50, 13))
>any : Symbol(E14.any, Decl(enumErrors.ts, 50, 16))
>"hello" : Symbol(E14["hello"], Decl(enumErrors.ts, 50, 20))
>1 : Symbol(E14[1], Decl(enumErrors.ts, 50, 31))
>c : Symbol(E14.c, Decl(enumErrors.ts, 50, 34))
>d : Symbol(E14.d, Decl(enumErrors.ts, 50, 37))