#exe {
-Mroot=main.zig
#}

#write main.zig {
const std = @import("std");
const message: []const u8 = @import("message.zon");
pub fn main() !void {
    try std.Io.File.stdout().writeStreamingAll(io, message);
}
const io = std.Io.Threaded.global_single_threaded.io();
#}
#write message.zon {
"Hello, World!\n"
#}
#update
#check stdout {
Hello, World!
#}

#write message.zon {
"Hello again, World!\n"
#}
#update {
change ZON file contents#}
#check stdout {
Hello again, World!
#}

#delete message.zon
#update {
delete file#}
#check errors {
message.zon:1:1: error: unable to load "message.zon": FileNotFound
main.zig:2:37: note: file imported here
#}

#write main.zig {
const std = @import("std");
const message: []const u8 = @import("message.zon");
pub fn main() !void {
    try std.Io.File.stdout().writeStreamingAll(io, "a hardcoded string\n");
}
const io = std.Io.Threaded.global_single_threaded.io();
#}
#update {
remove reference to ZON file#}
#check errors {
message.zon:1:1: error: unable to load "message.zon": FileNotFound
main.zig:2:37: note: file imported here
#}

#write message.zon {
"We're back, World!\n"
#}
#update {
recreate ZON file#}
#check stdout {
a hardcoded string
#}

#write main.zig {
const std = @import("std");
const message: []const u8 = @import("message.zon");
pub fn main() !void {
    try std.Io.File.stdout().writeStreamingAll(io, message);
}
const io = std.Io.Threaded.global_single_threaded.io();
#}
#update {
re-introduce reference to ZON file#}
#check stdout {
We're back, World!
#}
