CMakeLists.txt | 16 +- bootstrap.c | 24 +- build.zig | 8 +- ci/aarch64-freebsd-debug.sh | 1 - ci/aarch64-freebsd-release.sh | 1 - ci/aarch64-linux-debug.sh | 1 - ci/aarch64-linux-release.sh | 1 - ci/aarch64-macos-debug.sh | 1 - ci/aarch64-macos-release.sh | 1 - ci/aarch64-netbsd-debug.sh | 1 - ci/aarch64-netbsd-release.sh | 1 - ci/aarch64-windows.ps1 | 1 - ci/loongarch64-linux-debug.sh | 1 - ci/loongarch64-linux-release.sh | 1 - ci/powerpc64le-linux-debug.sh | 1 - ci/powerpc64le-linux-release.sh | 1 - ci/s390x-linux-debug.sh | 1 - ci/s390x-linux-release.sh | 1 - ci/x86_64-freebsd-debug.sh | 1 - ci/x86_64-freebsd-release.sh | 1 - ci/x86_64-linux-debug-llvm.sh | 1 - ci/x86_64-linux-debug.sh | 1 - ci/x86_64-linux-release.sh | 4 +- ci/x86_64-netbsd-debug.sh | 1 - ci/x86_64-netbsd-release.sh | 1 - ci/x86_64-openbsd-debug.sh | 1 - ci/x86_64-openbsd-release.sh | 1 - doc/langref.html.in | 5 +- doc/langref/test_comptime_invalid_error_code.zig | 7 +- doc/langref/test_missized_packed_struct.zig | 2 +- doc/langref/test_variable_alignment.zig | 15 +- lib/compiler/aro/aro/InitList.zig | 20 +- lib/compiler/aro/aro/Parser.zig | 6 +- lib/compiler/aro/aro/Toolchain.zig | 6 +- lib/compiler/objcopy.zig | 4 +- lib/compiler/resinator/cvtres.zig | 2 +- lib/compiler/test_runner.zig | 8 +- lib/std/Build/Fuzz.zig | 4 +- lib/std/Build/Module.zig | 14 +- lib/std/Build/Step.zig | 2 +- lib/std/Build/Step/Run.zig | 8 +- lib/std/Build/Step/UpdateSourceFiles.zig | 2 +- lib/std/Build/Step/WriteFile.zig | 4 +- lib/std/Io/Dir.zig | 2 +- lib/std/array_list.zig | 4 +- lib/std/builtin.zig | 12 +- lib/std/c/darwin.zig | 2 +- lib/std/c/darwin/dispatch.zig | 2 +- lib/std/compress/lzma.zig | 2 +- lib/std/compress/lzma2.zig | 2 +- lib/std/debug/Coverage.zig | 6 +- lib/std/elf.zig | 4 +- lib/std/hash_map.zig | 6 +- lib/std/macho.zig | 2 +- lib/std/math/big/int.zig | 14 +- lib/std/mem.zig | 16 +- lib/std/mem/Allocator.zig | 99 +- lib/std/meta.zig | 4 +- lib/std/multi_array_list.zig | 24 +- lib/std/os/linux.zig | 2 +- lib/std/os/windows.zig | 10 +- lib/std/pdb.zig | 4 +- lib/std/testing.zig | 5 +- lib/std/zig.zig | 13 +- lib/std/zig/Ast.zig | 8 +- lib/std/zig/AstGen.zig | 1632 ++--- lib/std/zig/ErrorBundle.zig | 16 +- lib/std/zig/Zir.zig | 950 +-- lib/std/zig/llvm/BitcodeReader.zig | 10 +- lib/std/zig/llvm/Builder.zig | 364 +- lib/std/zig/target.zig | 17 +- lib/std/zon/Serializer.zig | 4 +- lib/std/zon/parse.zig | 6 +- lib/zig.h | 10 +- src/Air.zig | 13 +- src/Air/Liveness.zig | 10 +- src/Air/Liveness/Verify.zig | 2 +- src/Air/print.zig | 44 +- src/Air/types_resolved.zig | 536 -- src/Compilation.zig | 775 +-- src/IncrementalDebugServer.zig | 14 +- src/InternPool.zig | 5505 ++++++++-------- src/Package/Manifest.zig | 6 +- src/Sema.zig | 11216 ++++++++++++-------------------- src/Sema/LowerZon.zig | 132 +- src/Sema/arith.zig | 42 +- src/Sema/bitcast.zig | 184 +- src/Sema/comptime_ptr_access.zig | 38 +- src/Sema/type_resolution.zig | 1398 ++++ src/Type.zig | 4060 +++++------- src/Value.zig | 1192 +--- src/Zcu.zig | 1148 ++-- src/Zcu/PerThread.zig | 2169 +++--- src/codegen.zig | 154 +- src/codegen/aarch64/Select.zig | 151 +- src/codegen/aarch64/abi.zig | 2 +- src/codegen/arm/abi.zig | 24 +- src/codegen/c.zig | 5580 +++++++--------- src/codegen/c/Type.zig | 3472 ---------- src/codegen/c/type.zig | 1023 +++ src/codegen/c/type/render_defs.zig | 710 ++ src/codegen/llvm.zig | 2062 +++--- src/codegen/mips/abi.zig | 4 +- src/codegen/riscv64/CodeGen.zig | 103 +- src/codegen/riscv64/abi.zig | 4 +- src/codegen/sparc64/CodeGen.zig | 22 +- src/codegen/spirv/CodeGen.zig | 206 +- src/codegen/wasm/CodeGen.zig | 228 +- src/codegen/wasm/abi.zig | 6 +- src/codegen/x86_64/CodeGen.zig | 166 +- src/codegen/x86_64/abi.zig | 12 +- src/link.zig | 53 +- src/link/C.zig | 1899 ++++-- src/link/Coff.zig | 2 +- src/link/ConstPool.zig | 288 + src/link/Dwarf.zig | 1746 +++-- src/link/Elf.zig | 14 +- src/link/Elf/Object.zig | 2 +- src/link/Elf/ZigObject.zig | 11 +- src/link/Elf2.zig | 2 +- src/link/MachO/Atom.zig | 2 +- src/link/MachO/ZigObject.zig | 14 +- src/link/MachO/file.zig | 2 +- src/link/Wasm.zig | 8 +- src/link/Wasm/Flush.zig | 6 +- src/link/tapi/parse.zig | 2 +- src/main.zig | 18 +- src/mutable_value.zig | 44 +- src/print_value.zig | 121 +- src/print_zir.zig | 541 +- stage1/zig.h | 10 +- stage1/zig1.wasm | Bin 3183342 -> 3177173 bytes test/behavior.zig | 1 - test/behavior/align.zig | 57 +- test/behavior/alignof.zig | 5 + test/behavior/array.zig | 22 - test/behavior/bitcast.zig | 32 - test/behavior/call.zig | 11 +- test/behavior/empty_union.zig | 66 - test/behavior/enum.zig | 54 +- test/behavior/error.zig | 33 + test/behavior/eval.zig | 121 - test/behavior/generics.zig | 5 +- test/behavior/packed-struct.zig | 100 +- test/behavior/packed-union.zig | 26 +- test/behavior/sizeof_and_typeof.zig | 42 +- test/behavior/slice.zig | 2 +- test/behavior/struct.zig | 74 +- test/behavior/struct_contains_slice_of_itself.zig | 2 +- test/behavior/switch.zig | 11 +- test/behavior/tuple.zig | 11 + test/behavior/tuple_declarations.zig | 4 +- test/behavior/type.zig | 4 +- test/behavior/type_info.zig | 16 +- test/behavior/union.zig | 73 +- test/c_abi/main.zig | 4 +- test/cases/compile_errors/@import_zon_bad_type.zig | 8 +- test/cases/compile_errors/@import_zon_opt_in_err.zig | 20 +- test/cases/compile_errors/@import_zon_opt_in_err_struct.zig | 8 +- test/cases/compile_errors/@intFromPtr_with_bad_type.zig | 9 - test/cases/compile_errors/AstGen_comptime_known_struct_is_resolved_before_error.zig | 17 - test/cases/compile_errors/C_pointer_pointing_to_non_C_ABI_compatible_type_or_has_align_attr.zig | 12 - test/cases/compile_errors/aggregate_too_large.zig | 16 +- test/cases/compile_errors/alignOf_bad_type.zig | 10 +- test/cases/compile_errors/align_zero.zig | 8 +- test/cases/compile_errors/assign_inline_fn_to_non-comptime_var.zig | 10 - test/cases/compile_errors/bit_ptr_non_packed.zig | 8 +- test/cases/compile_errors/bitsize_of_packed_struct_checks_backing_int_ty.zig | 4 +- test/cases/compile_errors/c_pointer_to_void.zig | 9 - test/cases/compile_errors/call_runtime_known_inline_fn_ptr.zig | 11 + test/cases/compile_errors/coerce_int_to_float.zig | 12 +- test/cases/compile_errors/comptime_var_referenced_by_type.zig | 2 +- test/cases/compile_errors/direct_struct_loop.zig | 2 +- test/cases/compile_errors/directly_embedding_opaque_type_in_struct_and_union.zig | 6 +- test/cases/compile_errors/empty_extern_union.zig | 8 + test/cases/compile_errors/empty_packed_union.zig | 8 + test/cases/compile_errors/enum_backed_by_comptime_int.zig | 8 + test/cases/compile_errors/enum_backed_by_comptime_int_must_be_casted_from_comptime_value.zig | 12 - test/cases/compile_errors/enum_backed_by_comptime_int_must_be_comptime.zig | 9 - test/cases/compile_errors/enum_field_value_references_enum.zig | 12 +- test/cases/compile_errors/enum_field_value_references_nonexistent_circular.zig | 2 +- test/cases/compile_errors/enum_uses_own_typeinfo.zig | 15 + test/cases/compile_errors/enum_value_already_taken.zig | 4 +- test/cases/compile_errors/error_set_membership.zig | 3 +- test/cases/compile_errors/exported_enum_without_explicit_integer_tag_type.zig | 4 +- test/cases/compile_errors/extern_struct_with_extern-compatible_but_inferred_integer_tag_type.zig | 45 - test/cases/compile_errors/extern_struct_with_non-extern-compatible_integer_tag_type.zig | 4 +- test/cases/compile_errors/fn_body_in_struct_runtime_known.zig | 17 + test/cases/compile_errors/fn_type_returning_pointer_to_itself.zig | 8 + test/cases/compile_errors/function_ptr_alignment.zig | 2 +- test/cases/compile_errors/function_with_non-extern_non-packed_enum_parameter.zig | 4 +- test/cases/compile_errors/function_with_non-extern_non-packed_struct_parameter.zig | 2 +- test/cases/compile_errors/function_with_non-extern_non-packed_union_parameter.zig | 2 +- test/cases/compile_errors/generic_function_returning_opaque_type.zig | 2 +- test/cases/compile_errors/implicit_backing_type_in_extern_context.zig | 51 + test/cases/compile_errors/indexing_an_array_of_size_zero.zig | 2 +- test/cases/compile_errors/indexing_an_array_of_size_zero_with_runtime_index.zig | 2 +- test/cases/compile_errors/indirect_struct_loop.zig | 6 +- test/cases/compile_errors/initialize_empty_union.zig | 81 + test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig | 2 +- test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_union_that_contains_itself.zig | 2 +- test/cases/compile_errors/invalid_dependency_on_struct_size.zig | 22 +- test/cases/compile_errors/invalid_optional_type_in_extern_struct.zig | 4 +- test/cases/compile_errors/invalid_pointer_arithmetic.zig | 8 +- test/cases/compile_errors/invalid_type_in_builtin_extern.zig | 14 +- test/cases/compile_errors/non-const_variables_of_things_that_require_const_variables.zig | 41 +- test/cases/compile_errors/non-exhaustive_enum_marker_assigned_a_value.zig | 11 - test/cases/compile_errors/non-exhaustive_enum_missing_tag_type.zig | 10 + test/cases/compile_errors/non-exhaustive_enum_specifies_every_value.zig | 2 +- test/cases/compile_errors/non-inline_for_loop_on_a_type_that_requires_comptime.zig | 2 +- test/cases/compile_errors/non_constant_expression_in_array_size.zig | 2 +- test/cases/compile_errors/noreturn_struct_field.zig | 10 - test/cases/compile_errors/old_fn_ptr_in_extern_context.zig | 6 - test/cases/compile_errors/overflow_in_enum_value_allocation.zig | 2 +- test/cases/compile_errors/packed_struct_backing_int_wrong.zig | 8 +- test/cases/compile_errors/packed_struct_uses_own_size.zig | 10 + test/cases/compile_errors/packed_struct_uses_own_typeinfo.zig | 13 + test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig | 35 +- test/cases/compile_errors/packed_union_fields_mismatch.zig | 10 +- test/cases/compile_errors/packed_union_given_enum_tag_type.zig | 18 - test/cases/compile_errors/packed_union_with_automatic_layout_field.zig | 18 - test/cases/compile_errors/packed_union_with_fields_of_not_allowed_types.zig | 21 + test/cases/compile_errors/pointer_in_bitpack.zig | 22 + test/cases/compile_errors/reify_enum_with_duplicate_field.zig | 7 +- test/cases/compile_errors/reify_enum_with_duplicate_tag_value.zig | 7 +- test/cases/compile_errors/reify_type_for_exhaustive_enum_with_non-integer_tag_type.zig | 2 +- test/cases/compile_errors/reify_type_for_tagged_packed_union.zig | 11 - test/cases/compile_errors/reify_type_for_tagged_union_with_extra_enum_field.zig | 5 +- test/cases/compile_errors/reify_type_for_tagged_union_with_no_union_fields.zig | 6 +- test/cases/compile_errors/reify_type_for_union_with_opaque_field.zig | 8 +- test/cases/compile_errors/reify_type_with_invalid_field_alignment.zig | 8 +- test/cases/compile_errors/resolve_inferred_error_set_of_generic_fn.zig | 3 +- test/cases/compile_errors/runtime_@ptrFromInt_to_comptime_only_type.zig | 5 +- test/cases/compile_errors/runtime_index_into_comptime_only_many_ptr.zig | 6 +- test/cases/compile_errors/runtime_index_into_comptime_type_slice.zig | 3 +- test/cases/compile_errors/runtime_indexing_comptime_array.zig | 6 +- test/cases/compile_errors/runtime_operation_in_comptime_scope.zig | 8 +- test/cases/compile_errors/self_referential_struct_requires_comptime.zig | 1 - test/cases/compile_errors/self_referential_union_requires_comptime.zig | 1 - test/cases/compile_errors/simple_struct_loop.zig | 16 + test/cases/compile_errors/sizeOf_bad_type.zig | 28 +- test/cases/compile_errors/sizeof_alignof_empty_union.zig | 75 + test/cases/compile_errors/slice_used_as_extern_fn_param.zig | 2 +- test/cases/compile_errors/specify_enum_tag_type_that_is_too_small.zig | 18 +- test/cases/compile_errors/store_comptime_only_type_to_runtime_pointer.zig | 11 +- test/cases/compile_errors/struct_depends_on_itself_via_non_initial_field.zig | 4 +- test/cases/compile_errors/struct_depends_on_itself_via_optional_field.zig | 5 +- test/cases/compile_errors/struct_depends_on_pointer_alignment.zig | 11 - test/cases/compile_errors/struct_field_queries_hasfield_of_itself.zig | 14 + test/cases/compile_errors/struct_uses_reified_type_which_queries_struct_alignment.zig | 13 + test/cases/compile_errors/struct_uses_sizeof_self_as_array_len.zig | 10 + test/cases/compile_errors/too_big_packed_struct.zig | 2 +- test/cases/compile_errors/top_level_decl_dependency_loop.zig | 7 +- test/cases/compile_errors/unable_to_evaluate_comptime_expr.zig | 19 - test/cases/compile_errors/undef_arith_is_illegal.zig | 3016 ++++----- test/cases/compile_errors/undef_arith_returns_undef.zig | 3588 +++++----- test/cases/compile_errors/undef_shifts_are_illegal.zig | 1174 ++-- test/cases/compile_errors/union_auto-enum_value_already_taken.zig | 4 +- test/cases/compile_errors/union_backed_by_enum_backed_by_comptime_int.zig | 9 + test/cases/compile_errors/union_depends_on_pointer_alignment.zig | 11 - test/cases/compile_errors/union_enum_field_missing.zig | 5 +- test/cases/compile_errors/union_field_ordered_differently_than_enum.zig | 7 +- test/cases/compile_errors/union_noreturn_field_initialized.zig | 12 +- test/cases/compile_errors/union_with_specified_enum_omits_field.zig | 5 +- test/cases/compile_errors/union_with_too_small_explicit_signed_tag_type.zig | 3 +- test/cases/compile_errors/union_with_too_small_explicit_unsigned_tag_type.zig | 3 +- test/cases/compile_errors/untagged_union_integer_conversion.zig | 2 +- test/cases/compile_errors/variadic_arg_validation.zig | 2 +- test/cases/compile_errors/zero_width_nonexhaustive_enum.zig | 15 +- test/incremental/change_enum_tag_type | 2 +- test/incremental/type_dependency_loop | 55 + tools/incr-check.zig | 95 +- 272 files changed, 26992 insertions(+), 33526 deletions(-)