aboutsummaryrefslogtreecommitdiff
path: root/src/Module.zig
diff options
context:
space:
mode:
authorVeikka Tuominen <git@vexu.eu>2022-11-16 12:56:51 +0200
committerGitHub <noreply@github.com>2022-11-16 12:56:51 +0200
commiteed82ca287afb04261c94458efd624758bbc6669 (patch)
tree51b15dded9d30fcfd3ba413e3ae0a53b4c2bd8e5 /src/Module.zig
parenta93fa29d8f808da58371a58f0a7b8ecd462584b3 (diff)
parent28cbe5e92a36c81177dbcd2f33fc792468c08304 (diff)
downloadzig-eed82ca287afb04261c94458efd624758bbc6669.tar.gz
zig-eed82ca287afb04261c94458efd624758bbc6669.zip
Merge pull request #13558 from Vexu/stage2-fixes
Stage2 bug fixes to get third party projects building
Diffstat (limited to 'src/Module.zig')
-rw-r--r--src/Module.zig16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/Module.zig b/src/Module.zig
index 3f061491c1..af29a591cc 100644
--- a/src/Module.zig
+++ b/src/Module.zig
@@ -6431,13 +6431,27 @@ pub fn processExports(mod: *Module) !void {
}
}
-pub fn populateTestFunctions(mod: *Module) !void {
+pub fn populateTestFunctions(
+ mod: *Module,
+ main_progress_node: *std.Progress.Node,
+) !void {
const gpa = mod.gpa;
const builtin_pkg = mod.main_pkg.table.get("builtin").?;
const builtin_file = (mod.importPkg(builtin_pkg) catch unreachable).file;
const root_decl = mod.declPtr(builtin_file.root_decl.unwrap().?);
const builtin_namespace = root_decl.src_namespace;
const decl_index = builtin_namespace.decls.getKeyAdapted(@as([]const u8, "test_functions"), DeclAdapter{ .mod = mod }).?;
+ {
+ // We have to call `ensureDeclAnalyzed` here in case `builtin.test_functions`
+ // was not referenced by start code.
+ mod.sema_prog_node = main_progress_node.start("Semantic Analysis", 0);
+ mod.sema_prog_node.activate();
+ defer {
+ mod.sema_prog_node.end();
+ mod.sema_prog_node = undefined;
+ }
+ try mod.ensureDeclAnalyzed(decl_index);
+ }
const decl = mod.declPtr(decl_index);
var buf: Type.SlicePtrFieldTypeBuffer = undefined;
const tmp_test_fn_ty = decl.ty.slicePtrFieldType(&buf).elemType();