Commit febc7d3cd6

Veikka Tuominen <git@vexu.eu>
2022-05-31 15:21:36
Sema: take `dbg_stmt` into account in `zirResolveInferredAlloc`
1 parent 83beed0
Changed files (2)
src
test
behavior
src/Sema.zig
@@ -2976,7 +2976,7 @@ fn zirResolveInferredAlloc(sema: *Sema, block: *Block, inst: Zir.Inst.Index) Com
 
                 // Even though we reuse the constant instruction, we still remove it from the
                 // block so that codegen does not see it.
-                block.instructions.shrinkRetainingCapacity(block.instructions.items.len - 3);
+                block.instructions.shrinkRetainingCapacity(search_index);
                 sema.air_values.items[value_index] = try Value.Tag.decl_ref.create(sema.arena, new_decl_index);
                 // if bitcast ty ref needs to be made const, make_ptr_const
                 // ZIR handles it later, so we can just use the ty ref here.
test/behavior/basic.zig
@@ -977,3 +977,13 @@ test "weird array and tuple initializations" {
         .b = if (a) .{ .e = .a } else .{ .e = .b },
     };
 }
+
+test "array type comes from generic function" {
+    const S = struct {
+        fn A() type {
+            return struct { a: u8 = 0 };
+        }
+    };
+    const args = [_]S.A(){.{}};
+    _ = args;
+}