From 943176bbfcf3125451fa64e082ee357c28e70413 Mon Sep 17 00:00:00 2001 From: Will Lillis Date: Mon, 23 Sep 2024 16:04:24 -0400 Subject: fix: Add error note when attempt is made to destructure error union (#21491) closes #21417 --- src/Sema.zig | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/Sema.zig b/src/Sema.zig index 14a4061b00..40556d2136 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -5428,6 +5428,9 @@ fn zirValidateDestructure(sema: *Sema, block: *Block, inst: Zir.Inst.Index) Comp const msg = try sema.errMsg(src, "type '{}' cannot be destructured", .{operand_ty.fmt(pt)}); errdefer msg.destroy(sema.gpa); try sema.errNote(destructure_src, msg, "result destructured here", .{}); + if (operand_ty.zigTypeTag(pt.zcu) == .error_union) { + try sema.errNote(src, msg, "consider using 'try', 'catch', or 'if'", .{}); + } break :msg msg; }); } -- cgit v1.2.3