From d1a4bdb1f375b6aa737f1c02c346899336465e00 Mon Sep 17 00:00:00 2001 From: Martin Wickham Date: Fri, 1 Oct 2021 00:43:39 -0500 Subject: [PATCH] Declare generic fn dependency earlier to keep invariant --- src/Sema.zig | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Sema.zig b/src/Sema.zig index 0aa8a28664..beeda48fe5 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -3279,6 +3279,11 @@ fn analyzeCall( namespace.anon_decls.putAssumeCapacityNoClobber(new_decl, {}); + // The generic function Decl is guaranteed to be the first dependency + // of each of its instantiations. + assert(new_decl.dependencies.keys().len == 0); + try mod.declareDeclDependency(new_decl, module_fn.owner_decl); + var new_decl_arena = std.heap.ArenaAllocator.init(sema.gpa); errdefer new_decl_arena.deinit(); @@ -3411,11 +3416,6 @@ fn analyzeCall( }); assert(!new_decl.ty.fnInfo().is_generic); - // The generic function Decl is guaranteed to be the first dependency - // of each of its instantiations. - assert(new_decl.dependencies.keys().len == 0); - try mod.declareDeclDependency(new_decl, module_fn.owner_decl); - // Queue up a `codegen_func` work item for the new Fn. The `comptime_args` field // will be populated, ensuring it will have `analyzeBody` called with the ZIR // parameters mapped appropriately.