From 9fb8d21a019deab308a63f7959dab2ee05385969 Mon Sep 17 00:00:00 2001 From: Veikka Tuominen Date: Tue, 19 Jul 2022 12:25:47 +0300 Subject: [PATCH] AstGen: add error for fields in opaque types --- src/AstGen.zig | 5 ++++- .../{stage1/obj => }/opaque_type_with_field.zig | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) rename test/cases/compile_errors/{stage1/obj => }/opaque_type_with_field.zig (65%) diff --git a/src/AstGen.zig b/src/AstGen.zig index c4121e0a20..af0fac04f1 100644 --- a/src/AstGen.zig +++ b/src/AstGen.zig @@ -4724,7 +4724,10 @@ fn containerDecl( defer wip_members.deinit(); for (container_decl.ast.members) |member_node| { - _ = try containerMember(gz, &namespace.base, &wip_members, member_node); + const res = try containerMember(gz, &namespace.base, &wip_members, member_node); + if (res == .field) { + return astgen.failNode(member_node, "opaque types cannot have fields", .{}); + } } try gz.setOpaque(decl_inst, .{ diff --git a/test/cases/compile_errors/stage1/obj/opaque_type_with_field.zig b/test/cases/compile_errors/opaque_type_with_field.zig similarity index 65% rename from test/cases/compile_errors/stage1/obj/opaque_type_with_field.zig rename to test/cases/compile_errors/opaque_type_with_field.zig index 0b87091de9..6cfa67e5ec 100644 --- a/test/cases/compile_errors/stage1/obj/opaque_type_with_field.zig +++ b/test/cases/compile_errors/opaque_type_with_field.zig @@ -5,7 +5,7 @@ export fn entry() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:1:25: error: opaque types cannot have fields +// :1:25: error: opaque types cannot have fields