| ... | @@ -16612,7 +16612,17 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air | ... | @@ -16612,7 +16612,17 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 16612 | const bitoffset_src: LazySrcLoc = .{ .node_offset_ptr_bitoffset = extra.data.src_node }; | 16612 | const bitoffset_src: LazySrcLoc = .{ .node_offset_ptr_bitoffset = extra.data.src_node }; |
| 16613 | const hostsize_src: LazySrcLoc = .{ .node_offset_ptr_hostsize = extra.data.src_node }; | 16613 | const hostsize_src: LazySrcLoc = .{ .node_offset_ptr_hostsize = extra.data.src_node }; |
| 16614 | | 16614 | |
| 16615 | const unresolved_elem_ty = try sema.resolveType(block, elem_ty_src, extra.data.elem_type); | 16615 | const unresolved_elem_ty = blk: { |
| | 16616 | const air_inst = try sema.resolveInst(extra.data.elem_type); |
| | 16617 | const ty = sema.analyzeAsType(block, elem_ty_src, air_inst) catch |err| { |
| | 16618 | if (err == error.AnalysisFail and sema.err != null and sema.typeOf(air_inst).isSinglePointer()) { |
| | 16619 | try sema.errNote(block, elem_ty_src, sema.err.?, "use '.*' to dereference pointer", .{}); |
| | 16620 | } |
| | 16621 | return err; |
| | 16622 | }; |
| | 16623 | if (ty.tag() == .generic_poison) return error.GenericPoison; |
| | 16624 | break :blk ty; |
| | 16625 | }; |
| 16616 | const target = sema.mod.getTarget(); | 16626 | const target = sema.mod.getTarget(); |
| 16617 | | 16627 | |
| 16618 | var extra_i = extra.end; | 16628 | var extra_i = extra.end; |