diff options
| author | gingerBill <bill@gingerbill.org> | 2020-04-13 15:48:56 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2020-04-13 15:48:56 +0100 |
| commit | f229084baa383ebd81c5d04db1ede5dc71017904 (patch) | |
| tree | b2f5f4ace82547fd96e1e6bf3279dd300272c928 /src/checker.cpp | |
| parent | f09b6a4c90805a562b2252430f844e85d06f1ee1 (diff) | |
Basic polymorphic named procedure parameters for procedures and records
Diffstat (limited to 'src/checker.cpp')
| -rw-r--r-- | src/checker.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/checker.cpp b/src/checker.cpp index 517a63506..026b1e7c1 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -885,6 +885,7 @@ void destroy_checker(Checker *c) { Entity *entity_of_ident(Ast *identifier) { + identifier = unparen_expr(identifier); if (identifier->kind == Ast_Ident) { return identifier->Ident.entity; } @@ -1042,6 +1043,8 @@ void add_type_and_value(CheckerInfo *i, Ast *expr, AddressingMode mode, Type *ty expr->tav.value = value; } else if (mode == Addressing_Value && is_type_typeid(type)) { expr->tav.value = value; + } else if (mode == Addressing_Value && is_type_proc(type)) { + expr->tav.value = value; } prev_expr = expr; |