|
@@ -5750,9 +5750,8 @@ bool check_assignment_arguments(CheckerContext *ctx, Array<Operand> const &lhs,
|
|
|
|
|
|
optional_ok = true;
|
|
optional_ok = true;
|
|
tuple_index += 2;
|
|
tuple_index += 2;
|
|
- } else if (o.mode == Addressing_OptionalOk) {
|
|
|
|
|
|
+ } else if (o.mode == Addressing_OptionalOk && is_type_tuple(o.type)) {
|
|
Type *tuple = o.type;
|
|
Type *tuple = o.type;
|
|
- GB_ASSERT(is_type_tuple(tuple));
|
|
|
|
GB_ASSERT(tuple->Tuple.variables.count == 2);
|
|
GB_ASSERT(tuple->Tuple.variables.count == 2);
|
|
Ast *expr = unparen_expr(o.expr);
|
|
Ast *expr = unparen_expr(o.expr);
|
|
if (expr->kind == Ast_CallExpr) {
|
|
if (expr->kind == Ast_CallExpr) {
|
|
@@ -5769,7 +5768,7 @@ bool check_assignment_arguments(CheckerContext *ctx, Array<Operand> const &lhs,
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
TypeTuple *tuple = &o.type->Tuple;
|
|
TypeTuple *tuple = &o.type->Tuple;
|
|
- if (o.mode == Addressing_OptionalOk && lhs.count == 1) {
|
|
|
|
|
|
+ if (o.mode == Addressing_OptionalOk && is_type_tuple(o.type) && lhs.count == 1) {
|
|
GB_ASSERT(tuple->variables.count == 2);
|
|
GB_ASSERT(tuple->variables.count == 2);
|
|
Ast *expr = unparen_expr(o.expr);
|
|
Ast *expr = unparen_expr(o.expr);
|
|
if (expr->kind == Ast_CallExpr) {
|
|
if (expr->kind == Ast_CallExpr) {
|