diff options
Diffstat (limited to 'src/Module.zig')
| -rw-r--r-- | src/Module.zig | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/Module.zig b/src/Module.zig index 0666936f1f..71e2bd8d7c 100644 --- a/src/Module.zig +++ b/src/Module.zig @@ -3904,7 +3904,7 @@ fn semaDecl(mod: *Module, decl: *Decl) !bool { // Note this resolves the type of the Decl, not the value; if this Decl // is a struct, for example, this resolves `type` (which needs no resolution), // not the struct itself. - try sema.resolveTypeFully(&block_scope, src, decl_tv.ty); + try sema.resolveTypeLayout(&block_scope, src, decl_tv.ty); const decl_arena_state = try decl_arena_allocator.create(std.heap.ArenaAllocator.State); @@ -4049,6 +4049,10 @@ fn semaDecl(mod: *Module, decl: *Decl) !bool { if (has_runtime_bits) { log.debug("queue linker work for {*} ({s})", .{ decl, decl.name }); + // Needed for codegen_decl which will call updateDecl and then the + // codegen backend wants full access to the Decl Type. + try sema.resolveTypeFully(&block_scope, src, decl.ty); + try mod.comp.bin_file.allocateDeclIndexes(decl); try mod.comp.work_queue.writeItem(.{ .codegen_decl = decl }); |
