From bd32a0f3db2d03749e7aef22cbc2aa6f85b689d1 Mon Sep 17 00:00:00 2001 From: William Sengir Date: Wed, 11 May 2022 03:34:44 -0700 Subject: Sema: add "declared here" note to `zirErrSetCast` --- src/Sema.zig | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/Sema.zig b/src/Sema.zig index 2cc9b82410..d12b85e097 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -14215,12 +14215,18 @@ fn zirErrSetCast(sema: *Sema, block: *Block, extended: Zir.Inst.Extended.InstDat if (!dest_ty.isAnyError()) { const error_name = val.castTag(.@"error").?.data.name; if (!dest_ty.errorSetHasField(error_name)) { - return sema.fail( - block, - src, - "error.{s} not a member of error set '{}'", - .{ error_name, dest_ty.fmt(sema.mod) }, - ); + const msg = msg: { + const msg = try sema.errMsg( + block, + src, + "error.{s} not a member of error set '{}'", + .{ error_name, dest_ty.fmt(sema.mod) }, + ); + errdefer msg.destroy(sema.gpa); + try sema.addDeclaredHereNote(msg, dest_ty); + break :msg msg; + }; + return sema.failWithOwnedErrorMsg(block, msg); } } -- cgit v1.2.3