From 13c6eb0d71b253cc55a667e33dbdd4932f3710f1 Mon Sep 17 00:00:00 2001 From: Mason Remaley Date: Mon, 4 Nov 2024 14:03:36 -0800 Subject: compiler,std: implement ZON support This commit allows using ZON (Zig Object Notation) in a few ways. * `@import` can be used to load ZON at comptime and convert it to a normal Zig value. In this case, `@import` must have a result type. * `std.zon.parse` can be used to parse ZON at runtime, akin to the parsing logic in `std.json`. * `std.zon.stringify` can be used to convert arbitrary data structures to ZON at runtime, again akin to `std.json`. --- test/cases/compile_errors/@import_zon_void.zig | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 test/cases/compile_errors/@import_zon_void.zig (limited to 'test/cases/compile_errors/@import_zon_void.zig') diff --git a/test/cases/compile_errors/@import_zon_void.zig b/test/cases/compile_errors/@import_zon_void.zig new file mode 100644 index 0000000000..3f4f2e5481 --- /dev/null +++ b/test/cases/compile_errors/@import_zon_void.zig @@ -0,0 +1,10 @@ +export fn entry() void { + const f: union { foo: void } = @import("zon/void.zon"); + _ = f; +} + +// error +// imports=zon/void.zon +// +// void.zon:1:11: error: void literals are not available in ZON +// void.zon:1:11: note: void union payloads can be represented by enum literals -- cgit v1.2.3