authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2023-01-21 23:17:02+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2023-01-22 01:04:20+02:00
log1f475de852daddbf88e8165cdaef492e616ce3fe
tree61282a0fe27a265078700bd43679018834b3d1e8
parent5259d11e3b75b9b910fa1b0a479aedb702e256f6

Sema: fix unwrapping null when reporting error on member access

Closes #14399

2 files changed, 11 insertions(+), 2 deletions(-)

src/Sema.zig+2-2
...@@ -4643,11 +4643,11 @@ fn failWithBadMemberAccess(...@@ -4643,11 +4643,11 @@ fn failWithBadMemberAccess(
4643 .Enum => "enum",4643 .Enum => "enum",
4644 else => unreachable,4644 else => unreachable,
4645 };4645 };
4646 if (sema.mod.declIsRoot(agg_ty.getOwnerDecl())) {4646 if (agg_ty.getOwnerDeclOrNull()) |some| if (sema.mod.declIsRoot(some)) {
4647 return sema.fail(block, field_src, "root struct of file '{}' has no member named '{s}'", .{4647 return sema.fail(block, field_src, "root struct of file '{}' has no member named '{s}'", .{
4648 agg_ty.fmt(sema.mod), field_name,4648 agg_ty.fmt(sema.mod), field_name,
4649 });4649 });
4650 }4650 };
4651 const msg = msg: {4651 const msg = msg: {
4652 const msg = try sema.errMsg(block, field_src, "{s} '{}' has no member named '{s}'", .{4652 const msg = try sema.errMsg(block, field_src, "{s} '{}' has no member named '{s}'", .{
4653 kw_name, agg_ty.fmt(sema.mod), field_name,4653 kw_name, agg_ty.fmt(sema.mod), field_name,
test/cases/compile_errors/bad_member_access_on_tuple.zig created+9
...@@ -0,0 +1,9 @@
1comptime {
2 _ = @TypeOf(.{}).is_optional;
3}
4
5// error
6// backend=stage2
7// target=native
8//
9// :2:21: error: struct '@TypeOf(.{})' has no member named 'is_optional'