This commit is contained in:
gingerBill
2024-05-07 11:42:48 +01:00
parent 05a1704898
commit 0da6a3e214
2 changed files with 11 additions and 2 deletions
+7 -2
View File
@@ -797,11 +797,11 @@ gb_internal void check_enum_type(CheckerContext *ctx, Type *enum_type, Type *nam
enum_type->Enum.scope = ctx->scope;
Type *base_type = t_int;
if (et->base_type != nullptr) {
if (unparen_expr(et->base_type) != nullptr) {
base_type = check_type(ctx, et->base_type);
}
if (base_type == nullptr || !is_type_integer(base_type)) {
if (base_type == nullptr || base_type == t_invalid || !is_type_integer(base_type)) {
error(node, "Base type for enumeration must be an integer");
return;
}
@@ -3265,6 +3265,11 @@ gb_internal bool check_type_internal(CheckerContext *ctx, Ast *e, Type **type, T
case_end;
case_ast_node(pe, ParenExpr, e);
if (pe->expr == nullptr) {
error(e, "Expected an expression or type within the parentheses");
*type = t_invalid;
return true;
}
*type = check_type_expr(ctx, pe->expr, named_type);
set_base_type(named_type, *type);
return true;