@@ -6072,8 +6072,9 @@ fn fieldAccess(
6072
6072
switch (ri.rl) {
6073
6073
.ref, .ref_coerced_ty => return addFieldAccess(.field_ptr, gz, scope, .{ .rl = .ref }, node),
6074
6074
else => {
6075
- const access = try addFieldAccess(.field_val, gz, scope, .{ .rl = .none }, node);
6076
- return rvalue(gz, ri, access, node);
6075
+ const ptr = try addFieldAccess(.field_ptr, gz, scope, .{ .rl = .ref }, node);
6076
+ const result = try gz.addUnNode(.load, ptr, node);
6077
+ return rvalue(gz, ri, result, node);
6077
6078
},
6078
6079
}
6079
6080
}
@@ -6125,14 +6126,16 @@ fn arrayAccess(
6125
6126
return gz.addPlNode(.elem_ptr_node, node, Zir.Inst.Bin{ .lhs = lhs, .rhs = rhs });
6126
6127
},
6127
6128
else => {
6128
- const lhs = try expr(gz, scope, .{ .rl = .none }, node_datas[node].lhs);
6129
+ const lhs = try expr(gz, scope, .{ .rl = .ref }, node_datas[node].lhs);
6129
6130
6130
6131
const cursor = maybeAdvanceSourceCursorToMainToken(gz, node);
6131
6132
6132
6133
const rhs = try expr(gz, scope, .{ .rl = .{ .coerced_ty = .usize_type } }, node_datas[node].rhs);
6133
6134
try emitDbgStmt(gz, cursor);
6134
6135
6135
- return rvalue(gz, ri, try gz.addPlNode(.elem_val_node, node, Zir.Inst.Bin{ .lhs = lhs, .rhs = rhs }), node);
6136
+ const ptr = try gz.addPlNode(.elem_ptr_node, node, Zir.Inst.Bin{ .lhs = lhs, .rhs = rhs });
6137
+ const result = try gz.addUnNode(.load, ptr, node);
6138
+ return rvalue(gz, ri, result, node);
6136
6139
},
6137
6140
}
6138
6141
}
0 commit comments