| ... | ... | @@ -2788,11 +2788,13 @@ fn zirStructDecl( |
| 2788 | 2788 | new_decl.owns_tv = true; |
| 2789 | 2789 | errdefer mod.abortAnonDecl(new_decl_index); |
| 2790 | 2790 | |
| 2791 | | try ip.addDependency( |
| 2792 | | sema.gpa, |
| 2793 | | InternPool.Depender.wrap(.{ .decl = new_decl_index }), |
| 2794 | | .{ .src_hash = try ip.trackZir(sema.gpa, block.getFileScope(mod), inst) }, |
| 2795 | | ); |
| 2791 | if (sema.mod.comp.debug_incremental) { |
| 2792 | try ip.addDependency( |
| 2793 | sema.gpa, |
| 2794 | InternPool.Depender.wrap(.{ .decl = new_decl_index }), |
| 2795 | .{ .src_hash = try ip.trackZir(sema.gpa, block.getFileScope(mod), inst) }, |
| 2796 | ); |
| 2797 | } |
| 2796 | 2798 | |
| 2797 | 2799 | const new_namespace_index = try mod.createNamespace(.{ |
| 2798 | 2800 | .parent = block.namespace.toOptional(), |
| ... | ... | @@ -2978,11 +2980,13 @@ fn zirEnumDecl( |
| 2978 | 2980 | new_decl.owns_tv = true; |
| 2979 | 2981 | errdefer if (!done) mod.abortAnonDecl(new_decl_index); |
| 2980 | 2982 | |
| 2981 | | try mod.intern_pool.addDependency( |
| 2982 | | sema.gpa, |
| 2983 | | InternPool.Depender.wrap(.{ .decl = new_decl_index }), |
| 2984 | | .{ .src_hash = try mod.intern_pool.trackZir(sema.gpa, block.getFileScope(mod), inst) }, |
| 2985 | | ); |
| 2983 | if (sema.mod.comp.debug_incremental) { |
| 2984 | try mod.intern_pool.addDependency( |
| 2985 | sema.gpa, |
| 2986 | InternPool.Depender.wrap(.{ .decl = new_decl_index }), |
| 2987 | .{ .src_hash = try mod.intern_pool.trackZir(sema.gpa, block.getFileScope(mod), inst) }, |
| 2988 | ); |
| 2989 | } |
| 2986 | 2990 | |
| 2987 | 2991 | const new_namespace_index = try mod.createNamespace(.{ |
| 2988 | 2992 | .parent = block.namespace.toOptional(), |
| ... | ... | @@ -3237,11 +3241,13 @@ fn zirUnionDecl( |
| 3237 | 3241 | new_decl.owns_tv = true; |
| 3238 | 3242 | errdefer mod.abortAnonDecl(new_decl_index); |
| 3239 | 3243 | |
| 3240 | | try mod.intern_pool.addDependency( |
| 3241 | | sema.gpa, |
| 3242 | | InternPool.Depender.wrap(.{ .decl = new_decl_index }), |
| 3243 | | .{ .src_hash = try mod.intern_pool.trackZir(sema.gpa, block.getFileScope(mod), inst) }, |
| 3244 | | ); |
| 3244 | if (sema.mod.comp.debug_incremental) { |
| 3245 | try mod.intern_pool.addDependency( |
| 3246 | sema.gpa, |
| 3247 | InternPool.Depender.wrap(.{ .decl = new_decl_index }), |
| 3248 | .{ .src_hash = try mod.intern_pool.trackZir(sema.gpa, block.getFileScope(mod), inst) }, |
| 3249 | ); |
| 3250 | } |
| 3245 | 3251 | |
| 3246 | 3252 | const new_namespace_index = try mod.createNamespace(.{ |
| 3247 | 3253 | .parent = block.namespace.toOptional(), |
| ... | ... | @@ -3336,11 +3342,13 @@ fn zirOpaqueDecl( |
| 3336 | 3342 | new_decl.owns_tv = true; |
| 3337 | 3343 | errdefer mod.abortAnonDecl(new_decl_index); |
| 3338 | 3344 | |
| 3339 | | try mod.intern_pool.addDependency( |
| 3340 | | sema.gpa, |
| 3341 | | InternPool.Depender.wrap(.{ .decl = new_decl_index }), |
| 3342 | | .{ .src_hash = try mod.intern_pool.trackZir(sema.gpa, block.getFileScope(mod), inst) }, |
| 3343 | | ); |
| 3345 | if (sema.mod.comp.debug_incremental) { |
| 3346 | try mod.intern_pool.addDependency( |
| 3347 | sema.gpa, |
| 3348 | InternPool.Depender.wrap(.{ .decl = new_decl_index }), |
| 3349 | .{ .src_hash = try mod.intern_pool.trackZir(sema.gpa, block.getFileScope(mod), inst) }, |
| 3350 | ); |
| 3351 | } |
| 3344 | 3352 | |
| 3345 | 3353 | const new_namespace_index = try mod.createNamespace(.{ |
| 3346 | 3354 | .parent = block.namespace.toOptional(), |
| ... | ... | @@ -32435,7 +32443,7 @@ fn analyzeDeclRefInner(sema: *Sema, decl_index: InternPool.DeclIndex, analyze_fn |
| 32435 | 32443 | |
| 32436 | 32444 | const decl = mod.declPtr(decl_index); |
| 32437 | 32445 | const decl_tv = try decl.typedValue(); |
| 32438 | | // TODO: if this is a `decl_ref`, only depend on decl type |
| 32446 | // TODO: if this is a `decl_ref` of a non-variable decl, only depend on decl type |
| 32439 | 32447 | try sema.declareDependency(.{ .decl_val = decl_index }); |
| 32440 | 32448 | const ptr_ty = try sema.ptrType(.{ |
| 32441 | 32449 | .child = decl_tv.ty.toIntern(), |
| ... | ... | @@ -38925,6 +38933,7 @@ fn ptrType(sema: *Sema, info: InternPool.Key.PtrType) CompileError!Type { |
| 38925 | 38933 | } |
| 38926 | 38934 | |
| 38927 | 38935 | pub fn declareDependency(sema: *Sema, dependee: InternPool.Dependee) !void { |
| 38936 | if (!sema.mod.comp.debug_incremental) return; |
| 38928 | 38937 | const depender = InternPool.Depender.wrap( |
| 38929 | 38938 | if (sema.owner_func_index != .none) |
| 38930 | 38939 | .{ .func = sema.owner_func_index } |