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