diff options
| author | mlugg <mlugg@mlugg.co.uk> | 2024-02-04 17:27:41 +0000 |
|---|---|---|
| committer | mlugg <mlugg@mlugg.co.uk> | 2024-02-04 18:38:40 +0000 |
| commit | 0d8207c29236bf731f7d3bad189beb3a1e1b1d0c (patch) | |
| tree | d7cb3a14a5c3b9ce77f299b24502204318993913 /src/Sema.zig | |
| parent | 269c1ae649017836f15313d1d4977402be11eed5 (diff) | |
| download | zig-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.zig | 7 |
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 => {}, |
