build.zig | 28 +- src/Air.zig | 2 + src/Air/types_resolved.zig | 521 ++++++++++++ src/Compilation.zig | 34 +- src/Sema.zig | 1458 ++++++++++---------------------- src/Sema/bitcast.zig | 8 +- src/Type.zig | 624 +++++++++++--- src/Value.zig | 306 ++++--- src/Zcu.zig | 164 ++-- src/codegen/llvm.zig | 5 +- src/print_value.zig | 8 +- test/cases/compile_errors/direct_struct_loop.zig | 1 - test/cases/compile_errors/indirect_struct_loop.zig | 3 - test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig | 1 - test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_union_that_contains_itself.zig | 1 - test/cases/compile_errors/invalid_dependency_on_struct_size.zig | 1 - test/cases/compile_errors/struct_depends_on_itself_via_optional_field.zig | 2 - test/cases/compile_errors/struct_type_returned_from_non-generic_function.zig | 2 +- test/src/Cases.zig | 703 +-------------- test/tests.zig | 4 - 20 files changed, 1850 insertions(+), 2026 deletions(-)