diff options
| author | gingerBill <bill@gingerbill.org> | 2018-11-17 10:08:06 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2018-11-17 10:08:06 +0000 |
| commit | f61c4715c12647c9b6ec2ec745aeb835d3ad8df8 (patch) | |
| tree | 9bd26ac750faf0668b61fdc962092b72a27b60bb /src/types.cpp | |
| parent | 3061bc84789e82da7a72e118b17a8925cb27ef6a (diff) | |
Allow `opaque` to be polymorphic
Diffstat (limited to 'src/types.cpp')
| -rw-r--r-- | src/types.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
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); |