From 0fa9a52090eb5d9ce88220c0134a8d2af6eb8d94 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sun, 23 Nov 2025 13:28:48 -0500 Subject: Accessing enum fields now gives an optional value instead of a boolean --- src/types.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/types.c') diff --git a/src/types.c b/src/types.c index 73c02807..51555560 100644 --- a/src/types.c +++ b/src/types.c @@ -633,7 +633,9 @@ type_t *get_field_type(type_t *t, const char *field_name) { case EnumType: { DeclareMatch(e, t, EnumType); for (tag_t *tag = e->tags; tag; tag = tag->next) { - if (streq(field_name, tag->name)) return Type(BoolType); + if (!streq(field_name, tag->name)) continue; + if (tag->type != NULL && Match(tag->type, StructType)->fields) return Type(OptionalType, tag->type); + else return Type(OptionalType, EMPTY_TYPE); } return NULL; } -- cgit v1.2.3