diff options
author | Elias Fleckenstein <eliasfleckenstein@web.de> | 2022-01-01 15:37:07 +0100 |
---|---|---|
committer | Elias Fleckenstein <eliasfleckenstein@web.de> | 2022-01-01 15:37:07 +0100 |
commit | 8e3ed7630c7383869b6e16b494d4288c4e094dd3 (patch) | |
tree | 2586f8b1e7849b17e9151ea5cb248632b8d75879 /api/vm.c | |
parent | 8a45fcfcacd3752b19ff59542f74066a8d6d14ce (diff) | |
download | uwu-lang-8e3ed7630c7383869b6e16b494d4288c4e094dd3.tar.xz |
Argument counting starts at 1 now
Diffstat (limited to 'api/vm.c')
-rw-r--r-- | api/vm.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -44,10 +44,12 @@ UwUVMValue uwuvm_evaluate_expression(UwUVMExpression *expression, UwUVMArgs *arg return uwustr_create(expression->value.str_value); case EX_ARGNUM: - if ((size_t) expression->value.int_value >= args->num) - error("type error: not enough arguments (accessed argument $%d, but only %lu arguments were passed)\n", expression->value.int_value, args->num); + if (expression->value.int_value == 0) + error("type error: trying to access argument $0\n"); + if ((size_t) expression->value.int_value > args->num) + error("type error: trying to access argument $%d, but only %lu arguments were passed)\n", expression->value.int_value, args->num); - return uwuvm_clone_value(uwuvm_get_arg(args, expression->value.int_value)); + return uwuvm_clone_value(uwuvm_get_arg(args, expression->value.int_value - 1)); case EX_FNNAME: return uwuref_create(expression->value.ref_value); |