| ... | @@ -8244,10 +8244,13 @@ fn zirArrayInit(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index, is_ref: | ... | @@ -8244,10 +8244,13 @@ fn zirArrayInit(sema: *Sema, block: *Scope.Block, inst: Zir.Inst.Index, is_ref: |
| 8244 | var anon_decl = try block.startAnonDecl(); | 8244 | var anon_decl = try block.startAnonDecl(); |
| 8245 | defer anon_decl.deinit(); | 8245 | defer anon_decl.deinit(); |
| 8246 | assert(!(resolved_args.len == 0)); | 8246 | assert(!(resolved_args.len == 0)); |
| 8247 | const final_ty = try Type.Tag.array.create(anon_decl.arena(), .{ .len = resolved_args.len, .elem_type = sema.typeOf(resolved_args[0]) }); | 8247 | const final_ty = try Type.Tag.array.create(anon_decl.arena(), .{ |
| | 8248 | .len = resolved_args.len, |
| | 8249 | .elem_type = try sema.typeOf(resolved_args[0]).copy(anon_decl.arena()), |
| | 8250 | }); |
| 8248 | const buf = try anon_decl.arena().alloc(Value, resolved_args.len); | 8251 | const buf = try anon_decl.arena().alloc(Value, resolved_args.len); |
| 8249 | for (resolved_args) |arg, i| { | 8252 | for (resolved_args) |arg, i| { |
| 8250 | buf[i] = (try sema.resolveMaybeUndefVal(block, src, arg)).?; | 8253 | buf[i] = try (try sema.resolveMaybeUndefVal(block, src, arg)).?.copy(anon_decl.arena()); |
| 8251 | } | 8254 | } |
| 8252 | | 8255 | |
| 8253 | const val = try Value.Tag.array.create(anon_decl.arena(), buf); | 8256 | const val = try Value.Tag.array.create(anon_decl.arena(), buf); |