From 7bbc9a4634c2a4f1f3d4e932571883dce55c21fd Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 15 Aug 2021 12:56:59 +0100 Subject: Add `#any_int` directive to replace `auto_cast` uses on parameters. --- src/check_expr.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/check_expr.cpp') diff --git a/src/check_expr.cpp b/src/check_expr.cpp index cb9fce7b6..b185dd080 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -4485,6 +4485,10 @@ CALL_ARGUMENT_CHECKER(check_call_arguments_internal) { bool ok = false; if (e->flags & EntityFlag_AutoCast) { ok = check_is_castable_to(c, &o, t); + } else if (e->flags & EntityFlag_AnyInt) { + if (is_type_integer(t)) { + ok = check_is_castable_to(c, &o, t); + } } if (ok) { s = assign_score_function(MAXIMUM_TYPE_DISTANCE); @@ -8730,6 +8734,12 @@ gbString write_expr_to_string(gbString str, Ast *node, bool shorthand) { if (f->flags&FieldFlag_auto_cast) { str = gb_string_appendc(str, "auto_cast "); } + if (f->flags&FieldFlag_any_int) { + str = gb_string_appendc(str, "#any_int "); + } + if (f->flags&FieldFlag_const) { + str = gb_string_appendc(str, "#const "); + } for_array(i, f->names) { Ast *name = f->names[i]; -- cgit v1.2.3