src/Sema.zig | 599 ++++++++++++++++++++++++++++---- test/cases/compile_errors/address_of_number_literal.zig | 1 + test/cases/compile_errors/attempted_implicit_cast_from_const_T_to_array_len_1_T.zig | 14 + 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/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/implicit_cast_of_error_set_not_a_subset.zig | 16 + 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 | 29 ++ test/cases/compile_errors/incorrect_return_type.zig | 2 + test/cases/compile_errors/invalid_address_space_coercion.zig | 1 + 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 | 1 + 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 | 1 + test/cases/compile_errors/pointers_with_different_address_spaces.zig | 1 + test/cases/compile_errors/shifting_RHS_is_log2_of_LHS_int_bit_width.zig | 1 + test/cases/compile_errors/slice_sentinel_mismatch-2.zig | 12 + 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/slice_sentinel_mismatch-2.zig | 12 - test/cases/compile_errors/stage1/obj/type_checking_function_pointers.zig | 13 - test/cases/compile_errors/type_checking_function_pointers.zig | 15 + test/cases/compile_errors/type_mismatch_in_C_prototype_with_varargs.zig | 2 + test/cases/compile_errors/wrong_type_for_reify_type.zig | 1 + 34 files changed, 699 insertions(+), 226 deletions(-)