From f61c4715c12647c9b6ec2ec745aeb835d3ad8df8 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sat, 17 Nov 2018 10:08:06 +0000 Subject: Allow `opaque` to be polymorphic --- src/types.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/types.cpp') diff --git a/src/types.cpp b/src/types.cpp index e95fa7c3b..c91bb631c 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -1127,7 +1127,8 @@ bool is_type_polymorphic(Type *t) { case Type_Named: return is_type_polymorphic(t->Named.base); - + case Type_Opaque: + return is_type_polymorphic(t->Opaque.elem); case Type_Pointer: return is_type_polymorphic(t->Pointer.elem); case Type_Array: @@ -2571,6 +2572,11 @@ 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_Array: str = gb_string_appendc(str, gb_bprintf("[%d]", cast(int)type->Array.count)); str = write_type_to_string(str, type->Array.elem); -- cgit v1.2.3