| ... | ... | @@ -4269,6 +4269,17 @@ fn zirDbgVar( |
| 4269 | 4269 | |
| 4270 | 4270 | const str_op = sema.code.instructions.items(.data)[inst].str_op; |
| 4271 | 4271 | const operand = sema.resolveInst(str_op.operand); |
| 4272 | const name = str_op.getStr(sema.code); |
| 4273 | try sema.addDbgVar(block, operand, air_tag, name); |
| 4274 | } |
| 4275 | |
| 4276 | fn addDbgVar( |
| 4277 | sema: *Sema, |
| 4278 | block: *Block, |
| 4279 | operand: Air.Inst.Ref, |
| 4280 | air_tag: Air.Inst.Tag, |
| 4281 | name: []const u8, |
| 4282 | ) CompileError!void { |
| 4272 | 4283 | const operand_ty = sema.typeOf(operand); |
| 4273 | 4284 | switch (air_tag) { |
| 4274 | 4285 | .dbg_var_ptr => { |
| ... | ... | @@ -4279,7 +4290,6 @@ fn zirDbgVar( |
| 4279 | 4290 | }, |
| 4280 | 4291 | else => unreachable, |
| 4281 | 4292 | } |
| 4282 | | const name = str_op.getStr(sema.code); |
| 4283 | 4293 | |
| 4284 | 4294 | // Add the name to the AIR. |
| 4285 | 4295 | const name_extra_index = @intCast(u32, sema.air_extra.items.len); |
| ... | ... | @@ -4835,6 +4845,25 @@ fn analyzeCall( |
| 4835 | 4845 | const new_func_resolved_ty = try Type.Tag.function.create(sema.arena, new_fn_info); |
| 4836 | 4846 | if (!is_comptime_call) { |
| 4837 | 4847 | try sema.emitDbgInline(block, parent_func.?, module_fn, new_func_resolved_ty, .dbg_inline_begin); |
| 4848 | |
| 4849 | for (fn_info.param_body) |param| switch (zir_tags[param]) { |
| 4850 | .param, .param_comptime => { |
| 4851 | const inst_data = sema.code.instructions.items(.data)[param].pl_tok; |
| 4852 | const extra = sema.code.extraData(Zir.Inst.Param, inst_data.payload_index); |
| 4853 | const param_name = sema.code.nullTerminatedString(extra.data.name); |
| 4854 | const inst = sema.inst_map.get(param).?; |
| 4855 | |
| 4856 | try sema.addDbgVar(block, inst, .dbg_var_val, param_name); |
| 4857 | }, |
| 4858 | .param_anytype, .param_anytype_comptime => { |
| 4859 | const inst_data = sema.code.instructions.items(.data)[param].str_tok; |
| 4860 | const param_name = inst_data.get(sema.code); |
| 4861 | const inst = sema.inst_map.get(param).?; |
| 4862 | |
| 4863 | try sema.addDbgVar(block, inst, .dbg_var_val, param_name); |
| 4864 | }, |
| 4865 | else => continue, |
| 4866 | }; |
| 4838 | 4867 | } |
| 4839 | 4868 | |
| 4840 | 4869 | const result = result: { |