You can do it in multiple passes (analysis/dumping IR followed by code generation, with dep files to connect them). It's what Rust does internally with rmeta files.
Mine is not necessarily a criticism of Zig, mind. It's a criticism of what is needed from a C replacement.
Mine is not necessarily a criticism of Zig, mind. It's a criticism of what is needed from a C replacement.