lib/std/zig/parse.zig | 2 +- lib/std/zig/parser_test.zig | 8 + src/Sema.zig | 397 +++++++++++++++++++++++++++++--- src/value.zig | 31 +-- test/behavior/tuple.zig | 35 +++ test/cases/compile_errors/comptime_slice-sentinel_does_not_match_memory_at_target_index_terminated.zig | 74 ++++++ test/cases/compile_errors/comptime_slice-sentinel_does_not_match_memory_at_target_index_unterminated.zig | 74 ++++++ test/cases/compile_errors/comptime_slice-sentinel_does_not_match_target-sentinel.zig | 74 ++++++ test/cases/compile_errors/comptime_slice-sentinel_is_out_of_bounds_terminated.zig | 67 ++++++ test/cases/compile_errors/comptime_slice-sentinel_is_out_of_bounds_unterminated.zig | 67 ++++++ test/cases/compile_errors/comptime_slice_of_an_undefined_slice.zig | 11 + test/cases/compile_errors/reify_type.Fn_with_is_generic_true.zig | 17 ++ test/cases/compile_errors/reify_type.Fn_with_is_var_args_true_and_non-C_callconv.zig | 17 ++ test/cases/compile_errors/reify_type.Fn_with_return_type_null.zig | 17 ++ test/cases/compile_errors/reify_type_for_exhaustive_enum_with_non-integer_tag_type.zig | 18 ++ test/cases/compile_errors/reify_type_for_exhaustive_enum_with_undefined_tag_type.zig | 18 ++ test/cases/compile_errors/reify_type_for_exhaustive_enum_with_zero_fields.zig | 18 ++ test/cases/compile_errors/reify_type_for_tagged_union_with_extra_enum_field.zig | 36 +++ test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig | 35 +++ test/cases/compile_errors/reify_type_for_union_with_zero_fields.zig | 17 ++ test/cases/compile_errors/reify_type_union_payload_is_undefined.zig | 10 + test/cases/compile_errors/reify_type_with_Type.Int.zig | 15 ++ test/cases/compile_errors/reify_type_with_undefined.zig | 20 ++ test/cases/compile_errors/stage1/obj/comptime_slice-sentinel_does_not_match_memory_at_target_index_terminated.zig | 67 ------ test/cases/compile_errors/stage1/obj/comptime_slice-sentinel_does_not_match_memory_at_target_index_unterminated.zig | 67 ------ test/cases/compile_errors/stage1/obj/comptime_slice-sentinel_does_not_match_target-sentinel.zig | 67 ------ test/cases/compile_errors/stage1/obj/comptime_slice-sentinel_is_out_of_bounds_terminated.zig | 67 ------ test/cases/compile_errors/stage1/obj/comptime_slice-sentinel_is_out_of_bounds_unterminated.zig | 67 ------ test/cases/compile_errors/stage1/obj/comptime_slice_of_an_undefined_slice.zig | 11 - test/cases/compile_errors/stage1/obj/reify_type.Fn_with_is_generic_true.zig | 17 -- test/cases/compile_errors/stage1/obj/reify_type.Fn_with_is_var_args_true_and_non-C_callconv.zig | 17 -- test/cases/compile_errors/stage1/obj/reify_type.Fn_with_return_type_null.zig | 17 -- test/cases/compile_errors/stage1/obj/reify_type.Pointer_with_invalid_address_space.zig | 18 -- test/cases/compile_errors/stage1/obj/reify_type_for_exhaustive_enum_with_non-integer_tag_type.zig | 18 -- test/cases/compile_errors/stage1/obj/reify_type_for_exhaustive_enum_with_undefined_tag_type.zig | 18 -- test/cases/compile_errors/stage1/obj/reify_type_for_exhaustive_enum_with_zero_fields.zig | 18 -- test/cases/compile_errors/stage1/obj/reify_type_for_tagged_union_with_extra_enum_field.zig | 34 --- test/cases/compile_errors/stage1/obj/reify_type_for_tagged_union_with_extra_union_field.zig | 35 --- test/cases/compile_errors/stage1/obj/reify_type_for_union_with_zero_fields.zig | 17 -- test/cases/compile_errors/stage1/obj/reify_type_union_payload_is_undefined.zig | 10 - test/cases/compile_errors/stage1/obj/reify_type_with_Type.Int.zig | 13 -- test/cases/compile_errors/stage1/obj/reify_type_with_non-constant_expression.zig | 11 - test/cases/compile_errors/stage1/obj/reify_type_with_undefined.zig | 20 -- test/cases/compile_errors/stage1/reify_type.Pointer_with_invalid_address_space.zig | 18 ++ test/cases/compile_errors/stage1/reify_type_with_non-constant_expression.zig | 11 + test/cases/compile_errors/stage1/test/type_mismatch_with_tuple_concatenation.zig | 11 - test/cases/compile_errors/type_mismatch_with_tuple_concatenation.zig | 10 + 47 files changed, 1075 insertions(+), 662 deletions(-)