commit 1f475de852daddbf88e8165cdaef492e616ce3fe (tree)
parent 5259d11e3b75b9b910fa1b0a479aedb702e256f6
Author: Veikka Tuominen <git@vexu.eu>
Date: Sat, 21 Jan 2023 23:17:02 +0200
Sema: fix unwrapping null when reporting error on member access
Closes #14399
Diffstat:
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/Sema.zig b/src/Sema.zig
@@ -4643,11 +4643,11 @@ fn failWithBadMemberAccess(
.Enum => "enum",
else => unreachable,
};
- if (sema.mod.declIsRoot(agg_ty.getOwnerDecl())) {
+ if (agg_ty.getOwnerDeclOrNull()) |some| if (sema.mod.declIsRoot(some)) {
return sema.fail(block, field_src, "root struct of file '{}' has no member named '{s}'", .{
agg_ty.fmt(sema.mod), field_name,
});
- }
+ };
const msg = msg: {
const msg = try sema.errMsg(block, field_src, "{s} '{}' has no member named '{s}'", .{
kw_name, agg_ty.fmt(sema.mod), field_name,
diff --git a/test/cases/compile_errors/bad_member_access_on_tuple.zig b/test/cases/compile_errors/bad_member_access_on_tuple.zig
@@ -0,0 +1,9 @@
+comptime {
+ _ = @TypeOf(.{}).is_optional;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :2:21: error: struct '@TypeOf(.{})' has no member named 'is_optional'