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