build.zig | 4 +- doc/langref.html.in | 50 +++- lib/std/zig/Ast.zig | 28 ++ lib/std/zig/Parse.zig | 350 ++++++++++++++++++----- lib/std/zig/parser_test.zig | 14 +- lib/std/zig/render.zig | 114 +++++--- src/AstGen.zig | 476 +++++++++++++++++++++++++++++--- src/AstRlAnnotate.zig | 10 + src/Sema.zig | 177 +++++++----- src/Zir.zig | 29 ++ src/print_zir.zig | 23 ++ stage1/zig1.wasm | Bin 2549064 -> 2569535 bytes test/behavior.zig | 1 + test/behavior/destructure.zig | 100 +++++++ test/cases/compile_errors/cast_without_result_type.zig | 7 + test/cases/compile_errors/extra_comma_in_destructure.zig | 10 + test/cases/compile_errors/invalid_destructure_astgen.zig | 22 ++ test/cases/compile_errors/invalid_destructure_sema.zig | 23 ++ test/cases/unused_vars.zig | 3 + 19 files changed, 1208 insertions(+), 233 deletions(-)