| ... | ... | @@ -1240,11 +1240,11 @@ fn semaCau(pt: Zcu.PerThread, cau_index: InternPool.Cau.Index) !SemaCauResult { |
| 1240 | 1240 | }; |
| 1241 | 1241 | } |
| 1242 | 1242 | |
| 1243 | | const nav_already_populated, const queue_linker_work, const resolve_type = switch (ip.indexToKey(decl_val.toIntern())) { |
| 1244 | | .func => |f| .{ f.owner_nav == nav_index, true, false }, |
| 1245 | | .variable => |v| .{ false, v.owner_nav == nav_index, true }, |
| 1246 | | .@"extern" => .{ false, false, false }, |
| 1247 | | else => .{ false, true, true }, |
| 1243 | const nav_already_populated, const queue_linker_work = switch (ip.indexToKey(decl_val.toIntern())) { |
| 1244 | .func => |f| .{ f.owner_nav == nav_index, true }, |
| 1245 | .variable => |v| .{ false, v.owner_nav == nav_index }, |
| 1246 | .@"extern" => .{ false, false }, |
| 1247 | else => .{ false, true }, |
| 1248 | 1248 | }; |
| 1249 | 1249 | |
| 1250 | 1250 | if (nav_already_populated) { |
| ... | ... | @@ -1317,16 +1317,7 @@ fn semaCau(pt: Zcu.PerThread, cau_index: InternPool.Cau.Index) !SemaCauResult { |
| 1317 | 1317 | queue_codegen: { |
| 1318 | 1318 | if (!queue_linker_work) break :queue_codegen; |
| 1319 | 1319 | |
| 1320 | | if (resolve_type) { |
| 1321 | | // Needed for codegen_nav which will call updateDecl and then the |
| 1322 | | // codegen backend wants full access to the Decl Type. |
| 1323 | | // We also need this for the `isFnOrHasRuntimeBits` check below. |
| 1324 | | // TODO: we could make the language more lenient by deferring this work |
| 1325 | | // to the `codegen_nav` job. |
| 1326 | | try decl_ty.resolveFully(pt); |
| 1327 | | } |
| 1328 | | |
| 1329 | | if (!resolve_type or !decl_ty.hasRuntimeBits(zcu)) { |
| 1320 | if (!try decl_ty.hasRuntimeBitsSema(pt)) { |
| 1330 | 1321 | if (zcu.comp.config.use_llvm) break :queue_codegen; |
| 1331 | 1322 | if (file.mod.strip) break :queue_codegen; |
| 1332 | 1323 | } |