lib/std/zig.zig | 4 + src/Compilation.zig | 47 +- src/Sema.zig | 779 ++++++++++++++++++++++++++++---- test/cases/aarch64-macos/hello_world_with_updates.1.zig | 3 +- test/cases/compile_errors/address_of_number_literal.zig | 2 + test/cases/compile_errors/any_typed_null_to_any_typed_optional.zig | 10 +- test/cases/compile_errors/assigning_to_struct_or_union_fields_that_are_not_optionals_with_a_function_that_returns_an_optional.zig | 23 + test/cases/compile_errors/attempted_implicit_cast_from_const_T_to_array_len_1_T.zig | 14 + test/cases/compile_errors/cast_between_optional_T_where_T_is_not_a_pointer.zig | 26 ++ test/cases/compile_errors/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig | 15 + test/cases/compile_errors/cast_global_error_set_to_error_set.zig | 15 + test/cases/compile_errors/casting_bit_offset_pointer_to_regular_pointer.zig | 2 + test/cases/compile_errors/discarding_error_value.zig | 3 +- test/cases/compile_errors/dont_implicit_cast_double_pointer_to_anyopaque.zig | 1 + test/cases/compile_errors/error_note_for_function_parameter_incompatibility.zig | 13 + test/cases/compile_errors/ignored_deferred_function_call.zig | 3 +- test/cases/compile_errors/ignored_expression_in_while_continuation.zig | 9 +- test/cases/compile_errors/implicit_cast_of_error_set_not_a_subset.zig | 16 + test/cases/compile_errors/implicit_cast_to_c_ptr_from_int.zig | 15 + test/cases/compile_errors/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig | 26 ++ test/cases/compile_errors/implicitly_casting_enum_to_tag_type.zig | 1 + test/cases/compile_errors/incompatible_sentinels.zig | 31 ++ test/cases/compile_errors/incorrect_return_type.zig | 3 + test/cases/compile_errors/invalid_address_space_coercion.zig | 2 + test/cases/compile_errors/invalid_cast_from_integral_type_to_enum.zig | 1 + test/cases/compile_errors/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig | 2 + test/cases/compile_errors/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig | 14 + test/cases/compile_errors/not_an_enum_type.zig | 1 + test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig | 1 + test/cases/compile_errors/pointer_with_different_address_spaces.zig | 2 + test/cases/compile_errors/pointers_with_different_address_spaces.zig | 2 + test/cases/compile_errors/regression_test_2980_base_type_u32_is_not_type_checked_properly_when_assigning_a_value_within_a_struct.zig | 23 + test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr.zig | 20 + test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr_generic_call.zig | 20 + test/cases/compile_errors/shifting_RHS_is_log2_of_LHS_int_bit_width.zig | 1 + test/cases/compile_errors/slice_sentinel_mismatch-2.zig | 13 + test/cases/compile_errors/stage1/obj/assigning_to_struct_or_union_fields_that_are_not_optionals_with_a_function_that_returns_an_optional.zig | 21 - test/cases/compile_errors/stage1/obj/attempted_implicit_cast_from_const_T_to_array_len_1_T.zig | 14 - test/cases/compile_errors/stage1/obj/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig | 16 - test/cases/compile_errors/stage1/obj/cast_global_error_set_to_error_set.zig | 15 - test/cases/compile_errors/stage1/obj/error_note_for_function_parameter_incompatibility.zig | 12 - test/cases/compile_errors/stage1/obj/implicit_cast_of_error_set_not_a_subset.zig | 16 - test/cases/compile_errors/stage1/obj/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig | 26 -- test/cases/compile_errors/stage1/obj/incompatible_sentinels.zig | 29 -- test/cases/compile_errors/stage1/obj/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig | 11 - test/cases/compile_errors/stage1/obj/regression_test_2980_base_type_u32_is_not_type_checked_properly_when_assigning_a_value_within_a_struct.zig | 21 - test/cases/compile_errors/stage1/obj/result_location_incompatibility_mismatching_handle_is_ptr.zig | 18 - test/cases/compile_errors/stage1/obj/result_location_incompatibility_mismatching_handle_is_ptr_generic_call.zig | 18 - test/cases/compile_errors/stage1/obj/slice_sentinel_mismatch-2.zig | 12 - test/cases/compile_errors/stage1/obj/type_checking_function_pointers.zig | 13 - test/cases/compile_errors/stage1/test/cast_between_optional_T_where_T_is_not_a_pointer.zig | 15 - test/cases/compile_errors/stage1/test/helpful_return_type_error_message.zig | 22 +- test/cases/compile_errors/try_in_function_with_non_error_return_type.zig | 1 + test/cases/compile_errors/type_checking_function_pointers.zig | 15 + test/cases/compile_errors/type_mismatch_in_C_prototype_with_varargs.zig | 4 +- test/cases/compile_errors/unreachable_with_return.zig | 3 +- test/cases/compile_errors/variable_has_wrong_type.zig | 1 + test/cases/compile_errors/wrong_type_for_reify_type.zig | 1 + test/cases/x86_64-linux/hello_world_with_updates.1.zig | 3 +- test/cases/x86_64-macos/hello_world_with_updates.1.zig | 3 +- 60 files changed, 1072 insertions(+), 401 deletions(-)