Type info uses slices now! Fixed a case of slice needing to have a completed type
This commit is contained in:
@@ -980,16 +980,17 @@ compile_to_c_code() {
|
||||
} break;
|
||||
case TYPE_LAMBDA: {
|
||||
gen(".lambda_return = %d, ", t->func.ret->type_id);
|
||||
gen(".lambda_argument_count = %d, ", t->func.args.len);
|
||||
gen(".lambda_arguments = (Type_Info[%d]){", t->func.args.len);
|
||||
gen(".lambda_arguments.len = %d, ", t->func.args.len);
|
||||
gen(".lambda_arguments.data = (Type_Info[%d]){", t->func.args.len);
|
||||
For_Named(t->func.args, arg) {
|
||||
gen("{.type = %d}, ", arg->type_id);
|
||||
}
|
||||
gen("}");
|
||||
} break;
|
||||
case TYPE_UNION:
|
||||
case TYPE_STRUCT: {
|
||||
gen(".struct_member_count = %d, ", t->agg.members.len);
|
||||
gen(".struct_members = (Type_Info_Struct_Member[]){");
|
||||
gen(".struct_members.len = %d, ", t->agg.members.len);
|
||||
gen(".struct_members.data = (Type_Info_Struct_Member[]){");
|
||||
For_Named(t->agg.members, m) {
|
||||
gen("{.name = (%Q){(uint8_t *)\"%Q\", %d}, .type = %d, .offset = %d}, ", prefixed_string_type, m.name, m.name.len, m.type->type_id, m.offset);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user