doc/langref.html.in | 76 +++++--
doc/langref/runtime_invalid_enum_cast.zig | 12 +-
doc/langref/test_comptime_invalid_enum_cast.zig | 4 +-
doc/langref/test_enums.zig | 28 ++-
doc/langref/test_inline_else.zig | 4 +-
doc/langref/test_packed_struct_backing_int.zig | 21 ++
doc/langref/test_tagged_union_with_tag_values.zig | 4 +-
lib/std/meta.zig | 38 +++-
lib/std/zig.zig | 2 -
lib/std/zig/Ast/Render.zig | 21 +-
lib/std/zig/AstGen.zig | 18 ++
lib/std/zig/AstRlAnnotate.zig | 2 +
lib/std/zig/BuiltinFn.zig | 16 ++
lib/std/zig/Zir.zig | 30 ++-
lib/std/zig/parser_test.zig | 62 +++++-
src/Air.zig | 6 +
src/Air/Legalize.zig | 130 +++++++++--
src/Air/Liveness.zig | 1 +
src/Air/Liveness/Verify.zig | 1 +
src/Air/Verify.zig | 2 +-
src/Air/print.zig | 1 +
src/InternPool.zig | 10 +-
src/Sema.zig | 347 +++++++++++++++++++++--------
src/Sema/reinterpret.zig | 8 +-
src/Sema/type_resolution.zig | 30 ++-
src/Type.zig | 46 ++--
src/Value.zig | 17 +-
src/Zcu/PerThread.zig | 35 ++-
src/codegen.zig | 2 +-
src/codegen/aarch64.zig | 6 +-
src/codegen/aarch64/Select.zig | 2 +
src/codegen/c.zig | 6 +-
src/codegen/c/type.zig | 3 +-
src/codegen/c/type/render_defs.zig | 4 +-
src/codegen/llvm.zig | 2 +-
src/codegen/llvm/FuncGen.zig | 29 ++-
src/codegen/riscv64/CodeGen.zig | 5 +-
src/codegen/sparc64/CodeGen.zig | 3 +-
src/codegen/spirv/CodeGen.zig | 21 +-
src/codegen/wasm/CodeGen.zig | 24 +-
src/codegen/x86_64/CodeGen.zig | 2 +
src/link/Dwarf.zig | 1 +
src/link/Wasm/Flush.zig | 2 +-
src/print_value.zig | 30 ++-
src/print_zir.zig | 14 ++
stage1/zig1.wasm | Bin 3212254 -> 3223935 bytes
test/behavior.zig | 1 +
test/behavior/backing_int.zig | 384 ++++++++++++++++++++++++++++++++
test/behavior/enum.zig | 38 ++--
test/behavior/packed-struct.zig | 44 +++-
test/behavior/packed-union.zig | 27 +++
test/behavior/switch.zig | 4 +-
test/behavior/type.zig | 14 +-
test/cases/compile_errors/backing_int_invalid_arg_type.zig | 38 ++++
test/cases/compile_errors/bitCast_with_invalid_array_element_type.zig | 23 --
test/cases/compile_errors/bitcast_invalid_types.zig | 205 +++++++++++++++++
test/cases/compile_errors/bitcast_to_enum_invalid_tag_value.zig | 16 ++
test/cases/compile_errors/empty_enum_from_backing_int.zig | 18 ++
test/cases/compile_errors/enum_noreturn_backing_type.zig | 16 ++
test/cases/compile_errors/extern_struct_with_non-extern-compatible_integer_tag_type.zig | 30 ++-
test/cases/compile_errors/from_backing_int_invalid_dest_type.zig | 37 +++
test/cases/compile_errors/from_backing_int_type_mismatch.zig | 23 ++
test/cases/compile_errors/from_backing_int_undef.zig | 22 ++
test/cases/compile_errors/initialize_empty_union.zig | 4 +-
test/cases/compile_errors/instantiate_empty_enum.zig | 32 +++
test/cases/compile_errors/int_from_enum_undefined.zig | 11 -
test/cases/compile_errors/invalid_non-exhaustive_enum_to_union.zig | 2 +-
test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig | 8 +
test/cases/compile_errors/packed_union_with_fields_of_not_allowed_types.zig | 8 +
test/cases/compile_errors/reify_type_for_tagged_union_with_no_enum_fields.zig | 2 +-
test/cases/compile_errors/sizeof_alignof_empty_union.zig | 4 +-
test/cases/compile_errors/tagName_on_invalid_value_of_non-exhaustive_enum.zig | 2 +-
test/cases/safety/backing_int_no_matching_tag_value.zig | 25 +++
test/cases/safety/bitcast_to_enum_no_matching_tag_value.zig | 25 +++
74 files changed, 1824 insertions(+), 367 deletions(-)