aboutsummaryrefslogtreecommitdiff
path: root/src/Sema.zig
diff options
context:
space:
mode:
authormlugg <mlugg@mlugg.co.uk>2024-02-04 17:27:41 +0000
committermlugg <mlugg@mlugg.co.uk>2024-02-04 18:38:40 +0000
commit0d8207c29236bf731f7d3bad189beb3a1e1b1d0c (patch)
treed7cb3a14a5c3b9ce77f299b24502204318993913 /src/Sema.zig
parent269c1ae649017836f15313d1d4977402be11eed5 (diff)
downloadzig-0d8207c29236bf731f7d3bad189beb3a1e1b1d0c.tar.gz
zig-0d8207c29236bf731f7d3bad189beb3a1e1b1d0c.zip
Zcu: refactor Decl.analysis field
* Functions failing codegen now set this failure on the function analysis state. Decl analysis `codegen_failure` is reserved for failures generating constant values. * `liveness_failure` is consolidated into `codegen_failure`, as we do not need to distinguish these, and Liveness.Verify is just a debugging feature anyway. * `sema_failure_retryable` and `codegen_failure_retryable` are removed. Instead, retryable failures are recorded in the new `Zcu.retryable_failures` list. On an incremental update, this list is flushed, and all elements are marked as outdated so that we re-attempt analysis and code generation. Also remove the `generation` fields from `Zcu` and `Decl` as these are not needed by our new strategy for incremental updates.
Diffstat (limited to 'src/Sema.zig')
-rw-r--r--src/Sema.zig7
1 files changed, 0 insertions, 7 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index 0f604d2236..df77862311 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -2583,7 +2583,6 @@ fn failWithOwnedErrorMsg(sema: *Sema, block: ?*Block, err_msg: *Module.ErrorMsg)
ip.funcAnalysis(sema.owner_func_index).state = .sema_failure;
} else {
sema.owner_decl.analysis = .sema_failure;
- sema.owner_decl.generation = mod.generation;
}
if (sema.func_index != .none) {
ip.funcAnalysis(sema.func_index).state = .sema_failure;
@@ -9468,7 +9467,6 @@ fn funcCommon(
.inferred_error_set = inferred_error_set,
.generic_owner = sema.generic_owner,
.comptime_args = sema.comptime_args,
- .generation = mod.generation,
});
return finishFunc(
sema,
@@ -25957,7 +25955,6 @@ fn zirBuiltinExtern(
new_decl.has_tv = true;
new_decl.owns_tv = true;
new_decl.analysis = .complete;
- new_decl.generation = mod.generation;
try sema.ensureDeclAnalyzed(new_decl_index);
@@ -36215,10 +36212,8 @@ pub fn resolveTypeFieldsStruct(
.file_failure,
.dependency_failure,
.sema_failure,
- .sema_failure_retryable,
=> {
sema.owner_decl.analysis = .dependency_failure;
- sema.owner_decl.generation = mod.generation;
return error.AnalysisFail;
},
else => {},
@@ -36274,10 +36269,8 @@ pub fn resolveTypeFieldsUnion(sema: *Sema, ty: Type, union_type: InternPool.Key.
.file_failure,
.dependency_failure,
.sema_failure,
- .sema_failure_retryable,
=> {
sema.owner_decl.analysis = .dependency_failure;
- sema.owner_decl.generation = mod.generation;
return error.AnalysisFail;
},
else => {},