Commit 9fb8d21a01

Veikka Tuominen <git@vexu.eu>
2022-07-19 11:25:47
AstGen: add error for fields in opaque types
1 parent 1705a21
Changed files (2)
src
test
cases
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, .{
test/cases/compile_errors/stage1/obj/opaque_type_with_field.zig → 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