zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit bd32a0f3db2d03749e7aef22cbc2aa6f85b689d1 (tree)
parent 6608fa135321c2caa989a4e0357307874c644b6b
Author: William Sengir <william@sengir.com>
Date:   Wed, 11 May 2022 03:34:44 -0700

Sema: add "declared here" note to `zirErrSetCast`

Diffstat:
Msrc/Sema.zig | 18++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)

diff --git 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); } }