Allow len and cap to return a uint if a type hint is uint to aid people wanting to use unsigned integers

This commit is contained in:
gingerBill
2021-08-09 17:39:38 +01:00
parent a3abe991a4
commit aebfa4b28e

View File

@@ -406,6 +406,16 @@ bool check_builtin_procedure(CheckerContext *c, Operand *operand, Ast *call, i32
Type *op_type = type_deref(operand->type);
Type *type = t_int;
if (type_hint != nullptr) {
Type *bt = type_hint;
// bt = base_type(bt);
if (bt == t_int) {
type = type_hint;
} else if (bt == t_uint) {
type = type_hint;
}
}
AddressingMode mode = Addressing_Invalid;
ExactValue value = {};
if (is_type_string(op_type) && id == BuiltinProc_len) {