diff options
Diffstat (limited to 'src/check_type.cpp')
| -rw-r--r-- | src/check_type.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/check_type.cpp b/src/check_type.cpp index ebcd297db..fb9ff9013 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -1946,7 +1946,8 @@ bool check_type_internal(Checker *c, AstNode *e, Type **type, Type *named_type) case Addressing_Type: { *type = o.type; if (!c->context.in_polymorphic_specialization) { - if (is_type_polymorphic_struct_unspecialized(o.type)) { + Type *t = base_type(o.type); + if (t != nullptr && is_type_polymorphic_struct_unspecialized(t)) { err_str = expr_to_string(e); error(e, "Invalid use of a non-specialized polymorphic type '%s'", err_str); } |