Minimize add_type_info_type usage

This commit is contained in:
gingerBill
2023-01-03 17:26:05 +00:00
parent 2720e98127
commit 855ebceadc
3 changed files with 10 additions and 8 deletions
+1 -1
View File
@@ -3573,7 +3573,7 @@ gb_internal bool check_builtin_procedure(CheckerContext *c, Operand *operand, As
Entity *base_type_entity = alloc_entity_type_name(scope, token, elem, EntityState_Resolved); Entity *base_type_entity = alloc_entity_type_name(scope, token, elem, EntityState_Resolved);
add_entity(c, scope, nullptr, base_type_entity); add_entity(c, scope, nullptr, base_type_entity);
add_type_info_type(c, soa_struct); // add_type_info_type(c, soa_struct);
operand->type = soa_struct; operand->type = soa_struct;
break; break;
+4 -4
View File
@@ -8779,8 +8779,8 @@ gb_internal ExprKind check_type_assertion(CheckerContext *c, Operand *o, Ast *no
return kind; return kind;
} }
add_type_info_type(c, o->type); // add_type_info_type(c, o->type);
add_type_info_type(c, bsrc->Union.variants[0]); // add_type_info_type(c, bsrc->Union.variants[0]);
o->type = bsrc->Union.variants[0]; o->type = bsrc->Union.variants[0];
o->mode = Addressing_OptionalOk; o->mode = Addressing_OptionalOk;
@@ -8812,8 +8812,8 @@ gb_internal ExprKind check_type_assertion(CheckerContext *c, Operand *o, Ast *no
return kind; return kind;
} }
add_type_info_type(c, o->type); // add_type_info_type(c, o->type);
add_type_info_type(c, t); // add_type_info_type(c, t);
o->type = t; o->type = t;
o->mode = Addressing_OptionalOk; o->mode = Addressing_OptionalOk;
+5 -3
View File
@@ -1132,7 +1132,7 @@ gb_internal void check_type_switch_stmt(CheckerContext *ctx, Ast *node, u32 mod_
check_expr(ctx, &x, rhs); check_expr(ctx, &x, rhs);
check_assignment(ctx, &x, nullptr, str_lit("type switch expression")); check_assignment(ctx, &x, nullptr, str_lit("type switch expression"));
add_type_info_type(ctx, x.type); // add_type_info_type(ctx, x.type);
TypeSwitchKind switch_kind = check_valid_type_switch_type(x.type); TypeSwitchKind switch_kind = check_valid_type_switch_type(x.type);
if (switch_kind == TypeSwitch_Invalid) { if (switch_kind == TypeSwitch_Invalid) {
@@ -1223,7 +1223,7 @@ gb_internal void check_type_switch_stmt(CheckerContext *ctx, Ast *node, u32 mod_
continue; continue;
} }
case_type = y.type; case_type = y.type;
add_type_info_type(ctx, y.type); // add_type_info_type(ctx, y.type);
} else if (switch_kind == TypeSwitch_Any) { } else if (switch_kind == TypeSwitch_Any) {
case_type = y.type; case_type = y.type;
add_type_info_type(ctx, y.type); add_type_info_type(ctx, y.type);
@@ -1259,7 +1259,9 @@ gb_internal void check_type_switch_stmt(CheckerContext *ctx, Ast *node, u32 mod_
if (case_type == nullptr) { if (case_type == nullptr) {
case_type = x.type; case_type = x.type;
} }
add_type_info_type(ctx, case_type); if (switch_kind == TypeSwitch_Any) {
add_type_info_type(ctx, case_type);
}
check_open_scope(ctx, stmt); check_open_scope(ctx, stmt);
{ {