| ... | @@ -22722,7 +22722,16 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! | ... | @@ -22722,7 +22722,16 @@ fn zirPtrFromInt(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError! |
| 22722 | .storage = .{ .elems = new_elems }, | 22722 | .storage = .{ .elems = new_elems }, |
| 22723 | } })); | 22723 | } })); |
| 22724 | } | 22724 | } |
| | 22725 | if (try sema.typeRequiresComptime(ptr_ty)) { |
| | 22726 | return sema.failWithOwnedErrorMsg(block, msg: { |
| | 22727 | const msg = try sema.errMsg(block, src, "pointer to comptime-only type '{}' must be comptime-known, but operand is runtime-known", .{ptr_ty.fmt(mod)}); |
| | 22728 | errdefer msg.destroy(sema.gpa); |
| 22725 | | 22729 | |
| | 22730 | const src_decl = mod.declPtr(block.src_decl); |
| | 22731 | try sema.explainWhyTypeIsComptime(msg, src_decl.toSrcLoc(src, mod), ptr_ty); |
| | 22732 | break :msg msg; |
| | 22733 | }); |
| | 22734 | } |
| 22726 | try sema.requireRuntimeBlock(block, src, operand_src); | 22735 | try sema.requireRuntimeBlock(block, src, operand_src); |
| 22727 | if (!is_vector) { | 22736 | if (!is_vector) { |
| 22728 | if (block.wantSafety() and (try sema.typeHasRuntimeBits(elem_ty) or elem_ty.zigTypeTag(mod) == .Fn)) { | 22737 | if (block.wantSafety() and (try sema.typeHasRuntimeBits(elem_ty) or elem_ty.zigTypeTag(mod) == .Fn)) { |