mirror of
https://github.com/odin-lang/Odin.git
synced 2026-05-20 19:03:56 +00:00
Fix key lookup of pointer to map
This commit is contained in:
@@ -1281,7 +1281,7 @@ void check_stmt_internal(Checker *c, AstNode *node, u32 flags) {
|
||||
|
||||
if (!is_type_ordered(x.type)) {
|
||||
gbString str = type_to_string(x.type);
|
||||
error(x.expr, "Unordered type '%s', is invalid for an interval expression", str);
|
||||
error(expr, "Unordered type '%s', is invalid for an interval expression", str);
|
||||
gb_string_free(str);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -5531,6 +5531,10 @@ irAddr ir_build_addr(irProcedure *proc, AstNode *expr) {
|
||||
|
||||
if (is_type_map(t)) {
|
||||
irValue *map_val = ir_build_addr_ptr(proc, ie->expr);
|
||||
if (deref) {
|
||||
map_val = ir_emit_load(proc, map_val);
|
||||
}
|
||||
|
||||
irValue *key = ir_build_expr(proc, ie->index);
|
||||
key = ir_emit_conv(proc, key, t->Map.key);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user