aboutsummaryrefslogtreecommitdiff
path: root/py/argcheck.c
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2019-09-26 22:52:04 +1000
committerDamien George <damien.p.george@gmail.com>2020-04-05 14:11:51 +1000
commita9a745e4b4838749a47857f1d0c95de52dc85f58 (patch)
tree60469e58476c5a68999ad0a2e8d58dbca8a6abb8 /py/argcheck.c
parent312c699491830daacd33f032a6d6fc6cc6ff0c96 (diff)
py: Use preprocessor to detect error reporting level (terse/detailed).
Instead of compiler-level if-logic. This is necessary to know what error strings are included in the build at the preprocessor stage, so that string compression can be implemented.
Diffstat (limited to 'py/argcheck.c')
-rw-r--r--py/argcheck.c86
1 files changed, 43 insertions, 43 deletions
diff --git a/py/argcheck.c b/py/argcheck.c
index 87e13bcff..88c4b8bf3 100644
--- a/py/argcheck.c
+++ b/py/argcheck.c
@@ -38,40 +38,40 @@ void mp_arg_check_num_sig(size_t n_args, size_t n_kw, uint32_t sig) {
size_t n_args_max = (sig >> 1) & 0xffff;
if (n_kw && !takes_kw) {
- if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
- mp_arg_error_terse_mismatch();
- } else {
- mp_raise_TypeError("function doesn't take keyword arguments");
- }
+ #if MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE
+ mp_arg_error_terse_mismatch();
+ #else
+ mp_raise_TypeError("function doesn't take keyword arguments");
+ #endif
}
if (n_args_min == n_args_max) {
if (n_args != n_args_min) {
- if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
- mp_arg_error_terse_mismatch();
- } else {
- mp_raise_msg_varg(&mp_type_TypeError,
- "function takes %d positional arguments but %d were given",
- n_args_min, n_args);
- }
+ #if MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE
+ mp_arg_error_terse_mismatch();
+ #else
+ mp_raise_msg_varg(&mp_type_TypeError,
+ "function takes %d positional arguments but %d were given",
+ n_args_min, n_args);
+ #endif
}
} else {
if (n_args < n_args_min) {
- if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
- mp_arg_error_terse_mismatch();
- } else {
- mp_raise_msg_varg(&mp_type_TypeError,
- "function missing %d required positional arguments",
- n_args_min - n_args);
- }
+ #if MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE
+ mp_arg_error_terse_mismatch();
+ #else
+ mp_raise_msg_varg(&mp_type_TypeError,
+ "function missing %d required positional arguments",
+ n_args_min - n_args);
+ #endif
} else if (n_args > n_args_max) {
- if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
- mp_arg_error_terse_mismatch();
- } else {
- mp_raise_msg_varg(&mp_type_TypeError,
- "function expected at most %d arguments, got %d",
- n_args_max, n_args);
- }
+ #if MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE
+ mp_arg_error_terse_mismatch();
+ #else
+ mp_raise_msg_varg(&mp_type_TypeError,
+ "function expected at most %d arguments, got %d",
+ n_args_max, n_args);
+ #endif
}
}
}
@@ -90,11 +90,11 @@ void mp_arg_parse_all(size_t n_pos, const mp_obj_t *pos, mp_map_t *kws, size_t n
mp_map_elem_t *kw = mp_map_lookup(kws, MP_OBJ_NEW_QSTR(allowed[i].qst), MP_MAP_LOOKUP);
if (kw == NULL) {
if (allowed[i].flags & MP_ARG_REQUIRED) {
- if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
- mp_arg_error_terse_mismatch();
- } else {
- mp_raise_msg_varg(&mp_type_TypeError, "'%q' argument required", allowed[i].qst);
- }
+ #if MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE
+ mp_arg_error_terse_mismatch();
+ #else
+ mp_raise_msg_varg(&mp_type_TypeError, "'%q' argument required", allowed[i].qst);
+ #endif
}
out_vals[i] = allowed[i].defval;
continue;
@@ -114,20 +114,20 @@ void mp_arg_parse_all(size_t n_pos, const mp_obj_t *pos, mp_map_t *kws, size_t n
}
if (pos_found < n_pos) {
extra_positional:
- if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
- mp_arg_error_terse_mismatch();
- } else {
- // TODO better error message
- mp_raise_TypeError("extra positional arguments given");
- }
+ #if MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE
+ mp_arg_error_terse_mismatch();
+ #else
+ // TODO better error message
+ mp_raise_TypeError("extra positional arguments given");
+ #endif
}
if (kws_found < kws->used) {
- if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
- mp_arg_error_terse_mismatch();
- } else {
- // TODO better error message
- mp_raise_TypeError("extra keyword arguments given");
- }
+ #if MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE
+ mp_arg_error_terse_mismatch();
+ #else
+ // TODO better error message
+ mp_raise_TypeError("extra keyword arguments given");
+ #endif
}
}