aboutsummaryrefslogtreecommitdiff
path: root/src/check_expr.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2018-11-17 10:08:06 +0000
committergingerBill <bill@gingerbill.org>2018-11-17 10:08:06 +0000
commitf61c4715c12647c9b6ec2ec745aeb835d3ad8df8 (patch)
tree9bd26ac750faf0668b61fdc962092b72a27b60bb /src/check_expr.cpp
parent3061bc84789e82da7a72e118b17a8925cb27ef6a (diff)
Allow `opaque` to be polymorphic
Diffstat (limited to 'src/check_expr.cpp')
-rw-r--r--src/check_expr.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index 61bf9eeca..dc2e44533 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -803,6 +803,11 @@ bool is_polymorphic_type_assignable(CheckerContext *c, Type *poly, Type *source,
}
return true;
}
+ case Type_Opaque:
+ if (source->kind == Type_Opaque) {
+ return is_polymorphic_type_assignable(c, poly->Opaque.elem, source->Opaque.elem, true, modify_type);
+ }
+ return false;
case Type_Pointer:
if (source->kind == Type_Pointer) {
return is_polymorphic_type_assignable(c, poly->Pointer.elem, source->Pointer.elem, true, modify_type);