This commit is contained in:
gingerBill
2021-05-31 21:03:50 +01:00
parent 2573da12fc
commit d90adb7a8e

View File

@@ -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);
}