enum tag values are expressions so no parentheses needed
This commit is contained in:
parent
5c988cc722
commit
5b156031e9
@ -2552,7 +2552,7 @@ static AstNode *ast_parse_container_decl(ParseContext *pc, size_t *token_index,
|
||||
Token *eq_token = &pc->tokens->at(*token_index);
|
||||
if (eq_token->id == TokenIdEq) {
|
||||
*token_index += 1;
|
||||
field_node->data.struct_field.value = ast_parse_prefix_op_expr(pc, token_index, true);
|
||||
field_node->data.struct_field.value = ast_parse_expression(pc, token_index, true);
|
||||
}
|
||||
|
||||
Token *next_token = &pc->tokens->at(*token_index);
|
||||
|
@ -377,3 +377,13 @@ test "switch on enum with one member is comptime known" {
|
||||
}
|
||||
@compileError("analysis should not reach here");
|
||||
}
|
||||
|
||||
const EnumWithTagValues = enum(u4) {
|
||||
A = 1 << 0,
|
||||
B = 1 << 1,
|
||||
C = 1 << 2,
|
||||
D = 1 << 3,
|
||||
};
|
||||
test "enum with tag values don't require parens" {
|
||||
assert(u4(EnumWithTagValues.C) == 0b0100);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user