From c8fa767f083e610840cef688b709783c5ad66acc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20=C3=85stholm?= Date: Sun, 7 Jan 2024 15:52:24 +0100 Subject: [PATCH] Work around stage1 not yet returning null-terminated `@typeInfo` strings These changes can be reverted the next time stage1 is updated. --- deps/aro/aro/Attribute.zig | 2 +- lib/std/enums.zig | 2 +- lib/std/io.zig | 2 +- lib/std/meta.zig | 4 ++-- src/value.zig | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/deps/aro/aro/Attribute.zig b/deps/aro/aro/Attribute.zig index 3a812ab7be..4fbc408126 100644 --- a/deps/aro/aro/Attribute.zig +++ b/deps/aro/aro/Attribute.zig @@ -645,7 +645,7 @@ pub const Arguments = blk: { var union_fields: [decls.len]ZigType.UnionField = undefined; for (decls, &union_fields) |decl, *field| { field.* = .{ - .name = decl.name, + .name = decl.name ++ "", .type = @field(attributes, decl.name), .alignment = 0, }; diff --git a/lib/std/enums.zig b/lib/std/enums.zig index 839781ffb7..872b752a40 100644 --- a/lib/std/enums.zig +++ b/lib/std/enums.zig @@ -14,7 +14,7 @@ pub fn EnumFieldStruct(comptime E: type, comptime Data: type, comptime field_def var fields: []const StructField = &[_]StructField{}; for (std.meta.fields(E)) |field| { fields = fields ++ &[_]StructField{.{ - .name = field.name, + .name = field.name ++ "", .type = Data, .default_value = if (field_default) |d| @as(?*const anyopaque, @ptrCast(&d)) else null, .is_comptime = false, diff --git a/lib/std/io.zig b/lib/std/io.zig index e19b2e0e16..912e834a75 100644 --- a/lib/std/io.zig +++ b/lib/std/io.zig @@ -635,7 +635,7 @@ pub fn PollFiles(comptime StreamEnum: type) type { var struct_fields: [enum_fields.len]std.builtin.Type.StructField = undefined; for (&struct_fields, enum_fields) |*struct_field, enum_field| { struct_field.* = .{ - .name = enum_field.name, + .name = enum_field.name ++ "", .type = fs.File, .default_value = null, .is_comptime = false, diff --git a/lib/std/meta.zig b/lib/std/meta.zig index 5531242e30..41b3ca291f 100644 --- a/lib/std/meta.zig +++ b/lib/std/meta.zig @@ -556,7 +556,7 @@ pub fn FieldEnum(comptime T: type) type { var decls = [_]std.builtin.Type.Declaration{}; inline for (field_infos, 0..) |field, i| { enumFields[i] = .{ - .name = field.name, + .name = field.name ++ "", .value = i, }; } @@ -628,7 +628,7 @@ pub fn DeclEnum(comptime T: type) type { var enumDecls: [fieldInfos.len]std.builtin.Type.EnumField = undefined; var decls = [_]std.builtin.Type.Declaration{}; inline for (fieldInfos, 0..) |field, i| { - enumDecls[i] = .{ .name = field.name, .value = i }; + enumDecls[i] = .{ .name = field.name ++ "", .value = i }; } return @Type(.{ .Enum = .{ diff --git a/src/value.zig b/src/value.zig index 45f603ed2d..896ca108a7 100644 --- a/src/value.zig +++ b/src/value.zig @@ -4050,7 +4050,7 @@ pub const Value = struct { const tags = @typeInfo(Tag).Enum.fields; var fields: [tags.len]std.builtin.Type.StructField = undefined; for (&fields, tags) |*field, t| field.* = .{ - .name = t.name, + .name = t.name ++ "", .type = *@field(Tag, t.name).Type(), .default_value = null, .is_comptime = false,