Correct tuple name checking for doc writing

This commit is contained in:
gingerBill
2022-01-19 15:11:42 +00:00
parent 28a816ef25
commit 5ff82fc113
3 changed files with 9 additions and 4 deletions

View File

@@ -694,7 +694,7 @@ gbString type_to_string (Type *type);
i64 type_size_of_internal(Type *t, TypePath *path);
void init_map_internal_types(Type *type);
Type * bit_set_to_int(Type *t);
bool are_types_identical(Type *x, Type *y);
bool are_types_identical(Type *x, Type *y, bool check_tuple_names/*=false*/);
bool is_type_pointer(Type *t);
bool is_type_proc(Type *t);
@@ -2338,7 +2338,7 @@ Type *strip_type_aliasing(Type *x) {
return x;
}
bool are_types_identical(Type *x, Type *y) {
bool are_types_identical(Type *x, Type *y, bool check_tuple_names) {
if (x == y) {
return true;
}
@@ -2487,6 +2487,11 @@ bool are_types_identical(Type *x, Type *y) {
if (xe->kind != ye->kind || !are_types_identical(xe->type, ye->type)) {
return false;
}
if (check_tuple_names) {
if (xe->token.string != ye->token.string) {
return false;
}
}
if (xe->kind == Entity_Constant && !compare_exact_values(Token_CmpEq, xe->Constant.value, ye->Constant.value)) {
// NOTE(bill): This is needed for polymorphic procedures
return false;