Commit 3fcb4408a5
Changed files (2)
lib
std
zig
test
cases
compile_errors
lib/std/zig/AstGen.zig
@@ -5097,18 +5097,16 @@ fn structDeclInner(
const gpa = astgen.gpa;
const tree = astgen.tree;
- {
- const is_tuple = for (container_decl.ast.members) |member_node| {
+ is_tuple: {
+ const tuple_field_node = for (container_decl.ast.members) |member_node| {
const container_field = tree.fullContainerField(member_node) orelse continue;
- if (container_field.ast.tuple_like) break true;
- } else false;
+ if (container_field.ast.tuple_like) break member_node;
+ } else break :is_tuple;
- if (is_tuple) {
- if (node == 0) {
- return astgen.failTok(0, "file cannot be a tuple", .{});
- } else {
- return tupleDecl(gz, scope, node, container_decl, layout, backing_int_node);
- }
+ if (node == 0) {
+ return astgen.failNode(tuple_field_node, "file cannot be a tuple", .{});
+ } else {
+ return tupleDecl(gz, scope, node, container_decl, layout, backing_int_node);
}
}
test/cases/compile_errors/file_level_tuple_with_decls.zig
@@ -0,0 +1,7 @@
+const std = @import("std");
+
+u8,
+
+// error
+//
+// :3:1: error: file cannot be a tuple