aboutsummaryrefslogtreecommitdiff
path: root/src/types.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-02-22 19:24:16 +0000
committergingerBill <bill@gingerbill.org>2024-02-22 19:24:16 +0000
commit3060225f460cb5d1ad124fcf449b27b3e2e981f8 (patch)
tree028625f50d0c51f4cacf4d6a7bc7fd753666410a /src/types.cpp
parentc14b9d461a5c58d4b80957682f00205714063435 (diff)
Simplify usage code
Diffstat (limited to 'src/types.cpp')
-rw-r--r--src/types.cpp130
1 files changed, 64 insertions, 66 deletions
diff --git a/src/types.cpp b/src/types.cpp
index 3945c7111..eac834f25 100644
--- a/src/types.cpp
+++ b/src/types.cpp
@@ -4262,72 +4262,70 @@ gb_internal Type *alloc_type_proc_from_types(Type **param_types, unsigned param_
return t;
}
-
-gb_internal Type *type_from_selection(Type *type, Selection const &sel) {
- for (i32 index : sel.index) {
- Type *bt = base_type(type_deref(type));
- switch (bt->kind) {
- case Type_Struct:
- type = bt->Struct.fields[index]->type;
- break;
- case Type_Tuple:
- type = bt->Tuple.variables[index]->type;
- break;
- case Type_BitField:
- type = bt->BitField.fields[index]->type;
- break;
- case Type_Array:
- type = bt->Array.elem;
- break;
- case Type_EnumeratedArray:
- type = bt->Array.elem;
- break;
- case Type_Slice:
- switch (index) {
- case 0: type = alloc_type_multi_pointer(bt->Slice.elem); break;
- case 1: type = t_int; break;
- }
- break;
- case Type_DynamicArray:
- switch (index) {
- case 0: type = alloc_type_multi_pointer(bt->DynamicArray.elem); break;
- case 1: type = t_int; break;
- case 2: type = t_int; break;
- case 3: type = t_allocator; break;
- }
- break;
- case Type_Map:
- switch (index) {
- case 0: type = t_uintptr; break;
- case 1: type = t_int; break;
- case 2: type = t_allocator; break;
- }
- break;
- case Type_Basic:
- if (is_type_complex_or_quaternion(bt)) {
- type = base_complex_elem_type(bt);
- } else {
- switch (type->Basic.kind) {
- case Basic_any:
- switch (index) {
- case 0: type = t_rawptr; break;
- case 1: type = t_typeid; break;
- }
- break;
- case Basic_string:
- switch (index) {
- case 0: type = t_u8_multi_ptr; break;
- case 1: type = t_int; break;
- }
- break;
- }
- }
- break;
- }
- }
- return type;
-}
-
+// gb_internal Type *type_from_selection(Type *type, Selection const &sel) {
+// for (i32 index : sel.index) {
+// Type *bt = base_type(type_deref(type));
+// switch (bt->kind) {
+// case Type_Struct:
+// type = bt->Struct.fields[index]->type;
+// break;
+// case Type_Tuple:
+// type = bt->Tuple.variables[index]->type;
+// break;
+// case Type_BitField:
+// type = bt->BitField.fields[index]->type;
+// break;
+// case Type_Array:
+// type = bt->Array.elem;
+// break;
+// case Type_EnumeratedArray:
+// type = bt->Array.elem;
+// break;
+// case Type_Slice:
+// switch (index) {
+// case 0: type = alloc_type_multi_pointer(bt->Slice.elem); break;
+// case 1: type = t_int; break;
+// }
+// break;
+// case Type_DynamicArray:
+// switch (index) {
+// case 0: type = alloc_type_multi_pointer(bt->DynamicArray.elem); break;
+// case 1: type = t_int; break;
+// case 2: type = t_int; break;
+// case 3: type = t_allocator; break;
+// }
+// break;
+// case Type_Map:
+// switch (index) {
+// case 0: type = t_uintptr; break;
+// case 1: type = t_int; break;
+// case 2: type = t_allocator; break;
+// }
+// break;
+// case Type_Basic:
+// if (is_type_complex_or_quaternion(bt)) {
+// type = base_complex_elem_type(bt);
+// } else {
+// switch (type->Basic.kind) {
+// case Basic_any:
+// switch (index) {
+// case 0: type = t_rawptr; break;
+// case 1: type = t_typeid; break;
+// }
+// break;
+// case Basic_string:
+// switch (index) {
+// case 0: type = t_u8_multi_ptr; break;
+// case 1: type = t_int; break;
+// }
+// break;
+// }
+// }
+// break;
+// }
+// }
+// return type;
+// }
gb_internal gbString write_type_to_string(gbString str, Type *type, bool shorthand=false) {
if (type == nullptr) {