From 5a28f6ff2dd154fd08dc7bdb2d4ded98ffae49d5 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Mon, 15 Nov 2021 13:45:44 -0600 Subject: [PATCH] bugfix with new enum abilities --- src/symres.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/symres.c b/src/symres.c index b8908ae4..8882dcdb 100644 --- a/src/symres.c +++ b/src/symres.c @@ -1085,6 +1085,11 @@ static SymresStatus symres_enum(AstEnumType* enum_node) { if ((*value)->value != NULL) { SYMRES(expression, &(*value)->value); + if ((*value)->value->kind == Ast_Kind_Enum_Value) { + (*value)->value = ((AstEnumValue *) (*value)->value)->value; + (*value)->value->type = enum_node->etcache; + } + if ((*value)->value->kind == Ast_Kind_NumLit) { AstNumLit *n_value = (AstNumLit *) (*value)->value; resolve_expression_type((AstTyped *) n_value); @@ -1092,11 +1097,7 @@ static SymresStatus symres_enum(AstEnumType* enum_node) { if (type_is_small_integer(n_value->type)) { next_assign_value = n_value->value.i; } else if (type_is_integer(n_value->type)) { - next_assign_value = n_value->value.l; - } else { - onyx_report_error((*value)->token->pos, "expected numeric integer literal for enum initialization, got '%s'", type_get_name(n_value->type)); - return Symres_Error; - } + n_value->type = enum_node->etcache; -- 2.25.1