Correct Multi Pointer Type handling in expressions

This commit is contained in:
gingerBill
2021-08-22 00:59:42 +01:00
parent 91247a8fe1
commit d72f4a8a79

View File

@@ -8486,6 +8486,7 @@ ExprKind check_expr_base_internal(CheckerContext *c, Operand *o, Ast *node, Type
case Ast_PolyType:
case Ast_ProcType:
case Ast_PointerType:
case Ast_MultiPointerType:
case Ast_ArrayType:
case Ast_DynamicArrayType:
case Ast_StructType:
@@ -8931,6 +8932,11 @@ gbString write_expr_to_string(gbString str, Ast *node, bool shorthand) {
str = write_expr_to_string(str, pt->type, shorthand);
case_end;
case_ast_node(pt, MultiPointerType, node);
str = gb_string_appendc(str, "[^]");
str = write_expr_to_string(str, pt->type, shorthand);
case_end;
case_ast_node(at, ArrayType, node);
str = gb_string_append_rune(str, '[');
if (at->count != nullptr &&