| ... | @@ -2668,23 +2668,6 @@ pub fn updateComptimeNav(dwarf: *Dwarf, pt: Zcu.PerThread, nav_index: InternPool | ... | @@ -2668,23 +2668,6 @@ pub fn updateComptimeNav(dwarf: *Dwarf, pt: Zcu.PerThread, nav_index: InternPool |
| 2668 | const type_inst_info = loaded_struct.zir_index.resolveFull(ip).?; | 2668 | const type_inst_info = loaded_struct.zir_index.resolveFull(ip).?; |
| 2669 | if (type_inst_info.file != inst_info.file) break :tag .decl_alias; | 2669 | if (type_inst_info.file != inst_info.file) break :tag .decl_alias; |
| 2670 | | 2670 | |
| 2671 | const value_inst = value_inst: { | | |
| 2672 | const decl_value_body = decl_extra.data.getBodies(@intCast(decl_extra.end), file.zir).value_body; | | |
| 2673 | const break_inst = file.zir.instructions.get(@intFromEnum(decl_value_body[decl_value_body.len - 1])); | | |
| 2674 | if (break_inst.tag != .break_inline) break :value_inst null; | | |
| 2675 | assert(file.zir.extraData(Zir.Inst.Break, break_inst.data.@"break".payload_index).data.block_inst == inst_info.inst); | | |
| 2676 | var value_inst = break_inst.data.@"break".operand.toIndex(); | | |
| 2677 | while (value_inst) |value_inst_index| switch (file.zir.instructions.items(.tag)[@intFromEnum(value_inst_index)]) { | | |
| 2678 | else => break, | | |
| 2679 | .as_node => value_inst = file.zir.extraData( | | |
| 2680 | Zir.Inst.As, | | |
| 2681 | file.zir.instructions.items(.data)[@intFromEnum(value_inst_index)].pl_node.payload_index, | | |
| 2682 | ).data.operand.toIndex(), | | |
| 2683 | }; | | |
| 2684 | break :value_inst value_inst; | | |
| 2685 | }; | | |
| 2686 | if (type_inst_info.inst != value_inst) break :tag .decl_alias; | | |
| 2687 | | | |
| 2688 | const type_gop = try dwarf.types.getOrPut(dwarf.gpa, nav_val.toIntern()); | 2671 | const type_gop = try dwarf.types.getOrPut(dwarf.gpa, nav_val.toIntern()); |
| 2689 | if (type_gop.found_existing) { | 2672 | if (type_gop.found_existing) { |
| 2690 | if (dwarf.debug_info.section.getUnit(wip_nav.unit).getEntry(type_gop.value_ptr.*).len > 0) break :tag .decl_alias; | 2673 | if (dwarf.debug_info.section.getUnit(wip_nav.unit).getEntry(type_gop.value_ptr.*).len > 0) break :tag .decl_alias; |
| ... | @@ -2791,23 +2774,6 @@ pub fn updateComptimeNav(dwarf: *Dwarf, pt: Zcu.PerThread, nav_index: InternPool | ... | @@ -2791,23 +2774,6 @@ pub fn updateComptimeNav(dwarf: *Dwarf, pt: Zcu.PerThread, nav_index: InternPool |
| 2791 | const type_inst_info = loaded_enum.zir_index.unwrap().?.resolveFull(ip).?; | 2774 | const type_inst_info = loaded_enum.zir_index.unwrap().?.resolveFull(ip).?; |
| 2792 | if (type_inst_info.file != inst_info.file) break :tag .decl_alias; | 2775 | if (type_inst_info.file != inst_info.file) break :tag .decl_alias; |
| 2793 | | 2776 | |
| 2794 | const value_inst = value_inst: { | | |
| 2795 | const decl_value_body = decl_extra.data.getBodies(@intCast(decl_extra.end), file.zir).value_body; | | |
| 2796 | const break_inst = file.zir.instructions.get(@intFromEnum(decl_value_body[decl_value_body.len - 1])); | | |
| 2797 | if (break_inst.tag != .break_inline) break :value_inst null; | | |
| 2798 | assert(file.zir.extraData(Zir.Inst.Break, break_inst.data.@"break".payload_index).data.block_inst == inst_info.inst); | | |
| 2799 | var value_inst = break_inst.data.@"break".operand.toIndex(); | | |
| 2800 | while (value_inst) |value_inst_index| switch (file.zir.instructions.items(.tag)[@intFromEnum(value_inst_index)]) { | | |
| 2801 | else => break, | | |
| 2802 | .as_node => value_inst = file.zir.extraData( | | |
| 2803 | Zir.Inst.As, | | |
| 2804 | file.zir.instructions.items(.data)[@intFromEnum(value_inst_index)].pl_node.payload_index, | | |
| 2805 | ).data.operand.toIndex(), | | |
| 2806 | }; | | |
| 2807 | break :value_inst value_inst; | | |
| 2808 | }; | | |
| 2809 | if (type_inst_info.inst != value_inst) break :tag .decl_alias; | | |
| 2810 | | | |
| 2811 | const type_gop = try dwarf.types.getOrPut(dwarf.gpa, nav_val.toIntern()); | 2777 | const type_gop = try dwarf.types.getOrPut(dwarf.gpa, nav_val.toIntern()); |
| 2812 | if (type_gop.found_existing) { | 2778 | if (type_gop.found_existing) { |
| 2813 | if (dwarf.debug_info.section.getUnit(wip_nav.unit).getEntry(type_gop.value_ptr.*).len > 0) break :tag .decl_alias; | 2779 | if (dwarf.debug_info.section.getUnit(wip_nav.unit).getEntry(type_gop.value_ptr.*).len > 0) break :tag .decl_alias; |
| ... | @@ -2846,23 +2812,6 @@ pub fn updateComptimeNav(dwarf: *Dwarf, pt: Zcu.PerThread, nav_index: InternPool | ... | @@ -2846,23 +2812,6 @@ pub fn updateComptimeNav(dwarf: *Dwarf, pt: Zcu.PerThread, nav_index: InternPool |
| 2846 | const type_inst_info = loaded_union.zir_index.resolveFull(ip).?; | 2812 | const type_inst_info = loaded_union.zir_index.resolveFull(ip).?; |
| 2847 | if (type_inst_info.file != inst_info.file) break :tag .decl_alias; | 2813 | if (type_inst_info.file != inst_info.file) break :tag .decl_alias; |
| 2848 | | 2814 | |
| 2849 | const value_inst = value_inst: { | | |
| 2850 | const decl_value_body = decl_extra.data.getBodies(@intCast(decl_extra.end), file.zir).value_body; | | |
| 2851 | const break_inst = file.zir.instructions.get(@intFromEnum(decl_value_body[decl_value_body.len - 1])); | | |
| 2852 | if (break_inst.tag != .break_inline) break :value_inst null; | | |
| 2853 | assert(file.zir.extraData(Zir.Inst.Break, break_inst.data.@"break".payload_index).data.block_inst == inst_info.inst); | | |
| 2854 | var value_inst = break_inst.data.@"break".operand.toIndex(); | | |
| 2855 | while (value_inst) |value_inst_index| switch (file.zir.instructions.items(.tag)[@intFromEnum(value_inst_index)]) { | | |
| 2856 | else => break, | | |
| 2857 | .as_node => value_inst = file.zir.extraData( | | |
| 2858 | Zir.Inst.As, | | |
| 2859 | file.zir.instructions.items(.data)[@intFromEnum(value_inst_index)].pl_node.payload_index, | | |
| 2860 | ).data.operand.toIndex(), | | |
| 2861 | }; | | |
| 2862 | break :value_inst value_inst; | | |
| 2863 | }; | | |
| 2864 | if (type_inst_info.inst != value_inst) break :tag .decl_alias; | | |
| 2865 | | | |
| 2866 | const type_gop = try dwarf.types.getOrPut(dwarf.gpa, nav_val.toIntern()); | 2815 | const type_gop = try dwarf.types.getOrPut(dwarf.gpa, nav_val.toIntern()); |
| 2867 | if (type_gop.found_existing) { | 2816 | if (type_gop.found_existing) { |
| 2868 | if (dwarf.debug_info.section.getUnit(wip_nav.unit).getEntry(type_gop.value_ptr.*).len > 0) break :tag .decl_alias; | 2817 | if (dwarf.debug_info.section.getUnit(wip_nav.unit).getEntry(type_gop.value_ptr.*).len > 0) break :tag .decl_alias; |
| ... | @@ -2937,23 +2886,6 @@ pub fn updateComptimeNav(dwarf: *Dwarf, pt: Zcu.PerThread, nav_index: InternPool | ... | @@ -2937,23 +2886,6 @@ pub fn updateComptimeNav(dwarf: *Dwarf, pt: Zcu.PerThread, nav_index: InternPool |
| 2937 | const type_inst_info = loaded_opaque.zir_index.resolveFull(ip).?; | 2886 | const type_inst_info = loaded_opaque.zir_index.resolveFull(ip).?; |
| 2938 | if (type_inst_info.file != inst_info.file) break :tag .decl_alias; | 2887 | if (type_inst_info.file != inst_info.file) break :tag .decl_alias; |
| 2939 | | 2888 | |
| 2940 | const value_inst = value_inst: { | | |
| 2941 | const decl_value_body = decl_extra.data.getBodies(@intCast(decl_extra.end), file.zir).value_body; | | |
| 2942 | const break_inst = file.zir.instructions.get(@intFromEnum(decl_value_body[decl_value_body.len - 1])); | | |
| 2943 | if (break_inst.tag != .break_inline) break :value_inst null; | | |
| 2944 | assert(file.zir.extraData(Zir.Inst.Break, break_inst.data.@"break".payload_index).data.block_inst == inst_info.inst); | | |
| 2945 | var value_inst = break_inst.data.@"break".operand.toIndex(); | | |
| 2946 | while (value_inst) |value_inst_index| switch (file.zir.instructions.items(.tag)[@intFromEnum(value_inst_index)]) { | | |
| 2947 | else => break, | | |
| 2948 | .as_node => value_inst = file.zir.extraData( | | |
| 2949 | Zir.Inst.As, | | |
| 2950 | file.zir.instructions.items(.data)[@intFromEnum(value_inst_index)].pl_node.payload_index, | | |
| 2951 | ).data.operand.toIndex(), | | |
| 2952 | }; | | |
| 2953 | break :value_inst value_inst; | | |
| 2954 | }; | | |
| 2955 | if (type_inst_info.inst != value_inst) break :tag .decl_alias; | | |
| 2956 | | | |
| 2957 | const type_gop = try dwarf.types.getOrPut(dwarf.gpa, nav_val.toIntern()); | 2889 | const type_gop = try dwarf.types.getOrPut(dwarf.gpa, nav_val.toIntern()); |
| 2958 | if (type_gop.found_existing) { | 2890 | if (type_gop.found_existing) { |
| 2959 | if (dwarf.debug_info.section.getUnit(wip_nav.unit).getEntry(type_gop.value_ptr.*).len > 0) break :tag .decl_alias; | 2891 | if (dwarf.debug_info.section.getUnit(wip_nav.unit).getEntry(type_gop.value_ptr.*).len > 0) break :tag .decl_alias; |