From 41b854f192a5a7d190a4b49496638254ed0dbb64 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 23 Feb 2021 15:45:06 +0000 Subject: Remove `#opaque` types --- src/types.cpp | 54 ------------------------------------------------------ 1 file changed, 54 deletions(-) (limited to 'src/types.cpp') 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); -- cgit v1.2.3