Sema: add "declared here" note to zirErrSetCast

This commit is contained in:
William Sengir 2022-05-11 03:34:44 -07:00
parent 6608fa1353
commit bd32a0f3db
No known key found for this signature in database
GPG Key ID: 83492BF162833F2A

View File

@ -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);
}
}