From d90adb7a8eb388ef8552bf963b344e9123830461 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 31 May 2021 21:03:50 +0100 Subject: [PATCH] Fix #998 --- src/check_expr.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/check_expr.cpp b/src/check_expr.cpp index 2d77fe40a..e31343e29 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -7970,6 +7970,16 @@ ExprKind check_expr_base_internal(CheckerContext *c, Operand *o, Ast *node, Type ExprKind check_expr_base(CheckerContext *c, Operand *o, Ast *node, Type *type_hint) { ExprKind kind = check_expr_base_internal(c, o, node, type_hint); + if (o->type != nullptr && core_type(o->type) == nullptr) { + o->type = t_invalid; + gbString xs = expr_to_string(o->expr); + if (o->mode == Addressing_Type) { + error(o->expr, "Invalid type usage '%s'", xs); + } else { + error(o->expr, "Invalid expression '%s'", xs); + } + gb_string_free(xs); + } if (o->type != nullptr && is_type_untyped(o->type)) { add_untyped(&c->checker->info, node, false, o->mode, o->type, o->value); }