mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 05:00:16 +03:00

* [dmd/parse] Refactor enum declaration Tip: set ignore whitespace for diff. Remove prevTOK. Only use token loop for attributes. "expected identifier after type" introduced in previous pull replaced with "no identifier for declarator" for consistency. Non-@ token "not a valid attribute" error replaced with "expected identifier". "type only allowed if anonymous enum and no enum type" error was never hit, this triggered "not a valid attribute" error instead. No need to check `terror` as type will be null anyway. "assignment must be preceded by an identifier" has been superceded by other errors. Make "enum declaration is invalid" error more informative. * Add test for lone attribute * Detect typed member with named enum for better error * Add test for type error * Avoid infinite loop * Move 2 new tests to separate file; test `T @a b`
18 lines
464 B
D
18 lines
464 B
D
/* REQUIRED_ARGS: -preview=bitfields
|
|
* TEST_OUTPUT:
|
|
---
|
|
fail_compilation/biterrors3.d(103): Error: storage class not allowed for bit-field declaration
|
|
fail_compilation/biterrors3.d(106): Error: expected `,` or `=` after identifier, not `:`
|
|
fail_compilation/biterrors3.d(106): Error: found `:` when expecting `,`
|
|
fail_compilation/biterrors3.d(106): Error: found `3` when expecting `identifier`
|
|
---
|
|
*/
|
|
|
|
#line 100
|
|
|
|
struct S
|
|
{
|
|
static int : 3;
|
|
}
|
|
|
|
enum E { d : 3 }
|