Merge branch 'zig1' into zig0-0.15.2

This commit is contained in:
2026-02-23 09:23:39 +02:00

View File

@@ -5808,10 +5808,13 @@ static AirInstRef evalCrossModuleDeclValue(
// Create a mini-sema with the imported module's ZIR.
// Shares the InternPool so IP indices are valid across both semas.
// Do NOT set source_dir: this prevents recursive cross-module
// resolution (e.g. common.zig -> builtin.abi) from causing
// infinite recursion or expensive file I/O.
Sema mini_sema;
semaInit(&mini_sema, parent_sema->ip, *import_zir);
mini_sema.source_dir = parent_sema->source_dir;
mini_sema.module_root = parent_sema->module_root;
mini_sema.source_dir = NULL;
mini_sema.module_root = NULL;
SemaBlock ct_block;
semaBlockInit(&ct_block, &mini_sema, NULL);
@@ -5945,8 +5948,10 @@ static AirInstRef zirFieldValComptime(
// evaluate its value body using a mini-sema.
// This handles patterns like: common.want_aeabi where common is
// @import("./common.zig") and want_aeabi is a pub const bool.
// Only attempt in comptime context to avoid expensive file I/O
// on every runtime field_val instruction.
if (obj_ip == IP_INDEX_VOID_VALUE && obj_ref >= ZIR_REF_START_INDEX
&& sema->source_dir) {
&& sema->source_dir && block->is_comptime) {
uint32_t obj_inst = obj_ref - ZIR_REF_START_INDEX;
ZirInstTag obj_tag = sema->code.inst_tags[obj_inst];
if (obj_tag == ZIR_INST_DECL_VAL || obj_tag == ZIR_INST_DECL_REF) {