| ... | ... | @@ -16612,7 +16612,17 @@ fn zirPtrType(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!Air |
| 16612 | 16612 | const bitoffset_src: LazySrcLoc = .{ .node_offset_ptr_bitoffset = extra.data.src_node }; |
| 16613 | 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 | 16626 | const target = sema.mod.getTarget(); |
| 16617 | 16627 | |
| 16618 | 16628 | var extra_i = extra.end; |