diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2023-07-17 17:47:59 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2023-07-18 19:02:06 -0700 |
| commit | 3f2a4720b1ef057215c8240b3a377c523ee63e94 (patch) | |
| tree | afd14ff8780da15e9b240dc2612d86083b49a81a /src/Module.zig | |
| parent | b03d34429d059dc3f6056d7f780dc623c96523b4 (diff) | |
| download | zig-3f2a4720b1ef057215c8240b3a377c523ee63e94.tar.gz zig-3f2a4720b1ef057215c8240b3a377c523ee63e94.zip | |
compiler: fix branch regressions
* getOwnedFunctionIndex no longer checks if the value is actually a
function.
* The callsites to `intern` that I added want to avoid the `getCoerced`
call, so I added `intern2`.
* Adding to inferred error sets should not happen if the destination
error set is not the inferred error set of the current Sema instance.
* adhoc_inferred_error_set_type can be seen by the backend. Treat it
like anyerror.
Diffstat (limited to 'src/Module.zig')
| -rw-r--r-- | src/Module.zig | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/Module.zig b/src/Module.zig index 45536547d8..d9ee3a57ad 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -751,6 +751,7 @@ pub const Decl = struct { }; } + /// This returns an InternPool.Index even when the value is not a function. pub fn getOwnedFunctionIndex(decl: Decl) InternPool.Index { return if (decl.owns_tv) decl.val.toIntern() else .none; } @@ -4978,7 +4979,7 @@ fn scanDecl(iter: *ScanDeclIter, decl_sub_index: usize, flags: u4) Allocator.Err decl.has_align = has_align; decl.has_linksection_or_addrspace = has_linksection_or_addrspace; decl.zir_decl_index = @as(u32, @intCast(decl_sub_index)); - if (decl.getOwnedFunctionIndex() != .none) { + if (decl.getOwnedFunction(mod) != null) { switch (comp.bin_file.tag) { .coff, .elf, .macho, .plan9 => { // TODO Look into detecting when this would be unnecessary by storing enough state |
