diff --git a/src/check_type.cpp b/src/check_type.cpp index 9414b794e..b56acc276 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -1009,6 +1009,7 @@ gb_internal void check_enum_type(CheckerContext *ctx, Type *enum_type, Type *nam e->Constant.flags |= entity_flags; e->Constant.docs = docs; e->Constant.comment = comment; + e->Constant.init_expr = init; auto interned = entity_interned_name(e); diff --git a/src/docs_writer.cpp b/src/docs_writer.cpp index 67d350f24..5fbe5a58c 100644 --- a/src/docs_writer.cpp +++ b/src/docs_writer.cpp @@ -890,6 +890,9 @@ gb_internal OdinDocEntityIndex odin_doc_add_entity(OdinDocWriter *w, Entity *e) } break; case Entity_Constant: + if (init_expr == nullptr) { + init_expr = e->Constant.init_expr; + } field_group_index = e->Constant.field_group_index; break; case Entity_Procedure: diff --git a/src/entity.cpp b/src/entity.cpp index d3170c823..196380831 100644 --- a/src/entity.cpp +++ b/src/entity.cpp @@ -205,6 +205,7 @@ struct Entity { i32 field_group_index; CommentGroup *docs; CommentGroup *comment; + Ast *init_expr; // only used for enum values } Constant; struct { Ast *type_expr; // only used for some variables within procedure bodies