src/AstGen.zig | 36 +- src/Module.zig | 75 ++++- src/Sema.zig | 566 ++++++++++++++------------------ src/Zir.zig | 3 +- src/main.zig | 3 +- src/type.zig | 46 +-- src/value.zig | 4 +- test/behavior/enum.zig | 10 + test/cases/compile_errors/directly_embedding_opaque_type_in_struct_and_union.zig | 4 +- test/cases/compile_errors/enum_value_already_taken.zig | 2 +- test/cases/compile_errors/extern_struct_with_extern-compatible_but_inferred_integer_tag_type.zig | 6 +- test/cases/compile_errors/extern_struct_with_non-extern-compatible_integer_tag_type.zig | 6 +- test/cases/compile_errors/file_level_struct_invalid_field_type.zig | 17 + test/cases/compile_errors/generic_function_instantiation_inherits_parent_branch_quota.zig | 30 ++ test/cases/compile_errors/invalid_optional_type_in_extern_struct.zig | 4 +- test/cases/compile_errors/noreturn_struct_field.zig | 2 +- test/cases/compile_errors/old_fn_ptr_in_extern_context.zig | 6 +- test/cases/compile_errors/only_untyped_undef_coerces_to_all_types.zig | 11 + test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig | 34 +- test/cases/compile_errors/packed_union_with_automatic_layout_field.zig | 4 +- test/cases/compile_errors/union_enum_field_does_not_match_enum.zig | 2 +- test/cases/compile_errors/union_extra_field.zig | 2 +- 22 files changed, 449 insertions(+), 424 deletions(-)