aboutsummaryrefslogtreecommitdiff
path: root/src/types.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-02-23 15:45:06 +0000
committergingerBill <bill@gingerbill.org>2021-02-23 15:45:06 +0000
commit41b854f192a5a7d190a4b49496638254ed0dbb64 (patch)
tree59b7268722a78eaa1e67b18d7527df9912b147ca /src/types.cpp
parent28f279329da6f31b895145b9a021bacc7d9eea45 (diff)
Remove `#opaque` types
Diffstat (limited to 'src/types.cpp')
-rw-r--r--src/types.cpp54
1 files changed, 0 insertions, 54 deletions
diff --git a/src/types.cpp b/src/types.cpp
index aec6de8bd..793829d0e 100644
--- a/src/types.cpp
+++ b/src/types.cpp
@@ -227,7 +227,6 @@ struct TypeProc {
Entity *entity; \
}) \
TYPE_KIND(Pointer, struct { Type *elem; }) \
- TYPE_KIND(Opaque, struct { Type *elem; }) \
TYPE_KIND(Array, struct { \
Type *elem; \
i64 count; \
@@ -358,7 +357,6 @@ enum Typeid_Kind : u8 {
Typeid_Enum,
Typeid_Map,
Typeid_Bit_Set,
- Typeid_Opaque,
Typeid_Simd_Vector,
Typeid_Relative_Pointer,
Typeid_Relative_Slice,
@@ -633,7 +631,6 @@ gb_global Type *t_type_info_union = nullptr;
gb_global Type *t_type_info_enum = nullptr;
gb_global Type *t_type_info_map = nullptr;
gb_global Type *t_type_info_bit_set = nullptr;
-gb_global Type *t_type_info_opaque = nullptr;
gb_global Type *t_type_info_simd_vector = nullptr;
gb_global Type *t_type_info_relative_pointer = nullptr;
gb_global Type *t_type_info_relative_slice = nullptr;
@@ -660,7 +657,6 @@ gb_global Type *t_type_info_union_ptr = nullptr;
gb_global Type *t_type_info_enum_ptr = nullptr;
gb_global Type *t_type_info_map_ptr = nullptr;
gb_global Type *t_type_info_bit_set_ptr = nullptr;
-gb_global Type *t_type_info_opaque_ptr = nullptr;
gb_global Type *t_type_info_simd_vector_ptr = nullptr;
gb_global Type *t_type_info_relative_pointer_ptr = nullptr;
gb_global Type *t_type_info_relative_slice_ptr = nullptr;
@@ -729,19 +725,6 @@ Type *base_type(Type *t) {
return t;
}
-Type *strip_opaque_type(Type *t) {
- for (;;) {
- if (t == nullptr) {
- break;
- }
- if (t->kind != Type_Opaque) {
- break;
- }
- t = t->Opaque.elem;
- }
- return t;
-}
-
Type *base_enum_type(Type *t) {
Type *bt = base_type(t);
if (bt != nullptr &&
@@ -767,9 +750,6 @@ Type *core_type(Type *t) {
case Type_Enum:
t = t->Enum.base_type;
continue;
- case Type_Opaque:
- t = t->Opaque.elem;
- continue;
}
break;
}
@@ -804,12 +784,6 @@ Type *alloc_type_generic(Scope *scope, i64 id, String name, Type *specialized) {
return t;
}
-Type *alloc_type_opaque(Type *elem) {
- Type *t = alloc_type(Type_Opaque);
- t->Opaque.elem = elem;
- return t;
-}
-
Type *alloc_type_pointer(Type *elem) {
Type *t = alloc_type(Type_Pointer);
t->Pointer.elem = elem;
@@ -1177,10 +1151,6 @@ bool is_type_tuple(Type *t) {
t = base_type(t);
return t->kind == Type_Tuple;
}
-bool is_type_opaque(Type *t) {
- t = base_type(t);
- return t->kind == Type_Opaque;
-}
bool is_type_uintptr(Type *t) {
if (t->kind == Type_Basic) {
return (t->Basic.kind == Basic_uintptr);
@@ -1710,8 +1680,6 @@ bool is_type_polymorphic(Type *t, bool or_specialized=false) {
return ok;
}
- case Type_Opaque:
- return is_type_polymorphic(t->Opaque.elem, or_specialized);
case Type_Pointer:
return is_type_polymorphic(t->Pointer.elem, or_specialized);
@@ -1841,8 +1809,6 @@ bool type_has_nil(Type *t) {
}
}
return false;
- case Type_Opaque:
- return true;
case Type_RelativePointer:
case Type_RelativeSlice:
@@ -1895,9 +1861,6 @@ bool is_type_comparable(Type *t) {
case Type_BitSet:
return true;
- case Type_Opaque:
- return is_type_comparable(t->Opaque.elem);
-
case Type_Struct:
if (type_size_of(t) == 0) {
return false;
@@ -2000,12 +1963,6 @@ bool are_types_identical(Type *x, Type *y) {
}
break;
- case Type_Opaque:
- if (y->kind == Type_Opaque) {
- return are_types_identical(x->Opaque.elem, y->Opaque.elem);
- }
- break;
-
case Type_Basic:
if (y->kind == Type_Basic) {
return x->Basic.kind == y->Basic.kind;
@@ -2832,9 +2789,6 @@ i64 type_align_of_internal(Type *t, TypePath *path) {
return align;
}
- case Type_Opaque:
- return type_align_of_internal(t->Opaque.elem, path);
-
case Type_DynamicArray:
// data, count, capacity, allocator
return build_context.word_size;
@@ -3049,9 +3003,6 @@ i64 type_size_of_internal(Type *t, TypePath *path) {
case Type_Pointer:
return build_context.word_size;
- case Type_Opaque:
- return type_size_of_internal(t->Opaque.elem, path);
-
case Type_Array: {
i64 count, align, size, alignment;
count = t->Array.count;
@@ -3425,11 +3376,6 @@ gbString write_type_to_string(gbString str, Type *type) {
str = write_type_to_string(str, type->Pointer.elem);
break;
- case Type_Opaque:
- str = gb_string_appendc(str, "opaque ");
- str = write_type_to_string(str, type->Opaque.elem);
- break;
-
case Type_EnumeratedArray:
str = gb_string_append_rune(str, '[');
str = write_type_to_string(str, type->EnumeratedArray.index);