Commit d1a4bdb1f3

Martin Wickham <spexguy070@gmail.com>
2021-10-01 07:43:39
Declare generic fn dependency earlier to keep invariant
1 parent f7c11ac
Changed files (1)
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.