aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Sema.zig20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/Sema.zig b/src/Sema.zig
index aa6dab0b2b..d13770940e 100644
--- a/src/Sema.zig
+++ b/src/Sema.zig
@@ -5241,15 +5241,19 @@ fn failWithBadMemberAccess(
.Enum => "enum",
else => unreachable,
};
- if (agg_ty.getOwnerDeclOrNull(mod)) |some| if (mod.declIsRoot(some)) {
- return sema.fail(block, field_src, "root struct of file '{}' has no member named '{}'", .{
- agg_ty.fmt(mod), field_name.fmt(&mod.intern_pool),
- });
- };
const msg = msg: {
- const msg = try sema.errMsg(block, field_src, "{s} '{}' has no member named '{}'", .{
- kw_name, agg_ty.fmt(mod), field_name.fmt(&mod.intern_pool),
- });
+ const msg = blk: {
+ if (agg_ty.getOwnerDeclOrNull(mod)) |some| if (mod.declIsRoot(some)) {
+ break :blk try sema.errMsg(block, field_src, "root struct of file '{}' has no member named '{}'", .{
+ agg_ty.fmt(mod), field_name.fmt(&mod.intern_pool),
+ });
+ };
+
+ break :blk try sema.errMsg(block, field_src, "{s} '{}' has no member named '{}'", .{
+ kw_name, agg_ty.fmt(mod), field_name.fmt(&mod.intern_pool),
+ });
+ };
+
errdefer msg.destroy(sema.gpa);
try sema.addDeclaredHereNote(msg, agg_ty);
break :msg msg;