From 28d59decc157620157d0c1678600670becf50c73 Mon Sep 17 00:00:00 2001 From: dave caruso Date: Sat, 27 Jul 2024 05:45:08 -0700 Subject: [PATCH] fix: provide array result type to sema --- CHANGELOG.md | 1 + src/core/Sema.zig | 2 +- src/core/Transform.zig | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 187b88bd7f4648e6784679b41e318bb9f3577b78..66418ffbff568572d436dfeef86a4ef399602b3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## 0.1.6 - fix: crash when printing unused struct declaration error +- fix: provide array result type to sema ## 0.1.5 diff --git a/src/core/Sema.zig b/src/core/Sema.zig index 47f151799a1232a592c63ddce6bee213e2b3e2c1..75dd0f374d8b16c23e622a60433488b000fc6880 100644 --- a/src/core/Sema.zig +++ b/src/core/Sema.zig @@ -875,7 +875,7 @@ fn analyzeCodeInner(s: *Sema, in: Teg.Inst.Index) Error!Air.Inst.Ref { .array_init => { const node: Teg.ArrayInit = s.code.instPayload(.array_init, in); - assert(node.list.len > 0); + assert(node.list.len > 0 or node.type_hint.unwrap() != null); const scratch = try s.scratch.reserve(s.arena, Air.Inst.Ref, node.list.len); defer scratch.deinit(); diff --git a/src/core/Transform.zig b/src/core/Transform.zig index 64e88f321ae0557681f065b77c091f2eba72d152..8a7580558dd07b0a3bd85ff8c32b0ae8f47ec644 100644 --- a/src/core/Transform.zig +++ b/src/core/Transform.zig @@ -1394,7 +1394,7 @@ fn transformExpression( return try t.addRef(.array_init, .{ .src_node = ctx.nodeOffset(node), .extra_index = try t.extra.append(t.gpa, Teg.ArrayInit, .{ - .type_hint = .none, + .type_hint = if (array_type) |ty| ty.toOptional() else .none, .list = items, }), }); -- 2.54.0