Browse Source

Correct Multi Pointer Type handling in expressions

gingerBill 4 years ago
parent
commit
d72f4a8a79
1 changed files with 6 additions and 0 deletions
  1. 6 0
      src/check_expr.cpp

+ 6 - 0
src/check_expr.cpp

@@ -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 &&