mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Fix polymorphic record parameter determination bug caused by polymorphic constants not being handled correctly #447
This commit is contained in:
@@ -6344,8 +6344,6 @@ CallArgumentError check_polymorphic_record_type(CheckerContext *c, Operand *oper
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
String generated_name = make_string_c(expr_to_string(call));
|
String generated_name = make_string_c(expr_to_string(call));
|
||||||
|
|
||||||
CheckerContext ctx = *c;
|
CheckerContext ctx = *c;
|
||||||
|
|||||||
@@ -461,6 +461,10 @@ void check_struct_type(CheckerContext *ctx, Type *struct_type, Ast *node, Array<
|
|||||||
e = alloc_entity_type_name(scope, token, operand.type);
|
e = alloc_entity_type_name(scope, token, operand.type);
|
||||||
e->TypeName.is_type_alias = true;
|
e->TypeName.is_type_alias = true;
|
||||||
} else {
|
} else {
|
||||||
|
if (is_type_polymorphic(base_type(operand.type))) {
|
||||||
|
is_polymorphic = true;
|
||||||
|
can_check_fields = false;
|
||||||
|
}
|
||||||
e = alloc_entity_constant(scope, token, operand.type, operand.value);
|
e = alloc_entity_constant(scope, token, operand.type, operand.value);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user