aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-09-09 13:41:44 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-09-09 13:41:44 -0400
commitbf18b23ff27bf2106292d54256f2a0c4ffbbcd44 (patch)
tree46bc39c56145f96652bb8db6e24c9fda95c39cae /src
parent5118eaf98126a9e77c4fef62f8ce8eae73678900 (diff)
Typechecking/promotion for table lookup keys
Diffstat (limited to 'src')
-rw-r--r--src/compile/indexing.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/compile/indexing.c b/src/compile/indexing.c
index 39af1160..1510e924 100644
--- a/src/compile/indexing.c
+++ b/src/compile/indexing.c
@@ -52,13 +52,13 @@ Text_t compile_indexing(env_t *env, ast_t *ast) {
if (table_type->default_value) {
return Texts("Table$get_or_default(", compile_to_pointer_depth(env, indexing->indexed, 0, false), ", ",
compile_type(table_type->key_type), ", ", compile_type(table_type->value_type), ", ",
- compile(env, indexing->index), ", ",
+ compile_to_type(env, indexing->index, table_type->key_type), ", ",
compile_to_type(env, table_type->default_value, table_type->value_type), ", ",
compile_type_info(container_t), ")");
} else {
return Texts("Table$get_optional(", compile_to_pointer_depth(env, indexing->indexed, 0, false), ", ",
compile_type(table_type->key_type), ", ", compile_type(table_type->value_type), ", ",
- compile(env, indexing->index),
+ compile_to_type(env, indexing->index, table_type->key_type),
", "
"_, ",
promote_to_optional(table_type->value_type, Text("(*_)")), ", ",