aboutsummaryrefslogtreecommitdiff
path: root/test/cases/compile_errors
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2023-03-09 18:22:51 -0700
committerAndrew Kelley <andrew@ziglang.org>2023-03-15 10:48:14 -0700
commit29cfd47d6509fc6ee1a165b3bc03180f6cf351a5 (patch)
treeb5c91bf3715f488713e24fc61dff030d7ccbad28 /test/cases/compile_errors
parent7cc4a6965c28e427cbfba57a985f837734d6257e (diff)
downloadzig-29cfd47d6509fc6ee1a165b3bc03180f6cf351a5.tar.gz
zig-29cfd47d6509fc6ee1a165b3bc03180f6cf351a5.zip
re-enable test-cases and get them all passing
Instead of using `zig test` to build a special version of the compiler that runs all the test-cases, the zig build system is now used as much as possible - all with the basic steps found in the standard library. For incremental compilation tests (the ones that look like foo.0.zig, foo.1.zig, foo.2.zig, etc.), a special version of the compiler is compiled into a utility executable called "check-case" which checks exactly one sequence of incremental updates in an independent subprocess. Previously, all incremental and non-incremental test cases were done in the same test runner process. The compile error checking code is now simpler, but also a bit rudimentary, and so it additionally makes sure that the actual compile errors do not include *extra* messages, and it makes sure that the actual compile errors output in the same order as expected. It is also based on the "ends-with" property of each line rather than the previous logic, which frankly I didn't want to touch with a ten-meter pole. The compile error test cases have been updated to pass in light of these differences. Previously, 'error' mode with 0 compile errors was used to shoehorn in a different kind of test-case - one that only checks if a piece of code compiles without errors. Now there is a 'compile' mode of test-cases, and 'error' must be only used when there are greater than 0 errors. link test cases are updated to omit the target object format argument when calling checkObject since that is no longer needed. The test/stage2 directory is removed; the 2 files within are moved to be directly in the test/ directory.
Diffstat (limited to 'test/cases/compile_errors')
-rw-r--r--test/cases/compile_errors/access_inactive_union_field_comptime.zig1
-rw-r--r--test/cases/compile_errors/bad_import.zig2
-rw-r--r--test/cases/compile_errors/condition_comptime_reason_explained.zig2
-rw-r--r--test/cases/compile_errors/directly_embedding_opaque_type_in_struct_and_union.zig1
-rw-r--r--test/cases/compile_errors/extern_function_with_comptime_parameter.zig2
-rw-r--r--test/cases/compile_errors/function_parameter_is_opaque.zig1
-rw-r--r--test/cases/compile_errors/helpful_return_type_error_message.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-block_expr.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-block_statement.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-comptime_expression.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-comptime_statement.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-defer.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-for_expression.zig3
-rw-r--r--test/cases/compile_errors/implicit_semicolon-for_statement.zig3
-rw-r--r--test/cases/compile_errors/implicit_semicolon-if-else-if-else_expression.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-if-else-if-else_statement.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-if-else-if_expression.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-if-else-if_statement.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-if-else_expression.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-if-else_statement.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-if_expression.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-if_statement.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-test_expression.zig3
-rw-r--r--test/cases/compile_errors/implicit_semicolon-test_statement.zig3
-rw-r--r--test/cases/compile_errors/implicit_semicolon-while-continue_expression.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-while-continue_statement.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-while_expression.zig2
-rw-r--r--test/cases/compile_errors/implicit_semicolon-while_statement.zig2
-rw-r--r--test/cases/compile_errors/invalid_member_of_builtin_enum.zig2
-rw-r--r--test/cases/compile_errors/invalid_store_to_comptime_field.zig2
-rw-r--r--test/cases/compile_errors/invalid_struct_field.zig1
-rw-r--r--test/cases/compile_errors/missing_main_fn_in_executable.zig6
-rw-r--r--test/cases/compile_errors/private_main_fn.zig6
-rw-r--r--test/cases/compile_errors/runtime_index_into_comptime_type_slice.zig5
-rw-r--r--test/cases/compile_errors/struct_type_mismatch_in_arg.zig2
-rw-r--r--test/cases/compile_errors/union_init_with_none_or_multiple_fields.zig3
36 files changed, 71 insertions, 13 deletions
diff --git a/test/cases/compile_errors/access_inactive_union_field_comptime.zig b/test/cases/compile_errors/access_inactive_union_field_comptime.zig
index d990a85f9e..2098b19d14 100644
--- a/test/cases/compile_errors/access_inactive_union_field_comptime.zig
+++ b/test/cases/compile_errors/access_inactive_union_field_comptime.zig
@@ -21,3 +21,4 @@ pub export fn entry1() void {
// :9:15: error: access of union field 'a' while field 'b' is active
// :2:21: note: union declared here
// :14:16: error: access of union field 'a' while field 'b' is active
+// :2:21: note: union declared here
diff --git a/test/cases/compile_errors/bad_import.zig b/test/cases/compile_errors/bad_import.zig
index 49e78a4be4..e624d7104c 100644
--- a/test/cases/compile_errors/bad_import.zig
+++ b/test/cases/compile_errors/bad_import.zig
@@ -4,4 +4,4 @@ const bogus = @import("bogus-does-not-exist.zig",);
// backend=stage2
// target=native
//
-// :1:23: error: unable to load '${DIR}bogus-does-not-exist.zig': FileNotFound
+// bogus-does-not-exist.zig': FileNotFound
diff --git a/test/cases/compile_errors/condition_comptime_reason_explained.zig b/test/cases/compile_errors/condition_comptime_reason_explained.zig
index 332ae8afc8..d0193986a8 100644
--- a/test/cases/compile_errors/condition_comptime_reason_explained.zig
+++ b/test/cases/compile_errors/condition_comptime_reason_explained.zig
@@ -45,4 +45,6 @@ pub export fn entry2() void {
// :22:13: error: unable to resolve comptime value
// :22:13: note: condition in comptime switch must be comptime-known
// :21:17: note: expression is evaluated at comptime because the function returns a comptime-only type 'tmp.S'
+// :2:12: note: struct requires comptime because of this field
+// :2:12: note: use '*const fn() void' for a function pointer type
// :32:19: note: called from here
diff --git a/test/cases/compile_errors/directly_embedding_opaque_type_in_struct_and_union.zig b/test/cases/compile_errors/directly_embedding_opaque_type_in_struct_and_union.zig
index 2a64326093..ace90bccfc 100644
--- a/test/cases/compile_errors/directly_embedding_opaque_type_in_struct_and_union.zig
+++ b/test/cases/compile_errors/directly_embedding_opaque_type_in_struct_and_union.zig
@@ -32,6 +32,7 @@ export fn d() void {
// :3:8: error: opaque types have unknown size and therefore cannot be directly embedded in structs
// :1:11: note: opaque declared here
// :7:10: error: opaque types have unknown size and therefore cannot be directly embedded in unions
+// :1:11: note: opaque declared here
// :19:18: error: opaque types have unknown size and therefore cannot be directly embedded in structs
// :18:22: note: opaque declared here
// :24:23: error: opaque types have unknown size and therefore cannot be directly embedded in structs
diff --git a/test/cases/compile_errors/extern_function_with_comptime_parameter.zig b/test/cases/compile_errors/extern_function_with_comptime_parameter.zig
index de69fa409f..58f15f7fab 100644
--- a/test/cases/compile_errors/extern_function_with_comptime_parameter.zig
+++ b/test/cases/compile_errors/extern_function_with_comptime_parameter.zig
@@ -12,6 +12,6 @@ comptime { _ = entry2; }
// backend=stage2
// target=native
//
-// :1:15: error: comptime parameters not allowed in function with calling convention 'C'
// :5:30: error: comptime parameters not allowed in function with calling convention 'C'
// :6:30: error: generic parameters not allowed in function with calling convention 'C'
+// :1:15: error: comptime parameters not allowed in function with calling convention 'C'
diff --git a/test/cases/compile_errors/function_parameter_is_opaque.zig b/test/cases/compile_errors/function_parameter_is_opaque.zig
index 1f92274577..57c89bd7f4 100644
--- a/test/cases/compile_errors/function_parameter_is_opaque.zig
+++ b/test/cases/compile_errors/function_parameter_is_opaque.zig
@@ -27,4 +27,5 @@ export fn entry4() void {
// :1:17: note: opaque declared here
// :8:28: error: parameter of type '@TypeOf(null)' not allowed
// :12:8: error: parameter of opaque type 'tmp.FooType' not allowed
+// :1:17: note: opaque declared here
// :17:8: error: parameter of type '@TypeOf(null)' not allowed
diff --git a/test/cases/compile_errors/helpful_return_type_error_message.zig b/test/cases/compile_errors/helpful_return_type_error_message.zig
index 871e948537..83342c7ec3 100644
--- a/test/cases/compile_errors/helpful_return_type_error_message.zig
+++ b/test/cases/compile_errors/helpful_return_type_error_message.zig
@@ -24,9 +24,9 @@ export fn quux() u32 {
// :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'
+// :10:17: note: function cannot return an error
// :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/implicit_semicolon-block_expr.zig b/test/cases/compile_errors/implicit_semicolon-block_expr.zig
index 7dd82b897b..bab8ec29c0 100644
--- a/test/cases/compile_errors/implicit_semicolon-block_expr.zig
+++ b/test/cases/compile_errors/implicit_semicolon-block_expr.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
_ = {}
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-block_statement.zig b/test/cases/compile_errors/implicit_semicolon-block_statement.zig
index 189ba84d98..912ccbc790 100644
--- a/test/cases/compile_errors/implicit_semicolon-block_statement.zig
+++ b/test/cases/compile_errors/implicit_semicolon-block_statement.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
({})
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-comptime_expression.zig b/test/cases/compile_errors/implicit_semicolon-comptime_expression.zig
index decbc352e8..e8dc8bb534 100644
--- a/test/cases/compile_errors/implicit_semicolon-comptime_expression.zig
+++ b/test/cases/compile_errors/implicit_semicolon-comptime_expression.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
_ = comptime {}
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-comptime_statement.zig b/test/cases/compile_errors/implicit_semicolon-comptime_statement.zig
index d17db15924..afc1798669 100644
--- a/test/cases/compile_errors/implicit_semicolon-comptime_statement.zig
+++ b/test/cases/compile_errors/implicit_semicolon-comptime_statement.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
comptime ({})
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-defer.zig b/test/cases/compile_errors/implicit_semicolon-defer.zig
index 57fd3a2626..e91dbae7f8 100644
--- a/test/cases/compile_errors/implicit_semicolon-defer.zig
+++ b/test/cases/compile_errors/implicit_semicolon-defer.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
defer ({})
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-for_expression.zig b/test/cases/compile_errors/implicit_semicolon-for_expression.zig
index c751384e11..1fbe4dd3ad 100644
--- a/test/cases/compile_errors/implicit_semicolon-for_expression.zig
+++ b/test/cases/compile_errors/implicit_semicolon-for_expression.zig
@@ -3,7 +3,10 @@ export fn entry() void {
var good = {};
_ = for(foo()) |_| {}
var bad = {};
+ _ = good;
+ _ = bad;
}
+fn foo() void {}
// error
// backend=stage2
diff --git a/test/cases/compile_errors/implicit_semicolon-for_statement.zig b/test/cases/compile_errors/implicit_semicolon-for_statement.zig
index 14709cef4c..2830293b70 100644
--- a/test/cases/compile_errors/implicit_semicolon-for_statement.zig
+++ b/test/cases/compile_errors/implicit_semicolon-for_statement.zig
@@ -3,7 +3,10 @@ export fn entry() void {
var good = {};
for(foo()) |_| ({})
var bad = {};
+ _ = good;
+ _ = bad;
}
+fn foo() void {}
// error
// backend=stage2
diff --git a/test/cases/compile_errors/implicit_semicolon-if-else-if-else_expression.zig b/test/cases/compile_errors/implicit_semicolon-if-else-if-else_expression.zig
index 72a4fa7d3e..9e99421cd1 100644
--- a/test/cases/compile_errors/implicit_semicolon-if-else-if-else_expression.zig
+++ b/test/cases/compile_errors/implicit_semicolon-if-else-if-else_expression.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
_ = if(true) {} else if(true) {} else {}
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-if-else-if-else_statement.zig b/test/cases/compile_errors/implicit_semicolon-if-else-if-else_statement.zig
index 95135006ba..e2e7b7e3b3 100644
--- a/test/cases/compile_errors/implicit_semicolon-if-else-if-else_statement.zig
+++ b/test/cases/compile_errors/implicit_semicolon-if-else-if-else_statement.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
if(true) ({}) else if(true) ({}) else ({})
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-if-else-if_expression.zig b/test/cases/compile_errors/implicit_semicolon-if-else-if_expression.zig
index a29636bd1d..33ca6ab600 100644
--- a/test/cases/compile_errors/implicit_semicolon-if-else-if_expression.zig
+++ b/test/cases/compile_errors/implicit_semicolon-if-else-if_expression.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
_ = if(true) {} else if(true) {}
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-if-else-if_statement.zig b/test/cases/compile_errors/implicit_semicolon-if-else-if_statement.zig
index c62430a0a2..e3d004fee1 100644
--- a/test/cases/compile_errors/implicit_semicolon-if-else-if_statement.zig
+++ b/test/cases/compile_errors/implicit_semicolon-if-else-if_statement.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
if(true) ({}) else if(true) ({})
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-if-else_expression.zig b/test/cases/compile_errors/implicit_semicolon-if-else_expression.zig
index d5bee6e52b..a23809528b 100644
--- a/test/cases/compile_errors/implicit_semicolon-if-else_expression.zig
+++ b/test/cases/compile_errors/implicit_semicolon-if-else_expression.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
_ = if(true) {} else {}
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-if-else_statement.zig b/test/cases/compile_errors/implicit_semicolon-if-else_statement.zig
index 94df128626..ed01aa7df2 100644
--- a/test/cases/compile_errors/implicit_semicolon-if-else_statement.zig
+++ b/test/cases/compile_errors/implicit_semicolon-if-else_statement.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
if(true) ({}) else ({})
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-if_expression.zig b/test/cases/compile_errors/implicit_semicolon-if_expression.zig
index 339a5378cf..e28f8616e2 100644
--- a/test/cases/compile_errors/implicit_semicolon-if_expression.zig
+++ b/test/cases/compile_errors/implicit_semicolon-if_expression.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
_ = if(true) {}
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-if_statement.zig b/test/cases/compile_errors/implicit_semicolon-if_statement.zig
index b8ccb5e401..3067c07767 100644
--- a/test/cases/compile_errors/implicit_semicolon-if_statement.zig
+++ b/test/cases/compile_errors/implicit_semicolon-if_statement.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
if(true) ({})
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-test_expression.zig b/test/cases/compile_errors/implicit_semicolon-test_expression.zig
index 2a37c0aa0e..0bb345b387 100644
--- a/test/cases/compile_errors/implicit_semicolon-test_expression.zig
+++ b/test/cases/compile_errors/implicit_semicolon-test_expression.zig
@@ -3,7 +3,10 @@ export fn entry() void {
var good = {};
_ = if (foo()) |_| {}
var bad = {};
+ _ = good;
+ _ = bad;
}
+fn foo() void {}
// error
// backend=stage2
diff --git a/test/cases/compile_errors/implicit_semicolon-test_statement.zig b/test/cases/compile_errors/implicit_semicolon-test_statement.zig
index afe00eba75..3a4eb8b5ba 100644
--- a/test/cases/compile_errors/implicit_semicolon-test_statement.zig
+++ b/test/cases/compile_errors/implicit_semicolon-test_statement.zig
@@ -3,7 +3,10 @@ export fn entry() void {
var good = {};
if (foo()) |_| ({})
var bad = {};
+ _ = good;
+ _ = bad;
}
+fn foo() void {}
// error
// backend=stage2
diff --git a/test/cases/compile_errors/implicit_semicolon-while-continue_expression.zig b/test/cases/compile_errors/implicit_semicolon-while-continue_expression.zig
index 5587627597..f05c70bc14 100644
--- a/test/cases/compile_errors/implicit_semicolon-while-continue_expression.zig
+++ b/test/cases/compile_errors/implicit_semicolon-while-continue_expression.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
_ = while(true):({}) {}
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-while-continue_statement.zig b/test/cases/compile_errors/implicit_semicolon-while-continue_statement.zig
index 9bebe3861e..2d27824f6b 100644
--- a/test/cases/compile_errors/implicit_semicolon-while-continue_statement.zig
+++ b/test/cases/compile_errors/implicit_semicolon-while-continue_statement.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
while(true):({}) ({})
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-while_expression.zig b/test/cases/compile_errors/implicit_semicolon-while_expression.zig
index df388a7c39..4b39ed7c16 100644
--- a/test/cases/compile_errors/implicit_semicolon-while_expression.zig
+++ b/test/cases/compile_errors/implicit_semicolon-while_expression.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
_ = while(true) {}
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/implicit_semicolon-while_statement.zig b/test/cases/compile_errors/implicit_semicolon-while_statement.zig
index d9ed3d1e2a..538a56faf1 100644
--- a/test/cases/compile_errors/implicit_semicolon-while_statement.zig
+++ b/test/cases/compile_errors/implicit_semicolon-while_statement.zig
@@ -3,6 +3,8 @@ export fn entry() void {
var good = {};
while(true) 1
var bad = {};
+ _ = good;
+ _ = bad;
}
// error
diff --git a/test/cases/compile_errors/invalid_member_of_builtin_enum.zig b/test/cases/compile_errors/invalid_member_of_builtin_enum.zig
index b0a176d792..f3ea66ae1c 100644
--- a/test/cases/compile_errors/invalid_member_of_builtin_enum.zig
+++ b/test/cases/compile_errors/invalid_member_of_builtin_enum.zig
@@ -9,4 +9,4 @@ export fn entry() void {
// target=native
//
// :3:38: error: enum 'builtin.OptimizeMode' has no member named 'x86'
-// :?:18: note: enum declared here
+// : note: enum declared here
diff --git a/test/cases/compile_errors/invalid_store_to_comptime_field.zig b/test/cases/compile_errors/invalid_store_to_comptime_field.zig
index 0f444ba78c..fd6fff5e17 100644
--- a/test/cases/compile_errors/invalid_store_to_comptime_field.zig
+++ b/test/cases/compile_errors/invalid_store_to_comptime_field.zig
@@ -73,11 +73,11 @@ pub export fn entry8() void {
//
// :6:19: error: value stored in comptime field does not match the default value of the field
// :14:19: error: value stored in comptime field does not match the default value of the field
-// :53:16: error: value stored in comptime field does not match the default value of the field
// :19:38: error: value stored in comptime field does not match the default value of the field
// :31:19: error: value stored in comptime field does not match the default value of the field
// :25:29: note: default value set here
// :41:16: error: value stored in comptime field does not match the default value of the field
// :45:12: error: value stored in comptime field does not match the default value of the field
+// :53:16: error: value stored in comptime field does not match the default value of the field
// :66:43: error: value stored in comptime field does not match the default value of the field
// :59:35: error: value stored in comptime field does not match the default value of the field
diff --git a/test/cases/compile_errors/invalid_struct_field.zig b/test/cases/compile_errors/invalid_struct_field.zig
index 4450375cb8..ff8c96a0b6 100644
--- a/test/cases/compile_errors/invalid_struct_field.zig
+++ b/test/cases/compile_errors/invalid_struct_field.zig
@@ -25,5 +25,6 @@ export fn e() void {
// :4:7: error: no field named 'foo' in struct 'tmp.A'
// :1:11: note: struct declared here
// :10:17: error: no field named 'bar' in struct 'tmp.A'
+// :1:11: note: struct declared here
// :18:45: error: no field named 'f' in struct 'tmp.e.B'
// :14:15: note: struct declared here
diff --git a/test/cases/compile_errors/missing_main_fn_in_executable.zig b/test/cases/compile_errors/missing_main_fn_in_executable.zig
index 2d608ad2b8..3c1ae631ac 100644
--- a/test/cases/compile_errors/missing_main_fn_in_executable.zig
+++ b/test/cases/compile_errors/missing_main_fn_in_executable.zig
@@ -5,5 +5,7 @@
// target=x86_64-linux
// output_mode=Exe
//
-// :?:?: error: root struct of file 'tmp' has no member named 'main'
-// :?:?: note: called from here
+// : error: root struct of file 'tmp' has no member named 'main'
+// : note: called from here
+// : note: called from here
+// : note: called from here
diff --git a/test/cases/compile_errors/private_main_fn.zig b/test/cases/compile_errors/private_main_fn.zig
index 26ad3d22db..6e53fbdce2 100644
--- a/test/cases/compile_errors/private_main_fn.zig
+++ b/test/cases/compile_errors/private_main_fn.zig
@@ -5,6 +5,8 @@ fn main() void {}
// target=x86_64-linux
// output_mode=Exe
//
-// :?:?: error: 'main' is not marked 'pub'
+// : error: 'main' is not marked 'pub'
// :1:1: note: declared here
-// :?:?: note: called from here
+// : note: called from here
+// : note: called from here
+// : note: called from here
diff --git a/test/cases/compile_errors/runtime_index_into_comptime_type_slice.zig b/test/cases/compile_errors/runtime_index_into_comptime_type_slice.zig
index 4c235ed94b..9cd0fe1798 100644
--- a/test/cases/compile_errors/runtime_index_into_comptime_type_slice.zig
+++ b/test/cases/compile_errors/runtime_index_into_comptime_type_slice.zig
@@ -15,5 +15,6 @@ export fn entry() void {
// target=native
//
// :9:51: error: values of type '[]const builtin.Type.StructField' must be comptime-known, but index value is runtime-known
-// :?:21: note: struct requires comptime because of this field
-// :?:21: note: types are not available at runtime
+// : note: struct requires comptime because of this field
+// : note: types are not available at runtime
+// : struct requires comptime because of this field
diff --git a/test/cases/compile_errors/struct_type_mismatch_in_arg.zig b/test/cases/compile_errors/struct_type_mismatch_in_arg.zig
index a52bdfab6c..d051966c52 100644
--- a/test/cases/compile_errors/struct_type_mismatch_in_arg.zig
+++ b/test/cases/compile_errors/struct_type_mismatch_in_arg.zig
@@ -13,6 +13,6 @@ comptime {
// target=native
//
// :7:16: error: expected type 'tmp.Foo', found 'tmp.Bar'
-// :1:13: note: struct declared here
// :2:13: note: struct declared here
+// :1:13: note: struct declared here
// :4:18: note: parameter type declared here
diff --git a/test/cases/compile_errors/union_init_with_none_or_multiple_fields.zig b/test/cases/compile_errors/union_init_with_none_or_multiple_fields.zig
index 5f486bf2b7..a700f0d0f2 100644
--- a/test/cases/compile_errors/union_init_with_none_or_multiple_fields.zig
+++ b/test/cases/compile_errors/union_init_with_none_or_multiple_fields.zig
@@ -28,10 +28,11 @@ export fn u2m() void {
// target=native
//
// :9:1: error: union initializer must initialize one field
+// :1:12: note: union declared here
// :14:20: error: cannot initialize multiple union fields at once, unions can only have one active field
// :14:31: note: additional initializer here
+// :1:12: note: union declared here
// :18:21: error: union initializer must initialize one field
// :22:20: error: cannot initialize multiple union fields at once, unions can only have one active field
// :22:31: note: additional initializer here
-// :1:12: note: union declared here
// :5:12: note: union declared here