diff options
Diffstat (limited to 'src/check_type.cpp')
| -rw-r--r-- | src/check_type.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/check_type.cpp b/src/check_type.cpp index da0a9706b..66417f97e 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -1643,8 +1643,10 @@ Type *check_get_params(CheckerContext *ctx, Scope *scope, Ast *_params, bool *is bool valid = false; if (is_type_proc(op.type)) { Entity *proc_entity = entity_from_expr(op.expr); - valid = proc_entity != nullptr; - poly_const = exact_value_procedure(proc_entity->identifier.load() ? proc_entity->identifier.load() : op.expr); + valid = (proc_entity != nullptr) && (op.value.kind == ExactValue_Procedure); + if (valid) { + poly_const = exact_value_procedure(proc_entity->identifier.load() ? proc_entity->identifier.load() : op.expr); + } } if (!valid) { if (op.mode == Addressing_Constant) { |