doc/langref.html.in | 44 ++++ lib/std/Target.zig | 3 +- lib/std/hash/auto_hash.zig | 1 + lib/std/lang.zig | 54 ++++ lib/std/mem.zig | 1 + lib/std/start.zig | 4 +- lib/std/testing.zig | 2 + lib/std/zig/AstGen.zig | 10 + lib/std/zig/AstRlAnnotate.zig | 4 + lib/std/zig/BuiltinFn.zig | 8 + lib/std/zig/Zir.zig | 14 + lib/std/zon/Serializer.zig | 1 + lib/std/zon/parse.zig | 1 + src/Air.zig | 7 + src/Air/Legalize.zig | 1 + src/Air/Liveness.zig | 2 +- src/Air/Liveness/Verify.zig | 2 +- src/Air/print.zig | 1 + src/InternPool.zig | 113 +++++++- src/Sema.zig | 443 +++++++++++++++++++++++++++++++- src/Sema/LowerZon.zig | 2 + src/Sema/bitcast.zig | 1 + src/Sema/comptime_ptr_access.zig | 2 + src/Sema/type_resolution.zig | 45 +++- src/Type.zig | 31 ++- src/Value.zig | 8 +- src/Zcu.zig | 5 +- src/codegen.zig | 1 + src/codegen/aarch64/Select.zig | 3 +- src/codegen/aarch64/abi.zig | 1 + src/codegen/arm/abi.zig | 1 + src/codegen/c.zig | 3 + src/codegen/c/type.zig | 3 + src/codegen/llvm.zig | 4 +- src/codegen/llvm/FuncGen.zig | 2 + src/codegen/mips/abi.zig | 1 + src/codegen/riscv64/CodeGen.zig | 1 + src/codegen/riscv64/abi.zig | 1 + src/codegen/sparc64/CodeGen.zig | 1 + src/codegen/spirv/Assembler.zig | 2 +- src/codegen/spirv/CodeGen.zig | 167 ++++++++++-- src/codegen/spirv/Module.zig | 90 +++++-- src/codegen/wasm/CodeGen.zig | 3 + src/codegen/wasm/abi.zig | 1 + src/codegen/x86_64/CodeGen.zig | 2 +- src/codegen/x86_64/abi.zig | 1 + src/link/ConstPool.zig | 2 + src/link/Dwarf.zig | 2 + src/print_value.zig | 1 + src/print_zir.zig | 10 + test/behavior.zig | 4 + test/behavior/spirv.zig | 47 ++++ test/behavior/type_info.zig | 4 +- test/cases/compile_errors/SpirvType_is_a_compile_error_in_non-SPIRV_targets.zig | 9 + test/cases/compile_errors/SpirvType_vulkan_target.zig | 56 ++++ test/cases/compile_errors/directly_embedding_spirv_type_in_struct_and_union.zig | 35 +++ 56 files changed, 1208 insertions(+), 60 deletions(-)