mirror of
https://github.com/ziglang/zig.git
synced 2024-11-30 00:52:52 +00:00
0fe3fd01dd
The compiler actually doesn't need any functional changes for this: Sema does reification based on the tag indices of `std.builtin.Type` already! So, no zig1.wasm update is necessary. This change is necessary to disallow name clashes between fields and decls on a type, which is a prerequisite of #9938.
34 lines
838 B
Zig
34 lines
838 B
Zig
const Writer = struct {
|
|
pub fn printValue(self: *Writer, value: anytype) !void {
|
|
switch (@typeInfo(@TypeOf(value))) {
|
|
.int => {
|
|
return self.writeInt(value);
|
|
},
|
|
.float => {
|
|
return self.writeFloat(value);
|
|
},
|
|
.pointer => {
|
|
return self.write(value);
|
|
},
|
|
else => {
|
|
@compileError("Unable to print type '" ++ @typeName(@TypeOf(value)) ++ "'");
|
|
},
|
|
}
|
|
}
|
|
|
|
fn write(self: *Writer, value: []const u8) !void {
|
|
_ = self;
|
|
_ = value;
|
|
}
|
|
fn writeInt(self: *Writer, value: anytype) !void {
|
|
_ = self;
|
|
_ = value;
|
|
}
|
|
fn writeFloat(self: *Writer, value: anytype) !void {
|
|
_ = self;
|
|
_ = value;
|
|
}
|
|
};
|
|
|
|
// syntax
|