doc/docgen.zig | 2 +- doc/langref.html.in | 37 +-- lib/compiler_rt/README.md | 4 + lib/compiler_rt/atomics.zig | 2 +- lib/compiler_rt/comparedf2_test.zig | 4 +- lib/compiler_rt/comparesf2_test.zig | 4 +- lib/compiler_rt/gehf2.zig | 8 - lib/std/Build.zig | 8 +- lib/std/Build/CompileStep.zig | 8 +- lib/std/Build/ConfigHeaderStep.zig | 4 +- lib/std/Build/FmtStep.zig | 2 +- lib/std/Build/RunStep.zig | 9 +- lib/std/Thread/Condition.zig | 12 +- lib/std/Thread/Futex.zig | 6 +- lib/std/Thread/Mutex.zig | 6 +- lib/std/Thread/ResetEvent.zig | 2 +- lib/std/Thread/RwLock.zig | 2 +- lib/std/Thread/Semaphore.zig | 2 +- lib/std/array_hash_map.zig | 20 +- lib/std/array_list.zig | 10 +- lib/std/ascii.zig | 6 +- lib/std/atomic/Atomic.zig | 12 +- lib/std/atomic/queue.zig | 4 +- lib/std/atomic/stack.zig | 4 +- lib/std/base64.zig | 6 +- lib/std/bit_set.zig | 16 +- lib/std/bounded_array.zig | 4 +- lib/std/builtin.zig | 1 + lib/std/child_process.zig | 6 +- lib/std/coff.zig | 2 +- lib/std/compress/deflate/compressor.zig | 10 +- lib/std/compress/deflate/compressor_test.zig | 8 +- lib/std/compress/deflate/decompressor.zig | 4 +- lib/std/compress/deflate/deflate_fast.zig | 10 +- lib/std/compress/deflate/deflate_fast_test.zig | 2 +- lib/std/compress/deflate/dict_decoder.zig | 2 +- lib/std/compress/deflate/huffman_bit_writer.zig | 12 +- lib/std/compress/deflate/huffman_code.zig | 10 +- lib/std/compress/lzma/decode.zig | 2 +- lib/std/compress/lzma/decode/rangecoder.zig | 4 +- lib/std/comptime_string_map.zig | 2 +- lib/std/crypto/25519/ed25519.zig | 10 +- lib/std/crypto/25519/edwards25519.zig | 8 +- lib/std/crypto/Certificate.zig | 2 +- lib/std/crypto/aegis.zig | 6 +- lib/std/crypto/aes.zig | 8 +- lib/std/crypto/aes/aesni.zig | 4 +- lib/std/crypto/aes/armcrypto.zig | 4 +- lib/std/crypto/aes/soft.zig | 4 +- lib/std/crypto/aes_gcm.zig | 6 +- lib/std/crypto/aes_ocb.zig | 8 +- lib/std/crypto/argon2.zig | 14 +- lib/std/crypto/ascon.zig | 2 +- lib/std/crypto/bcrypt.zig | 4 +- lib/std/crypto/blake2.zig | 12 +- lib/std/crypto/blake3.zig | 6 +- lib/std/crypto/chacha20.zig | 6 +- lib/std/crypto/cmac.zig | 8 +- lib/std/crypto/ghash_polyval.zig | 4 +- lib/std/crypto/gimli.zig | 16 +- lib/std/crypto/hmac.zig | 4 +- lib/std/crypto/md5.zig | 2 +- lib/std/crypto/pbkdf2.zig | 2 +- lib/std/crypto/pcurves/common.zig | 2 +- lib/std/crypto/pcurves/p256.zig | 2 +- lib/std/crypto/pcurves/p256/scalar.zig | 2 +- lib/std/crypto/pcurves/p384.zig | 2 +- lib/std/crypto/pcurves/p384/scalar.zig | 2 +- lib/std/crypto/pcurves/secp256k1.zig | 2 +- lib/std/crypto/pcurves/secp256k1/scalar.zig | 2 +- lib/std/crypto/poly1305.zig | 4 +- lib/std/crypto/salsa20.zig | 8 +- lib/std/crypto/scrypt.zig | 14 +- lib/std/crypto/sha1.zig | 2 +- lib/std/crypto/sha2.zig | 6 +- lib/std/crypto/sha3.zig | 8 +- lib/std/crypto/siphash.zig | 6 +- lib/std/crypto/test.zig | 2 +- lib/std/crypto/tls.zig | 2 +- lib/std/crypto/utils.zig | 4 +- lib/std/crypto/xoodoo.zig | 2 +- lib/std/debug.zig | 10 +- lib/std/dwarf.zig | 2 +- lib/std/enums.zig | 4 +- lib/std/event/loop.zig | 4 +- lib/std/fmt.zig | 10 +- lib/std/fmt/parse_float/decimal.zig | 2 +- lib/std/fs/path.zig | 6 +- lib/std/fs/wasi.zig | 2 +- lib/std/hash/crc.zig | 6 +- lib/std/hash/wyhash.zig | 2 +- lib/std/hash_map.zig | 4 +- lib/std/heap.zig | 4 +- lib/std/heap/WasmPageAllocator.zig | 2 +- lib/std/heap/general_purpose_allocator.zig | 2 +- lib/std/json.zig | 12 +- lib/std/json/test.zig | 2 +- lib/std/math/big/int.zig | 14 +- lib/std/math/big/rational.zig | 2 +- lib/std/mem.zig | 24 +- lib/std/meta.zig | 28 +- lib/std/meta/trailer_flags.zig | 10 +- lib/std/multi_array_list.zig | 26 +- lib/std/net.zig | 14 +- lib/std/net/test.zig | 2 +- lib/std/once.zig | 2 +- lib/std/os/linux.zig | 2 +- lib/std/os/uefi/protocols/device_path_protocol.zig | 2 +- lib/std/os/windows.zig | 2 +- lib/std/packed_int_array.zig | 4 +- lib/std/pdb.zig | 2 +- lib/std/priority_dequeue.zig | 2 +- lib/std/priority_queue.zig | 2 +- lib/std/process.zig | 4 +- lib/std/rand.zig | 2 +- lib/std/rand/ziggurat.zig | 4 +- lib/std/simd.zig | 2 +- lib/std/sort.zig | 10 +- lib/std/target.zig | 8 +- lib/std/target/aarch64.zig | 2 +- lib/std/target/amdgpu.zig | 2 +- lib/std/target/arc.zig | 2 +- lib/std/target/arm.zig | 2 +- lib/std/target/avr.zig | 2 +- lib/std/target/bpf.zig | 2 +- lib/std/target/csky.zig | 2 +- lib/std/target/hexagon.zig | 2 +- lib/std/target/m68k.zig | 2 +- lib/std/target/mips.zig | 2 +- lib/std/target/msp430.zig | 2 +- lib/std/target/nvptx.zig | 2 +- lib/std/target/powerpc.zig | 2 +- lib/std/target/riscv.zig | 2 +- lib/std/target/s390x.zig | 2 +- lib/std/target/sparc.zig | 2 +- lib/std/target/spirv.zig | 2 +- lib/std/target/ve.zig | 2 +- lib/std/target/wasm.zig | 2 +- lib/std/target/x86.zig | 2 +- lib/std/testing.zig | 8 +- lib/std/wasm.zig | 4 +- lib/std/zig/Ast.zig | 137 +++++++-- lib/std/zig/CrossTarget.zig | 2 +- lib/std/zig/Parse.zig | 196 ++++++++---- lib/std/zig/fmt.zig | 2 +- lib/std/zig/parser_test.zig | 71 ++++- lib/std/zig/render.zig | 189 ++++++++++-- lib/std/zig/system/NativeTargetInfo.zig | 2 +- lib/std/zig/system/linux.zig | 2 +- lib/std/zig/system/windows.zig | 6 +- lib/std/zig/tokenizer.zig | 50 +++- lib/test_runner.zig | 2 +- src/AstGen.zig | 285 +++++++++++++----- src/Autodoc.zig | 16 +- src/Compilation.zig | 22 +- src/Liveness.zig | 8 +- src/Manifest.zig | 2 +- src/Module.zig | 79 ++++- src/Package.zig | 2 +- src/RangeSet.zig | 2 +- src/Sema.zig | 509 +++++++++++++++++++++----------- src/Zir.zig | 27 +- src/arch/aarch64/CodeGen.zig | 26 +- src/arch/aarch64/Emit.zig | 6 +- src/arch/arm/CodeGen.zig | 26 +- src/arch/arm/Emit.zig | 6 +- src/arch/arm/bits.zig | 4 +- src/arch/riscv64/CodeGen.zig | 4 +- src/arch/riscv64/Emit.zig | 2 +- src/arch/sparc64/CodeGen.zig | 8 +- src/arch/sparc64/Emit.zig | 6 +- src/arch/wasm/CodeGen.zig | 18 +- src/arch/wasm/Emit.zig | 2 +- src/arch/x86_64/CodeGen.zig | 20 +- src/arch/x86_64/Emit.zig | 4 +- src/arch/x86_64/Mir.zig | 2 +- src/arch/x86_64/abi.zig | 10 +- src/codegen.zig | 4 +- src/codegen/c.zig | 52 ++-- src/codegen/llvm.zig | 60 ++-- src/codegen/spirv.zig | 4 +- src/codegen/spirv/Assembler.zig | 2 +- src/codegen/spirv/Module.zig | 4 +- src/codegen/spirv/Section.zig | 2 +- src/codegen/spirv/type.zig | 2 +- src/glibc.zig | 6 +- src/libc_installation.zig | 6 +- src/libunwind.zig | 2 +- src/link/Coff.zig | 6 +- src/link/Dwarf.zig | 10 +- src/link/Elf.zig | 18 +- src/link/MachO.zig | 36 +-- src/link/MachO/DebugSymbols.zig | 8 +- src/link/MachO/Dylib.zig | 2 +- src/link/MachO/Object.zig | 14 +- src/link/MachO/UnwindInfo.zig | 16 +- src/link/MachO/dead_strip.zig | 2 +- src/link/MachO/dyld_info/Rebase.zig | 2 +- src/link/MachO/dyld_info/bind.zig | 2 +- src/link/MachO/eh_frame.zig | 8 +- src/link/MachO/thunks.zig | 2 +- src/link/MachO/zld.zig | 62 ++-- src/link/SpirV.zig | 4 +- src/link/Wasm.zig | 20 +- src/link/Wasm/Object.zig | 4 +- src/link/tapi.zig | 4 +- src/link/tapi/yaml.zig | 14 +- src/main.zig | 6 +- src/mingw.zig | 4 +- src/objcopy.zig | 2 +- src/print_air.zig | 16 +- src/print_targets.zig | 4 +- src/print_zir.zig | 30 +- src/register_manager.zig | 6 +- src/test.zig | 10 +- src/translate_c.zig | 14 +- src/translate_c/ast.zig | 22 +- src/type.zig | 77 +++-- src/value.zig | 131 ++++---- stage1/zig1.wasm | Bin 2377691 -> 2388586 bytes test/behavior/array.zig | 2 +- test/behavior/bit_shifting.zig | 4 +- test/behavior/bugs/1607.zig | 2 +- test/behavior/bugs/920.zig | 6 +- test/behavior/call.zig | 2 +- test/behavior/comptime_memory.zig | 18 ++ test/behavior/const_slice_child.zig | 4 +- test/behavior/eval.zig | 6 +- test/behavior/fn.zig | 2 +- test/behavior/for.zig | 230 ++++++++++++++- test/behavior/generics.zig | 2 +- test/behavior/lower_strlit_to_vector.zig | 2 +- test/behavior/math.zig | 2 +- test/behavior/slice.zig | 4 +- test/behavior/tuple.zig | 2 +- test/behavior/vector.zig | 22 +- test/behavior/void.zig | 2 +- test/cases/compile_errors/for.zig | 40 +++ test/cases/compile_errors/for_discard_unbounded.zig | 10 + test/cases/compile_errors/for_empty.zig | 11 + test/cases/compile_errors/for_extra_capture.zig | 12 + test/cases/compile_errors/for_extra_condition.zig | 11 + test/cases/compile_errors/for_unbounded.zig | 11 + test/cases/compile_errors/invalid_pointer_for_var_type.zig | 2 +- test/cases/compile_errors/underscore_should_not_be_usable_inside_for.zig | 4 +- test/cases/llvm/for_loop.zig | 2 +- test/cases/safety/for_len_mismatch.zig | 24 ++ test/cases/safety/for_len_mismatch_three.zig | 24 ++ test/cases/variable_shadowing.3.zig | 4 +- test/compare_output.zig | 11 +- test/compile_errors.zig | 10 + test/standalone/brace_expansion/main.zig | 4 +- test/tests.zig | 18 +- tools/gen_spirv_spec.zig | 18 +- tools/gen_stubs.zig | 18 +- tools/update_clang_options.zig | 2 +- tools/update_cpu_features.zig | 4 +- tools/update_crc_catalog.zig | 2 +- tools/update_spirv_features.zig | 4 +- 259 files changed, 2499 insertions(+), 1299 deletions(-)