aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2024-03-21 11:54:40 +0000
committergingerBill <bill@gingerbill.org>2024-03-21 11:54:40 +0000
commit010ffc486cb22b21136fdfa4f5ad04532767fa70 (patch)
tree3fbad9efdc9c660c206b5d50e98532fdb5faf5d4 /src
parent29e5f94c2a0d666eed93a1013f895f3c86d6373f (diff)
Minor clean up of `#no_broadcast` handling
Diffstat (limited to 'src')
-rw-r--r--src/check_expr.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index 51fe3fc8a..1f060506a 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -5863,7 +5863,8 @@ gb_internal CallArgumentError check_call_arguments_internal(CheckerContext *c, A
}
}
- auto eval_param_and_score = [](CheckerContext *c, Operand *o, Type *param_type, CallArgumentError &err, bool param_is_variadic, Entity *e, bool show_error, bool allow_array_programming) -> i64 {
+ auto eval_param_and_score = [](CheckerContext *c, Operand *o, Type *param_type, CallArgumentError &err, bool param_is_variadic, Entity *e, bool show_error) -> i64 {
+ bool allow_array_programming = !(e && (e->flags & EntityFlag_NoBroadcast));
i64 s = 0;
if (!check_is_assignable_to_with_score(c, o, param_type, &s, param_is_variadic, allow_array_programming)) {
bool ok = false;
@@ -5977,8 +5978,7 @@ gb_internal CallArgumentError check_call_arguments_internal(CheckerContext *c, A
if (param_is_variadic) {
continue;
}
- bool allow_array_programming = !(e && (e->flags & EntityFlag_NoBroadcast));
- score += eval_param_and_score(c, o, e->type, err, param_is_variadic, e, show_error, allow_array_programming);
+ score += eval_param_and_score(c, o, e->type, err, false, e, show_error);
}
}
@@ -6010,8 +6010,7 @@ gb_internal CallArgumentError check_call_arguments_internal(CheckerContext *c, A
return CallArgumentError_MultipleVariadicExpand;
}
}
- bool allow_array_programming = !(var_entity && (var_entity->flags & EntityFlag_NoBroadcast));
- score += eval_param_and_score(c, o, t, err, true, nullptr, show_error, allow_array_programming);
+ score += eval_param_and_score(c, o, t, err, true, var_entity, show_error);
}
}