mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
Minimize add_type_info_type usage
This commit is contained in:
@@ -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
@@ -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
@@ -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);
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user