aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJonathan Marler <johnnymarler@gmail.com>2021-01-03 13:49:51 -0700
committerAndrew Kelley <andrew@ziglang.org>2021-01-07 23:49:22 -0800
commit31802c6c68a98bdbe34766d3cfdaf65b782851da (patch)
tree88ea8704da9344e62347bee9b064d4c42cfdec83 /src
parenta9b505fa7774e2e8451bedfa7bea27d7227572e7 (diff)
downloadzig-31802c6c68a98bdbe34766d3cfdaf65b782851da.tar.gz
zig-31802c6c68a98bdbe34766d3cfdaf65b782851da.zip
remove z/Z format specifiers
Zig's format system is flexible enough to add custom formatters. This PR removes the new z/Z format specifiers that were added for printing Zig identifiers and replaces them with custom formatters.
Diffstat (limited to 'src')
-rw-r--r--src/Compilation.zig44
-rw-r--r--src/codegen/c.zig4
-rw-r--r--src/translate_c.zig7
-rw-r--r--src/value.zig4
-rw-r--r--src/zir.zig8
5 files changed, 34 insertions, 33 deletions
diff --git a/src/Compilation.zig b/src/Compilation.zig
index a81926bf19..75b9ac7520 100644
--- a/src/Compilation.zig
+++ b/src/Compilation.zig
@@ -2703,27 +2703,27 @@ pub fn generateBuiltinZigSource(comp: *Compilation, allocator: *Allocator) ![]u8
\\pub const arch = Target.current.cpu.arch;
\\/// Deprecated
\\pub const endian = Target.current.cpu.arch.endian();
- \\pub const output_mode = OutputMode.{z};
- \\pub const link_mode = LinkMode.{z};
+ \\pub const output_mode = OutputMode.{};
+ \\pub const link_mode = LinkMode.{};
\\pub const is_test = {};
\\pub const single_threaded = {};
- \\pub const abi = Abi.{z};
+ \\pub const abi = Abi.{};
\\pub const cpu: Cpu = Cpu{{
- \\ .arch = .{z},
- \\ .model = &Target.{z}.cpu.{z},
- \\ .features = Target.{z}.featureSet(&[_]Target.{z}.Feature{{
+ \\ .arch = .{},
+ \\ .model = &Target.{}.cpu.{},
+ \\ .features = Target.{}.featureSet(&[_]Target.{}.Feature{{
\\
, .{
- @tagName(comp.bin_file.options.output_mode),
- @tagName(comp.bin_file.options.link_mode),
+ std.zig.fmtId(@tagName(comp.bin_file.options.output_mode)),
+ std.zig.fmtId(@tagName(comp.bin_file.options.link_mode)),
comp.bin_file.options.is_test,
comp.bin_file.options.single_threaded,
- @tagName(target.abi),
- @tagName(target.cpu.arch),
- generic_arch_name,
- target.cpu.model.name,
- generic_arch_name,
- generic_arch_name,
+ std.zig.fmtId(@tagName(target.abi)),
+ std.zig.fmtId(@tagName(target.cpu.arch)),
+ std.zig.fmtId(generic_arch_name),
+ std.zig.fmtId(target.cpu.model.name),
+ std.zig.fmtId(generic_arch_name),
+ std.zig.fmtId(generic_arch_name),
});
for (target.cpu.arch.allFeaturesList()) |feature, index_usize| {
@@ -2742,10 +2742,10 @@ pub fn generateBuiltinZigSource(comp: *Compilation, allocator: *Allocator) ![]u8
\\ }}),
\\}};
\\pub const os = Os{{
- \\ .tag = .{z},
+ \\ .tag = .{},
\\ .version_range = .{{
,
- .{@tagName(target.os.tag)},
+ .{std.zig.fmtId(@tagName(target.os.tag))},
);
switch (target.os.getVersionRange()) {
@@ -2828,8 +2828,8 @@ pub fn generateBuiltinZigSource(comp: *Compilation, allocator: *Allocator) ![]u8
(comp.bin_file.options.skip_linker_dependencies and comp.bin_file.options.parent_compilation_link_libc);
try buffer.writer().print(
- \\pub const object_format = ObjectFormat.{z};
- \\pub const mode = Mode.{z};
+ \\pub const object_format = ObjectFormat.{};
+ \\pub const mode = Mode.{};
\\pub const link_libc = {};
\\pub const link_libcpp = {};
\\pub const have_error_return_tracing = {};
@@ -2837,11 +2837,11 @@ pub fn generateBuiltinZigSource(comp: *Compilation, allocator: *Allocator) ![]u8
\\pub const position_independent_code = {};
\\pub const position_independent_executable = {};
\\pub const strip_debug_info = {};
- \\pub const code_model = CodeModel.{z};
+ \\pub const code_model = CodeModel.{};
\\
, .{
- @tagName(comp.bin_file.options.object_format),
- @tagName(comp.bin_file.options.optimize_mode),
+ std.zig.fmtId(@tagName(comp.bin_file.options.object_format)),
+ std.zig.fmtId(@tagName(comp.bin_file.options.optimize_mode)),
link_libc,
comp.bin_file.options.link_libcpp,
comp.bin_file.options.error_return_tracing,
@@ -2849,7 +2849,7 @@ pub fn generateBuiltinZigSource(comp: *Compilation, allocator: *Allocator) ![]u8
comp.bin_file.options.pic,
comp.bin_file.options.pie,
comp.bin_file.options.strip,
- @tagName(comp.bin_file.options.machine_code_model),
+ std.zig.fmtId(@tagName(comp.bin_file.options.machine_code_model)),
});
if (comp.bin_file.options.is_test) {
diff --git a/src/codegen/c.zig b/src/codegen/c.zig
index 3de79e2a3d..8c85f482fd 100644
--- a/src/codegen/c.zig
+++ b/src/codegen/c.zig
@@ -169,8 +169,8 @@ pub const DeclGen = struct {
.undef, .empty_struct_value, .empty_array => try writer.writeAll("{}"),
.bytes => {
const bytes = val.castTag(.bytes).?.data;
- // TODO: make our own C string escape instead of using {Z}
- try writer.print("\"{Z}\"", .{bytes});
+ // TODO: make our own C string escape instead of using std.zig.fmtEscapes
+ try writer.print("\"{}\"", .{std.zig.fmtEscapes(bytes)});
},
else => {
// Fall back to generic implementation.
diff --git a/src/translate_c.zig b/src/translate_c.zig
index 8df7963267..baca8c12de 100644
--- a/src/translate_c.zig
+++ b/src/translate_c.zig
@@ -2031,7 +2031,7 @@ fn transStringLiteral(
const bytes_ptr = stmt.getString_bytes_begin_size(&len);
const str = bytes_ptr[0..len];
- const token = try appendTokenFmt(rp.c, .StringLiteral, "\"{Z}\"", .{str});
+ const token = try appendTokenFmt(rp.c, .StringLiteral, "\"{}\"", .{std.zig.fmtEscapes(str)});
const node = try rp.c.arena.create(ast.Node.OneToken);
node.* = .{
.base = .{ .tag = .StringLiteral },
@@ -2944,7 +2944,8 @@ fn transCharLiteral(
if (val > 255)
break :blk try transCreateNodeInt(rp.c, val);
}
- const token = try appendTokenFmt(rp.c, .CharLiteral, "'{Z}'", .{@intCast(u8, val)});
+ const val_array = [_]u8 { @intCast(u8, val) };
+ const token = try appendTokenFmt(rp.c, .CharLiteral, "'{}'", .{std.zig.fmtEscapes(&val_array)});
const node = try rp.c.arena.create(ast.Node.OneToken);
node.* = .{
.base = .{ .tag = .CharLiteral },
@@ -5315,7 +5316,7 @@ fn isZigPrimitiveType(name: []const u8) bool {
}
fn appendIdentifier(c: *Context, name: []const u8) !ast.TokenIndex {
- return appendTokenFmt(c, .Identifier, "{z}", .{name});
+ return appendTokenFmt(c, .Identifier, "{}", .{std.zig.fmtId(name)});
}
fn transCreateNodeIdentifier(c: *Context, name: []const u8) !*ast.Node {
diff --git a/src/value.zig b/src/value.zig
index 11c385b446..036e3b71bf 100644
--- a/src/value.zig
+++ b/src/value.zig
@@ -491,8 +491,8 @@ pub const Value = extern union {
val = elem_ptr.array_ptr;
},
.empty_array => return out_stream.writeAll(".{}"),
- .enum_literal => return out_stream.print(".{z}", .{self.castTag(.enum_literal).?.data}),
- .bytes => return out_stream.print("\"{Z}\"", .{self.castTag(.bytes).?.data}),
+ .enum_literal => return out_stream.print(".{}", .{std.zig.fmtId(self.castTag(.enum_literal).?.data)}),
+ .bytes => return out_stream.print("\"{}\"", .{std.zig.fmtEscapes(self.castTag(.bytes).?.data)}),
.repeated => {
try out_stream.writeAll("(repeated) ");
val = val.castTag(.repeated).?.data;
diff --git a/src/zir.zig b/src/zir.zig
index b3d004f1dc..246e9dda1f 100644
--- a/src/zir.zig
+++ b/src/zir.zig
@@ -1308,17 +1308,17 @@ const Writer = struct {
try stream.writeByte('}');
},
bool => return stream.writeByte("01"[@boolToInt(param)]),
- []u8, []const u8 => return stream.print("\"{Z}\"", .{param}),
+ []u8, []const u8 => return stream.print("\"{}\"", .{std.zig.fmtEscapes(param)}),
BigIntConst, usize => return stream.print("{}", .{param}),
TypedValue => return stream.print("TypedValue{{ .ty = {}, .val = {}}}", .{ param.ty, param.val }),
*IrModule.Decl => return stream.print("Decl({s})", .{param.name}),
*Inst.Block => {
const name = self.block_table.get(param).?;
- return stream.print("\"{Z}\"", .{name});
+ return stream.print("\"{}\"", .{std.zig.fmtEscapes(name)});
},
*Inst.Loop => {
const name = self.loop_table.get(param).?;
- return stream.print("\"{Z}\"", .{name});
+ return stream.print("\"{}\"", .{std.zig.fmtEscapes(name)});
},
[][]const u8 => {
try stream.writeByte('[');
@@ -1326,7 +1326,7 @@ const Writer = struct {
if (i != 0) {
try stream.writeAll(", ");
}
- try stream.print("\"{Z}\"", .{str});
+ try stream.print("\"{}\"", .{std.zig.fmtEscapes(str)});
}
try stream.writeByte(']');
},