aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2022-07-11 20:45:27 -0400
committerGitHub <noreply@github.com>2022-07-11 20:45:27 -0400
commit7d2e14267985df0226a5deee96d0c17c94bf6eb2 (patch)
tree7ed0b99d42c983c1ed2246d0094600a9425c65c0 /test/cases/compile_errors
parentdc815e5e8f194a03988624a6bf7e739ddfe0d3b4 (diff)
parent20d4f7213dde1ffabe0880bbee46a1de44d586fc (diff)
downloadzig-7d2e14267985df0226a5deee96d0c17c94bf6eb2.tar.gz
zig-7d2e14267985df0226a5deee96d0c17c94bf6eb2.zip
Merge pull request #12044 from Vexu/stage2-compile-errors
Sema: add detailed error notes to `coerceInMemoryAllowed`
Diffstat (limited to 'test/cases/compile_errors')
-rw-r--r--test/cases/compile_errors/address_of_number_literal.zig2
-rw-r--r--test/cases/compile_errors/any_typed_null_to_any_typed_optional.zig10
-rw-r--r--test/cases/compile_errors/assigning_to_struct_or_union_fields_that_are_not_optionals_with_a_function_that_returns_an_optional.zig (renamed from test/cases/compile_errors/stage1/obj/assigning_to_struct_or_union_fields_that_are_not_optionals_with_a_function_that_returns_an_optional.zig)6
-rw-r--r--test/cases/compile_errors/attempted_implicit_cast_from_const_T_to_array_len_1_T.zig (renamed from test/cases/compile_errors/stage1/obj/attempted_implicit_cast_from_const_T_to_array_len_1_T.zig)6
-rw-r--r--test/cases/compile_errors/cast_between_optional_T_where_T_is_not_a_pointer.zig26
-rw-r--r--test/cases/compile_errors/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig15
-rw-r--r--test/cases/compile_errors/cast_global_error_set_to_error_set.zig (renamed from test/cases/compile_errors/stage1/obj/cast_global_error_set_to_error_set.zig)6
-rw-r--r--test/cases/compile_errors/casting_bit_offset_pointer_to_regular_pointer.zig2
-rw-r--r--test/cases/compile_errors/discarding_error_value.zig3
-rw-r--r--test/cases/compile_errors/dont_implicit_cast_double_pointer_to_anyopaque.zig1
-rw-r--r--test/cases/compile_errors/error_note_for_function_parameter_incompatibility.zig13
-rw-r--r--test/cases/compile_errors/ignored_deferred_function_call.zig3
-rw-r--r--test/cases/compile_errors/ignored_expression_in_while_continuation.zig9
-rw-r--r--test/cases/compile_errors/implicit_cast_of_error_set_not_a_subset.zig (renamed from test/cases/compile_errors/stage1/obj/implicit_cast_of_error_set_not_a_subset.zig)6
-rw-r--r--test/cases/compile_errors/implicit_cast_to_c_ptr_from_int.zig15
-rw-r--r--test/cases/compile_errors/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig26
-rw-r--r--test/cases/compile_errors/implicitly_casting_enum_to_tag_type.zig1
-rw-r--r--test/cases/compile_errors/incompatible_sentinels.zig31
-rw-r--r--test/cases/compile_errors/incorrect_return_type.zig3
-rw-r--r--test/cases/compile_errors/invalid_address_space_coercion.zig2
-rw-r--r--test/cases/compile_errors/invalid_cast_from_integral_type_to_enum.zig1
-rw-r--r--test/cases/compile_errors/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig2
-rw-r--r--test/cases/compile_errors/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig14
-rw-r--r--test/cases/compile_errors/not_an_enum_type.zig1
-rw-r--r--test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig1
-rw-r--r--test/cases/compile_errors/pointer_with_different_address_spaces.zig2
-rw-r--r--test/cases/compile_errors/pointers_with_different_address_spaces.zig2
-rw-r--r--test/cases/compile_errors/regression_test_2980_base_type_u32_is_not_type_checked_properly_when_assigning_a_value_within_a_struct.zig (renamed from 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)6
-rw-r--r--test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr.zig (renamed from test/cases/compile_errors/stage1/obj/result_location_incompatibility_mismatching_handle_is_ptr.zig)6
-rw-r--r--test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr_generic_call.zig (renamed from test/cases/compile_errors/stage1/obj/result_location_incompatibility_mismatching_handle_is_ptr_generic_call.zig)6
-rw-r--r--test/cases/compile_errors/shifting_RHS_is_log2_of_LHS_int_bit_width.zig1
-rw-r--r--test/cases/compile_errors/slice_sentinel_mismatch-2.zig13
-rw-r--r--test/cases/compile_errors/stage1/obj/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig16
-rw-r--r--test/cases/compile_errors/stage1/obj/error_note_for_function_parameter_incompatibility.zig12
-rw-r--r--test/cases/compile_errors/stage1/obj/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig26
-rw-r--r--test/cases/compile_errors/stage1/obj/incompatible_sentinels.zig29
-rw-r--r--test/cases/compile_errors/stage1/obj/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig11
-rw-r--r--test/cases/compile_errors/stage1/obj/slice_sentinel_mismatch-2.zig12
-rw-r--r--test/cases/compile_errors/stage1/obj/type_checking_function_pointers.zig13
-rw-r--r--test/cases/compile_errors/stage1/test/cast_between_optional_T_where_T_is_not_a_pointer.zig15
-rw-r--r--test/cases/compile_errors/stage1/test/helpful_return_type_error_message.zig22
-rw-r--r--test/cases/compile_errors/try_in_function_with_non_error_return_type.zig1
-rw-r--r--test/cases/compile_errors/type_checking_function_pointers.zig15
-rw-r--r--test/cases/compile_errors/type_mismatch_in_C_prototype_with_varargs.zig4
-rw-r--r--test/cases/compile_errors/unreachable_with_return.zig3
-rw-r--r--test/cases/compile_errors/variable_has_wrong_type.zig1
-rw-r--r--test/cases/compile_errors/wrong_type_for_reify_type.zig1
47 files changed, 249 insertions, 173 deletions
diff --git a/test/cases/compile_errors/address_of_number_literal.zig b/test/cases/compile_errors/address_of_number_literal.zig
index 2d8380634a..c6b41a1495 100644
--- a/test/cases/compile_errors/address_of_number_literal.zig
+++ b/test/cases/compile_errors/address_of_number_literal.zig
@@ -8,3 +8,5 @@ export fn entry() usize { return @sizeOf(@TypeOf(&foo)); }
// target=native
//
// :3:30: error: expected type '*const i32', found '*const comptime_int'
+// :3:30: note: pointer type child 'comptime_int' cannot cast into pointer type child 'i32'
+// :3:10: note: function return type declared here
diff --git a/test/cases/compile_errors/any_typed_null_to_any_typed_optional.zig b/test/cases/compile_errors/any_typed_null_to_any_typed_optional.zig
index ad6427d224..6b3ffaca2f 100644
--- a/test/cases/compile_errors/any_typed_null_to_any_typed_optional.zig
+++ b/test/cases/compile_errors/any_typed_null_to_any_typed_optional.zig
@@ -1,11 +1,11 @@
-pub fn main() void {
+pub export fn entry() void {
var a: ?*anyopaque = undefined;
a = @as(?usize, null);
}
// error
-// output_mode=Exe
-// backend=stage2,llvm
-// target=x86_64-linux,x86_64-macos
+// backend=stage2
+// target=native
//
-// :3:21: error: expected type '*anyopaque', found '?usize'
+// :3:21: error: expected type '?*anyopaque', found '?usize'
+// :3:21: note: optional type child 'usize' cannot cast into optional type child '*anyopaque'
diff --git a/test/cases/compile_errors/stage1/obj/assigning_to_struct_or_union_fields_that_are_not_optionals_with_a_function_that_returns_an_optional.zig b/test/cases/compile_errors/assigning_to_struct_or_union_fields_that_are_not_optionals_with_a_function_that_returns_an_optional.zig
index 8285991c05..762eb284f2 100644
--- a/test/cases/compile_errors/stage1/obj/assigning_to_struct_or_union_fields_that_are_not_optionals_with_a_function_that_returns_an_optional.zig
+++ b/test/cases/compile_errors/assigning_to_struct_or_union_fields_that_are_not_optionals_with_a_function_that_returns_an_optional.zig
@@ -15,7 +15,9 @@ export fn entry() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:11:27: error: cannot convert optional to payload type. consider using `.?`, `orelse`, or `if`. expected type 'u8', found '?u8'
+// :11:27: error: expected type 'u8', found '?u8'
+// :11:27: note: cannot convert optional to payload type
+// :11:27: note: consider using `.?`, `orelse`, or `if`
diff --git a/test/cases/compile_errors/stage1/obj/attempted_implicit_cast_from_const_T_to_array_len_1_T.zig b/test/cases/compile_errors/attempted_implicit_cast_from_const_T_to_array_len_1_T.zig
index 760866dd65..b553d492ae 100644
--- a/test/cases/compile_errors/stage1/obj/attempted_implicit_cast_from_const_T_to_array_len_1_T.zig
+++ b/test/cases/compile_errors/attempted_implicit_cast_from_const_T_to_array_len_1_T.zig
@@ -7,8 +7,8 @@ export fn entry(byte: u8) void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:4:22: error: expected type '*[1]i32', found '*const i32'
-// tmp.zig:4:22: note: cast discards const qualifier
+// :4:22: error: expected type '*[1]i32', found '*const i32'
+// :4:22: note: cast discards const qualifier
diff --git a/test/cases/compile_errors/cast_between_optional_T_where_T_is_not_a_pointer.zig b/test/cases/compile_errors/cast_between_optional_T_where_T_is_not_a_pointer.zig
new file mode 100644
index 0000000000..dcccd0fb8a
--- /dev/null
+++ b/test/cases/compile_errors/cast_between_optional_T_where_T_is_not_a_pointer.zig
@@ -0,0 +1,26 @@
+pub const fnty1 = ?*const fn (i8) void;
+pub const fnty2 = ?*const fn (u64) void;
+export fn entry1() void {
+ var a: fnty1 = undefined;
+ var b: fnty2 = undefined;
+ a = b;
+}
+
+pub const fnty3 = ?*const fn (u63) void;
+export fn entry2() void {
+ var a: fnty3 = undefined;
+ var b: fnty2 = undefined;
+ a = b;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :6:9: error: expected type '?*const fn(i8) void', found '?*const fn(u64) void'
+// :6:9: note: pointer type child 'fn(u64) void' cannot cast into pointer type child 'fn(i8) void'
+// :6:9: note: parameter 0 'u64' cannot cast into 'i8'
+// :6:9: note: unsigned 64-bit int cannot represent all possible signed 8-bit values
+// :13:9: error: expected type '?*const fn(u63) void', found '?*const fn(u64) void'
+// :13:9: note: pointer type child 'fn(u64) void' cannot cast into pointer type child 'fn(u63) void'
+// :13:9: note: parameter 0 'u64' cannot cast into 'u63'
diff --git a/test/cases/compile_errors/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig b/test/cases/compile_errors/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig
new file mode 100644
index 0000000000..36a17d734b
--- /dev/null
+++ b/test/cases/compile_errors/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig
@@ -0,0 +1,15 @@
+const SmallErrorSet = error{A};
+export fn entry() void {
+ var x: SmallErrorSet!i32 = foo();
+ _ = x;
+}
+fn foo() anyerror!i32 {
+ return error.B;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :3:35: error: expected type 'error{A}!i32', found 'anyerror!i32'
+// :3:35: note: global error set cannot cast into a smaller set
diff --git a/test/cases/compile_errors/stage1/obj/cast_global_error_set_to_error_set.zig b/test/cases/compile_errors/cast_global_error_set_to_error_set.zig
index be9487cc5a..39d9474016 100644
--- a/test/cases/compile_errors/stage1/obj/cast_global_error_set_to_error_set.zig
+++ b/test/cases/compile_errors/cast_global_error_set_to_error_set.zig
@@ -8,8 +8,8 @@ fn foo() anyerror {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:3:31: error: expected type 'SmallErrorSet', found 'anyerror'
-// tmp.zig:3:31: note: cannot cast global error set into smaller set
+// :3:31: error: expected type 'error{A}', found 'anyerror'
+// :3:31: note: global error set cannot cast into a smaller set
diff --git a/test/cases/compile_errors/casting_bit_offset_pointer_to_regular_pointer.zig b/test/cases/compile_errors/casting_bit_offset_pointer_to_regular_pointer.zig
index 083d68ee40..f25a4a656b 100644
--- a/test/cases/compile_errors/casting_bit_offset_pointer_to_regular_pointer.zig
+++ b/test/cases/compile_errors/casting_bit_offset_pointer_to_regular_pointer.zig
@@ -19,3 +19,5 @@ export fn entry() usize { return @sizeOf(@TypeOf(&foo)); }
// target=native
//
// :8:15: error: expected type '*const u3', found '*align(0:3:1) const u3'
+// :8:15: note: pointer host size '1' cannot cast into pointer host size '0'
+// :8:15: note: pointer bit offset '3' cannot cast into pointer bit offset '0'
diff --git a/test/cases/compile_errors/discarding_error_value.zig b/test/cases/compile_errors/discarding_error_value.zig
index f74fc4ea29..6dfe0be231 100644
--- a/test/cases/compile_errors/discarding_error_value.zig
+++ b/test/cases/compile_errors/discarding_error_value.zig
@@ -9,4 +9,5 @@ fn foo() !void {
// backend=stage2
// target=native
//
-// :2:12: error: error is discarded. consider using `try`, `catch`, or `if`
+// :2:12: error: error is discarded
+// :2:12: note: consider using `try`, `catch`, or `if`
diff --git a/test/cases/compile_errors/dont_implicit_cast_double_pointer_to_anyopaque.zig b/test/cases/compile_errors/dont_implicit_cast_double_pointer_to_anyopaque.zig
index 2ba566f221..44ae18ae8a 100644
--- a/test/cases/compile_errors/dont_implicit_cast_double_pointer_to_anyopaque.zig
+++ b/test/cases/compile_errors/dont_implicit_cast_double_pointer_to_anyopaque.zig
@@ -11,3 +11,4 @@ export fn entry() void {
// target=native
//
// :5:28: error: expected type '*anyopaque', found '**u32'
+// :5:28: note: pointer type child '*u32' cannot cast into pointer type child 'anyopaque'
diff --git a/test/cases/compile_errors/error_note_for_function_parameter_incompatibility.zig b/test/cases/compile_errors/error_note_for_function_parameter_incompatibility.zig
new file mode 100644
index 0000000000..c43df47dfd
--- /dev/null
+++ b/test/cases/compile_errors/error_note_for_function_parameter_incompatibility.zig
@@ -0,0 +1,13 @@
+fn do_the_thing(func: *const fn (arg: i32) void) void { _ = func; }
+fn bar(arg: bool) void { _ = arg; }
+export fn entry() void {
+ do_the_thing(bar);
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :4:17: error: expected type '*const fn(i32) void', found '*const fn(bool) void'
+// :4:17: note: pointer type child 'fn(bool) void' cannot cast into pointer type child 'fn(i32) void'
+// :4:17: note: parameter 0 'bool' cannot cast into 'i32'
diff --git a/test/cases/compile_errors/ignored_deferred_function_call.zig b/test/cases/compile_errors/ignored_deferred_function_call.zig
index 69df8b0498..05c4373705 100644
--- a/test/cases/compile_errors/ignored_deferred_function_call.zig
+++ b/test/cases/compile_errors/ignored_deferred_function_call.zig
@@ -7,4 +7,5 @@ fn bar() anyerror!i32 { return 0; }
// backend=stage2
// target=native
//
-// :2:14: error: error is ignored. consider using `try`, `catch`, or `if`
+// :2:14: error: error is ignored
+// :2:14: note: consider using `try`, `catch`, or `if`
diff --git a/test/cases/compile_errors/ignored_expression_in_while_continuation.zig b/test/cases/compile_errors/ignored_expression_in_while_continuation.zig
index d295d476ab..d7de0aac57 100644
--- a/test/cases/compile_errors/ignored_expression_in_while_continuation.zig
+++ b/test/cases/compile_errors/ignored_expression_in_while_continuation.zig
@@ -17,6 +17,9 @@ fn bad() anyerror!void {
// backend=stage2
// target=native
//
-// :2:24: error: error is ignored. consider using `try`, `catch`, or `if`
-// :6:25: error: error is ignored. consider using `try`, `catch`, or `if`
-// :10:25: error: error is ignored. consider using `try`, `catch`, or `if`
+// :2:24: error: error is ignored
+// :2:24: note: consider using `try`, `catch`, or `if`
+// :6:25: error: error is ignored
+// :6:25: note: consider using `try`, `catch`, or `if`
+// :10:25: error: error is ignored
+// :10:25: note: consider using `try`, `catch`, or `if`
diff --git a/test/cases/compile_errors/stage1/obj/implicit_cast_of_error_set_not_a_subset.zig b/test/cases/compile_errors/implicit_cast_of_error_set_not_a_subset.zig
index 5958a41639..0a182343b9 100644
--- a/test/cases/compile_errors/stage1/obj/implicit_cast_of_error_set_not_a_subset.zig
+++ b/test/cases/compile_errors/implicit_cast_of_error_set_not_a_subset.zig
@@ -9,8 +9,8 @@ fn foo(set1: Set1) void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:7:19: error: expected type 'Set2', found 'Set1'
-// tmp.zig:1:23: note: 'error.B' not a member of destination error set
+// :7:19: error: expected type 'error{A,C}', found 'error{A,B}'
+// :7:19: note: 'error.B' not a member of destination error set
diff --git a/test/cases/compile_errors/implicit_cast_to_c_ptr_from_int.zig b/test/cases/compile_errors/implicit_cast_to_c_ptr_from_int.zig
new file mode 100644
index 0000000000..bcf15569ff
--- /dev/null
+++ b/test/cases/compile_errors/implicit_cast_to_c_ptr_from_int.zig
@@ -0,0 +1,15 @@
+const std = @import("std");
+export fn entry1() void {
+ _ = @as([*c]u8, @as(u65, std.math.maxInt(u65)));
+}
+export fn entry2() void {
+ _ = @as([*c]u8, std.math.maxInt(u65));
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :3:21: error: expected type '[*c]u8', found 'u65'
+// :3:21: note: unsigned 64-bit int cannot represent all possible unsigned 65-bit values
+// :6:36: error: expected type '[*c]u8', found 'comptime_int'
diff --git a/test/cases/compile_errors/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig b/test/cases/compile_errors/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig
new file mode 100644
index 0000000000..ecdc6c14c9
--- /dev/null
+++ b/test/cases/compile_errors/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig
@@ -0,0 +1,26 @@
+export fn entry() void {
+ var slice: []const u8 = "aoeu";
+ const opt_many_ptr: [*]const u8 = slice.ptr;
+ var ptr_opt_many_ptr = &opt_many_ptr;
+ var c_ptr: [*c]const [*c]const u8 = ptr_opt_many_ptr;
+ ptr_opt_many_ptr = c_ptr;
+}
+export fn entry2() void {
+ var buf: [4]u8 = "aoeu".*;
+ var slice: []u8 = &buf;
+ var opt_many_ptr: [*]u8 = slice.ptr;
+ var ptr_opt_many_ptr = &opt_many_ptr;
+ var c_ptr: [*c][*c]const u8 = ptr_opt_many_ptr;
+ _ = c_ptr;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :6:24: error: expected type '*const [*]const u8', found '[*c]const [*c]const u8'
+// :6:24: note: pointer type child '[*c]const u8' cannot cast into pointer type child '[*]const u8'
+// :6:24: note: '[*c]const u8' could have null values which are illegal in type '[*]const u8'
+// :13:35: error: expected type '[*c][*c]const u8', found '*[*]u8'
+// :13:35: note: pointer type child '[*]u8' cannot cast into pointer type child '[*c]const u8'
+// :13:35: note: mutable '[*]u8' allows illegal null values stored to type '[*c]const u8'
diff --git a/test/cases/compile_errors/implicitly_casting_enum_to_tag_type.zig b/test/cases/compile_errors/implicitly_casting_enum_to_tag_type.zig
index b1930cb548..2f7686c93d 100644
--- a/test/cases/compile_errors/implicitly_casting_enum_to_tag_type.zig
+++ b/test/cases/compile_errors/implicitly_casting_enum_to_tag_type.zig
@@ -15,3 +15,4 @@ export fn entry() void {
// target=native
//
// :9:22: error: expected type 'u2', found 'tmp.Small'
+// :1:15: note: enum declared here
diff --git a/test/cases/compile_errors/incompatible_sentinels.zig b/test/cases/compile_errors/incompatible_sentinels.zig
new file mode 100644
index 0000000000..821a0a8c69
--- /dev/null
+++ b/test/cases/compile_errors/incompatible_sentinels.zig
@@ -0,0 +1,31 @@
+// Note: One of the error messages here is backwards. It would be nice to fix, but that's not
+// going to stop me from merging this branch which fixes a bunch of other stuff.
+export fn entry1(ptr: [*:255]u8) [*:0]u8 {
+ return ptr;
+}
+export fn entry2(ptr: [*]u8) [*:0]u8 {
+ return ptr;
+}
+export fn entry3() void {
+ var array: [2:0]u8 = [_:255]u8{ 1, 2 };
+ _ = array;
+}
+export fn entry4() void {
+ var array: [2:0]u8 = [_]u8{ 1, 2 };
+ _ = array;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :4:12: error: expected type '[*:0]u8', found '[*:255]u8'
+// :4:12: note: pointer sentinel '255' cannot cast into pointer sentinel '0'
+// :3:35: note: function return type declared here
+// :7:12: error: expected type '[*:0]u8', found '[*]u8'
+// :7:12: note: destination pointer requires '0' sentinel
+// :6:31: note: function return type declared here
+// :10:35: error: expected type '[2:0]u8', found '[2:255]u8'
+// :10:35: note: array sentinel '255' cannot cast into array sentinel '0'
+// :14:31: error: expected type '[2:0]u8', found '[2]u8'
+// :14:31: note: destination array requires '0' sentinel
diff --git a/test/cases/compile_errors/incorrect_return_type.zig b/test/cases/compile_errors/incorrect_return_type.zig
index b37cbebc7f..57cf54a023 100644
--- a/test/cases/compile_errors/incorrect_return_type.zig
+++ b/test/cases/compile_errors/incorrect_return_type.zig
@@ -19,3 +19,6 @@
// target=native
//
// :8:16: error: expected type 'tmp.A', found 'tmp.B'
+// :10:12: note: struct declared here
+// :4:12: note: struct declared here
+// :7:11: note: function return type declared here
diff --git a/test/cases/compile_errors/invalid_address_space_coercion.zig b/test/cases/compile_errors/invalid_address_space_coercion.zig
index fd49aecb32..4633b12e0f 100644
--- a/test/cases/compile_errors/invalid_address_space_coercion.zig
+++ b/test/cases/compile_errors/invalid_address_space_coercion.zig
@@ -11,3 +11,5 @@ pub fn main() void {
// target=x86_64-linux,x86_64-macos
//
// :2:12: error: expected type '*i32', found '*addrspace(.gs) i32'
+// :2:12: note: address space 'gs' cannot cast into address space 'generic'
+// :1:34: note: function return type declared here
diff --git a/test/cases/compile_errors/invalid_cast_from_integral_type_to_enum.zig b/test/cases/compile_errors/invalid_cast_from_integral_type_to_enum.zig
index ce2f64169b..0041976683 100644
--- a/test/cases/compile_errors/invalid_cast_from_integral_type_to_enum.zig
+++ b/test/cases/compile_errors/invalid_cast_from_integral_type_to_enum.zig
@@ -15,3 +15,4 @@ fn foo(x: usize) void {
// target=native
//
// :9:10: error: expected type 'usize', found 'tmp.E'
+// :1:11: note: enum declared here
diff --git a/test/cases/compile_errors/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig b/test/cases/compile_errors/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig
index 1560dcc46a..4d7b3c627b 100644
--- a/test/cases/compile_errors/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig
+++ b/test/cases/compile_errors/invalid_pointer_keeps_address_space_when_taking_address_of_dereference.zig
@@ -11,3 +11,5 @@ pub fn main() void {
// target=x86_64-linux,x86_64-macos
//
// :2:12: error: expected type '*i32', found '*addrspace(.gs) i32'
+// :2:12: note: address space 'gs' cannot cast into address space 'generic'
+// :1:34: note: function return type declared here
diff --git a/test/cases/compile_errors/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig b/test/cases/compile_errors/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig
new file mode 100644
index 0000000000..f4716bc24d
--- /dev/null
+++ b/test/cases/compile_errors/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig
@@ -0,0 +1,14 @@
+export fn foo() void {
+ var u: ?*anyopaque = null;
+ var v: *anyopaque = undefined;
+ v = u;
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :4:9: error: expected type '*anyopaque', found '?*anyopaque'
+// :4:9: note: cannot convert optional to payload type
+// :4:9: note: consider using `.?`, `orelse`, or `if`
+// :4:9: note: '?*anyopaque' could have null values which are illegal in type '*anyopaque'
diff --git a/test/cases/compile_errors/not_an_enum_type.zig b/test/cases/compile_errors/not_an_enum_type.zig
index 6868cf7dc0..063ee8a8d8 100644
--- a/test/cases/compile_errors/not_an_enum_type.zig
+++ b/test/cases/compile_errors/not_an_enum_type.zig
@@ -17,3 +17,4 @@ const ExpectedVarDeclOrFn = struct {};
// target=native
//
// :4:9: error: expected type '@typeInfo(tmp.Error).Union.tag_type.?', found 'type'
+// :8:1: note: enum declared here
diff --git a/test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig b/test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig
index 3ddd24f7a9..6deb06b1ff 100644
--- a/test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig
+++ b/test/cases/compile_errors/passing_a_not-aligned-enough_pointer_to_cmpxchg.zig
@@ -10,3 +10,4 @@ export fn entry() bool {
// target=native
//
// :4:31: error: expected type '*i32', found '*align(1) i32'
+// :4:31: note: pointer alignment '1' cannot cast into pointer alignment '4'
diff --git a/test/cases/compile_errors/pointer_with_different_address_spaces.zig b/test/cases/compile_errors/pointer_with_different_address_spaces.zig
index b16c4a4e64..2bbea3d3b6 100644
--- a/test/cases/compile_errors/pointer_with_different_address_spaces.zig
+++ b/test/cases/compile_errors/pointer_with_different_address_spaces.zig
@@ -11,3 +11,5 @@ export fn entry2() void {
// target=x86_64-linux,x86_64-macos
//
// :2:12: error: expected type '*addrspace(.fs) i32', found '*addrspace(.gs) i32'
+// :2:12: note: address space 'gs' cannot cast into address space 'fs'
+// :1:34: note: function return type declared here
diff --git a/test/cases/compile_errors/pointers_with_different_address_spaces.zig b/test/cases/compile_errors/pointers_with_different_address_spaces.zig
index 210c252893..e952da2af5 100644
--- a/test/cases/compile_errors/pointers_with_different_address_spaces.zig
+++ b/test/cases/compile_errors/pointers_with_different_address_spaces.zig
@@ -11,3 +11,5 @@ pub fn main() void {
// target=x86_64-linux,x86_64-macos
//
// :2:13: error: expected type '*i32', found '*addrspace(.gs) i32'
+// :2:13: note: address space 'gs' cannot cast into address space 'generic'
+// :1:35: note: function return type declared here
diff --git a/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 b/test/cases/compile_errors/regression_test_2980_base_type_u32_is_not_type_checked_properly_when_assigning_a_value_within_a_struct.zig
index 8be44fbe05..09c496211a 100644
--- a/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
+++ b/test/cases/compile_errors/regression_test_2980_base_type_u32_is_not_type_checked_properly_when_assigning_a_value_within_a_struct.zig
@@ -15,7 +15,9 @@ export fn entry() void {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:12:25: error: cannot convert error union to payload type. consider using `try`, `catch`, or `if`. expected type 'u32', found '@typeInfo(@typeInfo(@TypeOf(get_uval)).Fn.return_type.?).ErrorUnion.error_set!u32'
+// :12:25: error: expected type 'u32', found '@typeInfo(@typeInfo(@TypeOf(tmp.get_uval)).Fn.return_type.?).ErrorUnion.error_set!u32'
+// :12:25: note: cannot convert error union to payload type
+// :12:25: note: consider using `try`, `catch`, or `if`
diff --git a/test/cases/compile_errors/stage1/obj/result_location_incompatibility_mismatching_handle_is_ptr.zig b/test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr.zig
index 18dd6382fc..cc1d2c976a 100644
--- a/test/cases/compile_errors/stage1/obj/result_location_incompatibility_mismatching_handle_is_ptr.zig
+++ b/test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr.zig
@@ -12,7 +12,9 @@ pub const Container = struct {
};
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:3:36: error: cannot convert optional to payload type. consider using `.?`, `orelse`, or `if`. expected type 'i32', found '?i32'
+// :3:36: error: expected type 'i32', found '?i32'
+// :3:36: note: cannot convert optional to payload type
+// :3:36: note: consider using `.?`, `orelse`, or `if`
diff --git a/test/cases/compile_errors/stage1/obj/result_location_incompatibility_mismatching_handle_is_ptr_generic_call.zig b/test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr_generic_call.zig
index 75811c58e1..897675d448 100644
--- a/test/cases/compile_errors/stage1/obj/result_location_incompatibility_mismatching_handle_is_ptr_generic_call.zig
+++ b/test/cases/compile_errors/result_location_incompatibility_mismatching_handle_is_ptr_generic_call.zig
@@ -12,7 +12,9 @@ pub const Container = struct {
};
// error
-// backend=stage1
+// backend=stage2
// target=native
//
-// tmp.zig:3:36: error: cannot convert optional to payload type. consider using `.?`, `orelse`, or `if`. expected type 'i32', found '?i32'
+// :3:36: error: expected type 'i32', found '?i32'
+// :3:36: note: cannot convert optional to payload type
+// :3:36: note: consider using `.?`, `orelse`, or `if`
diff --git a/test/cases/compile_errors/shifting_RHS_is_log2_of_LHS_int_bit_width.zig b/test/cases/compile_errors/shifting_RHS_is_log2_of_LHS_int_bit_width.zig
index a2104d1aa6..5141062a0b 100644
--- a/test/cases/compile_errors/shifting_RHS_is_log2_of_LHS_int_bit_width.zig
+++ b/test/cases/compile_errors/shifting_RHS_is_log2_of_LHS_int_bit_width.zig
@@ -7,3 +7,4 @@ export fn entry(x: u8, y: u8) u8 {
// target=native
//
// :2:17: error: expected type 'u3', found 'u8'
+// :2:17: note: unsigned 3-bit int cannot represent all possible unsigned 8-bit values
diff --git a/test/cases/compile_errors/slice_sentinel_mismatch-2.zig b/test/cases/compile_errors/slice_sentinel_mismatch-2.zig
new file mode 100644
index 0000000000..3cc5ac4c39
--- /dev/null
+++ b/test/cases/compile_errors/slice_sentinel_mismatch-2.zig
@@ -0,0 +1,13 @@
+fn foo() [:0]u8 {
+ var x: []u8 = undefined;
+ return x;
+}
+comptime { _ = foo; }
+
+// error
+// backend=stage2
+// target=native
+//
+// :3:12: error: expected type '[:0]u8', found '[]u8'
+// :3:12: note: destination pointer requires '0' sentinel
+// :1:10: note: function return type declared here
diff --git a/test/cases/compile_errors/stage1/obj/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig b/test/cases/compile_errors/stage1/obj/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig
deleted file mode 100644
index 08962afc85..0000000000
--- a/test/cases/compile_errors/stage1/obj/cast_error_union_of_global_error_set_to_error_union_of_smaller_error_set.zig
+++ /dev/null
@@ -1,16 +0,0 @@
-const SmallErrorSet = error{A};
-export fn entry() void {
- var x: SmallErrorSet!i32 = foo();
- _ = x;
-}
-fn foo() anyerror!i32 {
- return error.B;
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:3:35: error: expected type 'SmallErrorSet!i32', found 'anyerror!i32'
-// tmp.zig:3:35: note: error set 'anyerror' cannot cast into error set 'SmallErrorSet'
-// tmp.zig:3:35: note: cannot cast global error set into smaller set
diff --git a/test/cases/compile_errors/stage1/obj/error_note_for_function_parameter_incompatibility.zig b/test/cases/compile_errors/stage1/obj/error_note_for_function_parameter_incompatibility.zig
deleted file mode 100644
index edc421d8f4..0000000000
--- a/test/cases/compile_errors/stage1/obj/error_note_for_function_parameter_incompatibility.zig
+++ /dev/null
@@ -1,12 +0,0 @@
-fn do_the_thing(func: fn (arg: i32) void) void { _ = func; }
-fn bar(arg: bool) void { _ = arg; }
-export fn entry() void {
- do_the_thing(bar);
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:4:18: error: expected type 'fn(i32) void', found 'fn(bool) void
-// tmp.zig:4:18: note: parameter 0: 'bool' cannot cast into 'i32'
diff --git a/test/cases/compile_errors/stage1/obj/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig b/test/cases/compile_errors/stage1/obj/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig
deleted file mode 100644
index 760bab41da..0000000000
--- a/test/cases/compile_errors/stage1/obj/implicit_casting_C_pointers_which_would_mess_up_null_semantics.zig
+++ /dev/null
@@ -1,26 +0,0 @@
-export fn entry() void {
- var slice: []const u8 = "aoeu";
- const opt_many_ptr: [*]const u8 = slice.ptr;
- var ptr_opt_many_ptr = &opt_many_ptr;
- var c_ptr: [*c]const [*c]const u8 = ptr_opt_many_ptr;
- ptr_opt_many_ptr = c_ptr;
-}
-export fn entry2() void {
- var buf: [4]u8 = "aoeu".*;
- var slice: []u8 = &buf;
- var opt_many_ptr: [*]u8 = slice.ptr;
- var ptr_opt_many_ptr = &opt_many_ptr;
- var c_ptr: [*c][*c]const u8 = ptr_opt_many_ptr;
- _ = c_ptr;
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:6:24: error: expected type '*const [*]const u8', found '[*c]const [*c]const u8'
-// tmp.zig:6:24: note: pointer type child '[*c]const u8' cannot cast into pointer type child '[*]const u8'
-// tmp.zig:6:24: note: '[*c]const u8' could have null values which are illegal in type '[*]const u8'
-// tmp.zig:13:35: error: expected type '[*c][*c]const u8', found '*[*]u8'
-// tmp.zig:13:35: note: pointer type child '[*]u8' cannot cast into pointer type child '[*c]const u8'
-// tmp.zig:13:35: note: mutable '[*c]const u8' allows illegal null values stored to type '[*]u8'
diff --git a/test/cases/compile_errors/stage1/obj/incompatible_sentinels.zig b/test/cases/compile_errors/stage1/obj/incompatible_sentinels.zig
deleted file mode 100644
index a292ae3d7c..0000000000
--- a/test/cases/compile_errors/stage1/obj/incompatible_sentinels.zig
+++ /dev/null
@@ -1,29 +0,0 @@
-// Note: One of the error messages here is backwards. It would be nice to fix, but that's not
-// going to stop me from merging this branch which fixes a bunch of other stuff.
-export fn entry1(ptr: [*:255]u8) [*:0]u8 {
- return ptr;
-}
-export fn entry2(ptr: [*]u8) [*:0]u8 {
- return ptr;
-}
-export fn entry3() void {
- var array: [2:0]u8 = [_:255]u8{ 1, 2 };
- _ = array;
-}
-export fn entry4() void {
- var array: [2:0]u8 = [_]u8{ 1, 2 };
- _ = array;
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:4:12: error: expected type '[*:0]u8', found '[*:255]u8'
-// tmp.zig:4:12: note: destination pointer requires a terminating '0' sentinel, but source pointer has a terminating '255' sentinel
-// tmp.zig:7:12: error: expected type '[*:0]u8', found '[*]u8'
-// tmp.zig:7:12: note: destination pointer requires a terminating '0' sentinel
-// tmp.zig:10:35: error: expected type '[2:255]u8', found '[2:0]u8'
-// tmp.zig:10:35: note: destination array requires a terminating '255' sentinel, but source array has a terminating '0' sentinel
-// tmp.zig:14:31: error: expected type '[2:0]u8', found '[2]u8'
-// tmp.zig:14:31: note: destination array requires a terminating '0' sentinel
diff --git a/test/cases/compile_errors/stage1/obj/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig b/test/cases/compile_errors/stage1/obj/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig
deleted file mode 100644
index 9ba9910838..0000000000
--- a/test/cases/compile_errors/stage1/obj/issue_5618_coercion_of_optional_anyopaque_to_anyopaque_must_fail.zig
+++ /dev/null
@@ -1,11 +0,0 @@
-export fn foo() void {
- var u: ?*anyopaque = null;
- var v: *anyopaque = undefined;
- v = u;
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:4:9: error: cannot convert optional to payload type. consider using `.?`, `orelse`, or `if`. expected type '*anyopaque', found '?*anyopaque'
diff --git a/test/cases/compile_errors/stage1/obj/slice_sentinel_mismatch-2.zig b/test/cases/compile_errors/stage1/obj/slice_sentinel_mismatch-2.zig
deleted file mode 100644
index 5f8d312a3c..0000000000
--- a/test/cases/compile_errors/stage1/obj/slice_sentinel_mismatch-2.zig
+++ /dev/null
@@ -1,12 +0,0 @@
-fn foo() [:0]u8 {
- var x: []u8 = undefined;
- return x;
-}
-comptime { _ = foo; }
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:3:12: error: expected type '[:0]u8', found '[]u8'
-// tmp.zig:3:12: note: destination pointer requires a terminating '0' sentinel
diff --git a/test/cases/compile_errors/stage1/obj/type_checking_function_pointers.zig b/test/cases/compile_errors/stage1/obj/type_checking_function_pointers.zig
deleted file mode 100644
index b88b6bdb52..0000000000
--- a/test/cases/compile_errors/stage1/obj/type_checking_function_pointers.zig
+++ /dev/null
@@ -1,13 +0,0 @@
-fn a(b: fn (*const u8) void) void {
- b('a');
-}
-fn c(d: u8) void {_ = d;}
-export fn entry() void {
- a(c);
-}
-
-// error
-// backend=stage1
-// target=native
-//
-// tmp.zig:6:7: error: expected type 'fn(*const u8) void', found 'fn(u8) void'
diff --git a/test/cases/compile_errors/stage1/test/cast_between_optional_T_where_T_is_not_a_pointer.zig b/test/cases/compile_errors/stage1/test/cast_between_optional_T_where_T_is_not_a_pointer.zig
deleted file mode 100644
index b8392ff5db..0000000000
--- a/test/cases/compile_errors/stage1/test/cast_between_optional_T_where_T_is_not_a_pointer.zig
+++ /dev/null
@@ -1,15 +0,0 @@
-pub const fnty1 = ?fn (i8) void;
-pub const fnty2 = ?fn (u64) void;
-export fn entry() void {
- var a: fnty1 = undefined;
- var b: fnty2 = undefined;
- a = b;
-}
-
-// error
-// backend=stage1
-// target=native
-// is_test=1
-//
-// tmp.zig:6:9: error: expected type '?fn(i8) void', found '?fn(u64) void'
-// tmp.zig:6:9: note: optional type child 'fn(u64) void' cannot cast into optional type child 'fn(i8) void'
diff --git a/test/cases/compile_errors/stage1/test/helpful_return_type_error_message.zig b/test/cases/compile_errors/stage1/test/helpful_return_type_error_message.zig
index 0e97c09de2..b8e48036de 100644
--- a/test/cases/compile_errors/stage1/test/helpful_return_type_error_message.zig
+++ b/test/cases/compile_errors/stage1/test/helpful_return_type_error_message.zig
@@ -16,15 +16,17 @@ export fn quux() u32 {
}
// error
-// backend=stage1
+// backend=stage2
// target=native
-// is_test=1
//
-// tmp.zig:2:17: error: expected type 'u32', found 'error{Ohno}'
-// tmp.zig:1:17: note: function cannot return an error
-// tmp.zig:8:5: error: expected type 'void', found '@typeInfo(@typeInfo(@TypeOf(bar)).Fn.return_type.?).ErrorUnion.error_set'
-// tmp.zig:7:17: note: function cannot return an error
-// tmp.zig:11:15: error: cannot convert error union to payload type. consider using `try`, `catch`, or `if`. expected type 'u32', found '@typeInfo(@typeInfo(@TypeOf(bar)).Fn.return_type.?).ErrorUnion.error_set!u32'
-// tmp.zig:10:17: note: function cannot return an error
-// tmp.zig:15:14: error: cannot convert error union to payload type. consider using `try`, `catch`, or `if`. expected type 'u32', found '@typeInfo(@typeInfo(@TypeOf(bar)).Fn.return_type.?).ErrorUnion.error_set!u32'
-// tmp.zig:14:5: note: cannot store an error in type 'u32'
+// :2:18: error: expected type 'u32', found 'error{Ohno}'
+// :1:17: note: function cannot return an error
+// :8:5: error: expected type 'void', found '@typeInfo(@typeInfo(@TypeOf(tmp.bar)).Fn.return_type.?).ErrorUnion.error_set'
+// :7:17: note: function cannot return an error
+// :11:15: error: expected type 'u32', found '@typeInfo(@typeInfo(@TypeOf(tmp.bar)).Fn.return_type.?).ErrorUnion.error_set!u32'
+// :10:17: note: function cannot return an error
+// :11:15: note: cannot convert error union to payload type
+// :11:15: note: consider using `try`, `catch`, or `if`
+// :15:14: error: expected type 'u32', found '@typeInfo(@typeInfo(@TypeOf(tmp.bar)).Fn.return_type.?).ErrorUnion.error_set!u32'
+// :15:14: note: cannot convert error union to payload type
+// :15:14: note: consider using `try`, `catch`, or `if`
diff --git a/test/cases/compile_errors/try_in_function_with_non_error_return_type.zig b/test/cases/compile_errors/try_in_function_with_non_error_return_type.zig
index 2107c2a397..44d8b9ee56 100644
--- a/test/cases/compile_errors/try_in_function_with_non_error_return_type.zig
+++ b/test/cases/compile_errors/try_in_function_with_non_error_return_type.zig
@@ -8,3 +8,4 @@ fn something() anyerror!void { }
// target=native
//
// :2:5: error: expected type 'void', found 'anyerror'
+// :1:15: note: function cannot return an error
diff --git a/test/cases/compile_errors/type_checking_function_pointers.zig b/test/cases/compile_errors/type_checking_function_pointers.zig
new file mode 100644
index 0000000000..e6c7a7a1f7
--- /dev/null
+++ b/test/cases/compile_errors/type_checking_function_pointers.zig
@@ -0,0 +1,15 @@
+fn a(b: *const fn (*const u8) void) void {
+ _ = b;
+}
+fn c(d: u8) void {_ = d;}
+export fn entry() void {
+ a(c);
+}
+
+// error
+// backend=stage2
+// target=native
+//
+// :6:6: error: expected type '*const fn(*const u8) void', found '*const fn(u8) void'
+// :6:6: note: pointer type child 'fn(u8) void' cannot cast into pointer type child 'fn(*const u8) void'
+// :6:6: note: parameter 0 'u8' cannot cast into '*const u8'
diff --git a/test/cases/compile_errors/type_mismatch_in_C_prototype_with_varargs.zig b/test/cases/compile_errors/type_mismatch_in_C_prototype_with_varargs.zig
index 125ded95d6..66256fc9e9 100644
--- a/test/cases/compile_errors/type_mismatch_in_C_prototype_with_varargs.zig
+++ b/test/cases/compile_errors/type_mismatch_in_C_prototype_with_varargs.zig
@@ -10,4 +10,6 @@ export fn main() void {
// backend=stage2
// target=native
//
-// :5:22: error: expected type 'fn([*c]u8, ...) callconv(.C) void', found 'fn([*:0]u8, ...) callconv(.C) void'
+// :5:22: error: expected type '?fn([*c]u8, ...) callconv(.C) void', found 'fn([*:0]u8, ...) callconv(.C) void'
+// :5:22: note: parameter 0 '[*:0]u8' cannot cast into '[*c]u8'
+// :5:22: note: '[*c]u8' could have null values which are illegal in type '[*:0]u8'
diff --git a/test/cases/compile_errors/unreachable_with_return.zig b/test/cases/compile_errors/unreachable_with_return.zig
index cc6439ca0f..5293734c82 100644
--- a/test/cases/compile_errors/unreachable_with_return.zig
+++ b/test/cases/compile_errors/unreachable_with_return.zig
@@ -5,4 +5,5 @@ export fn entry() void { a(); }
// backend=stage2
// target=native
//
-// :1:18: error: expected type 'noreturn', found 'void'
+// :1:18: error: function declared 'noreturn' returns
+// :1:8: note: 'noreturn' declared here
diff --git a/test/cases/compile_errors/variable_has_wrong_type.zig b/test/cases/compile_errors/variable_has_wrong_type.zig
index ec21c610e0..e99921db9f 100644
--- a/test/cases/compile_errors/variable_has_wrong_type.zig
+++ b/test/cases/compile_errors/variable_has_wrong_type.zig
@@ -8,3 +8,4 @@ export fn f() i32 {
// target=native
//
// :3:12: error: expected type 'i32', found '*const [1:0]u8'
+// :1:15: note: function return type declared here
diff --git a/test/cases/compile_errors/wrong_type_for_reify_type.zig b/test/cases/compile_errors/wrong_type_for_reify_type.zig
index 7f712b441f..b88f6563b5 100644
--- a/test/cases/compile_errors/wrong_type_for_reify_type.zig
+++ b/test/cases/compile_errors/wrong_type_for_reify_type.zig
@@ -7,3 +7,4 @@ export fn entry() void {
// target=native
//
// :2:15: error: expected type 'builtin.Type', found 'comptime_int'
+// :?:?: note: union declared here