diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2022-08-04 14:24:00 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2022-08-04 14:24:00 -0700 |
| commit | ba70eee8bb81da0d44982a84395aee660635e5ba (patch) | |
| tree | 40f4ef036ab60572f9b19e94dc84415993ed3fa8 /test/cases/compile_errors | |
| parent | a3045b8abbba896da34a02266f2be89dd6c90ecc (diff) | |
| parent | 616f65df750f53e6334cc5ed2c8f4b5668d573f2 (diff) | |
| download | zig-ba70eee8bb81da0d44982a84395aee660635e5ba.tar.gz zig-ba70eee8bb81da0d44982a84395aee660635e5ba.zip | |
Merge remote-tracking branch 'origin/master' into llvm15
Diffstat (limited to 'test/cases/compile_errors')
37 files changed, 273 insertions, 198 deletions
diff --git a/test/cases/compile_errors/stage1/obj/accessing_runtime_parameter_from_outer_function.zig b/test/cases/compile_errors/accessing_runtime_parameter_from_outer_function.zig index 73a9e94d44..49ef3b4d4d 100644 --- a/test/cases/compile_errors/stage1/obj/accessing_runtime_parameter_from_outer_function.zig +++ b/test/cases/compile_errors/accessing_runtime_parameter_from_outer_function.zig @@ -1,4 +1,4 @@ -fn outer(y: u32) fn (u32) u32 { +fn outer(y: u32) *const fn (u32) u32 { const st = struct { fn get(z: u32) u32 { return z + y; @@ -13,9 +13,8 @@ export fn entry() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:4:24: error: 'y' not accessible from inner function -// tmp.zig:3:28: note: crossed function definition here -// tmp.zig:1:10: note: declared here +// :4:24: error: 'y' not accessible from inner function +// :3:9: note: crossed function definition here diff --git a/test/cases/compile_errors/bitCast_to_enum_type.zig b/test/cases/compile_errors/bitCast_to_enum_type.zig index add531627f..a8fedb7d54 100644 --- a/test/cases/compile_errors/bitCast_to_enum_type.zig +++ b/test/cases/compile_errors/bitCast_to_enum_type.zig @@ -9,4 +9,4 @@ export fn entry() void { // target=native // // :3:24: error: cannot @bitCast to 'tmp.entry.E' -// :3:24: note: use @intToEnum for type coercion +// :3:24: note: use @intToEnum to cast from 'u32' diff --git a/test/cases/compile_errors/stage1/obj/cannot_break_out_of_defer_expression.zig b/test/cases/compile_errors/cannot_break_out_of_defer_expression.zig index 3c7ae4fa2f..454309eb89 100644 --- a/test/cases/compile_errors/stage1/obj/cannot_break_out_of_defer_expression.zig +++ b/test/cases/compile_errors/cannot_break_out_of_defer_expression.zig @@ -7,7 +7,8 @@ export fn foo() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:4:13: error: cannot break out of defer expression +// :4:13: error: cannot break out of defer expression +// :3:9: note: defer expression here diff --git a/test/cases/compile_errors/stage1/obj/cannot_continue_out_of_defer_expression.zig b/test/cases/compile_errors/cannot_continue_out_of_defer_expression.zig index 56b8ced05b..74d11528eb 100644 --- a/test/cases/compile_errors/stage1/obj/cannot_continue_out_of_defer_expression.zig +++ b/test/cases/compile_errors/cannot_continue_out_of_defer_expression.zig @@ -7,7 +7,8 @@ export fn foo() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:4:13: error: cannot continue out of defer expression +// :4:13: error: cannot continue out of defer expression +// :3:9: note: defer expression here diff --git a/test/cases/compile_errors/direct_struct_loop.zig b/test/cases/compile_errors/direct_struct_loop.zig new file mode 100644 index 0000000000..0abc1a4f73 --- /dev/null +++ b/test/cases/compile_errors/direct_struct_loop.zig @@ -0,0 +1,9 @@ +const A = struct { a : A, }; +export fn entry() usize { return @sizeOf(A); } + +// error +// backend=stage2 +// target=native +// +// :1:11: error: struct 'tmp.A' depends on itself +// :1:20: note: while checking this field diff --git a/test/cases/compile_errors/for_loop_body_expression_ignored.zig b/test/cases/compile_errors/for_loop_body_expression_ignored.zig new file mode 100644 index 0000000000..3ce73a9fab --- /dev/null +++ b/test/cases/compile_errors/for_loop_body_expression_ignored.zig @@ -0,0 +1,35 @@ +fn returns() usize { + return 2; +} +export fn f1() void { + for ("hello") |_| returns(); +} +export fn f2() void { + var x: anyerror!i32 = error.Bad; + for ("hello") |_| returns() else unreachable; + _ = x; +} +export fn f3() void { + for ("hello") |_| {} else true; +} +export fn f4() void { + const foo = for ("hello") |_| returns() else true; + _ = foo; +} + +// error +// backend=stage2 +// target=native +// +// :5:30: error: value of type 'usize' ignored +// :5:30: note: all non-void values must be used +// :5:30: note: this error can be suppressed by assigning the value to '_' +// :9:30: error: value of type 'usize' ignored +// :9:30: note: all non-void values must be used +// :9:30: note: this error can be suppressed by assigning the value to '_' +// :13:31: error: value of type 'bool' ignored +// :13:31: note: all non-void values must be used +// :13:31: note: this error can be suppressed by assigning the value to '_' +// :16:42: error: value of type 'usize' ignored +// :16:42: note: all non-void values must be used +// :16:42: note: this error can be suppressed by assigning the value to '_' diff --git a/test/cases/compile_errors/stage1/obj/global_variable_alignment_non_power_of_2.zig b/test/cases/compile_errors/global_variable_alignment_non_power_of_2.zig index f23f340b16..b88d8aaf70 100644 --- a/test/cases/compile_errors/stage1/obj/global_variable_alignment_non_power_of_2.zig +++ b/test/cases/compile_errors/global_variable_alignment_non_power_of_2.zig @@ -2,7 +2,7 @@ const some_data: [100]u8 align(3) = undefined; export fn entry() usize { return @sizeOf(@TypeOf(some_data)); } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:1:32: error: alignment value 3 is not a power of 2 +// :1:32: error: alignment value '3' is not a power of two diff --git a/test/cases/compile_errors/indirect_struct_loop.zig b/test/cases/compile_errors/indirect_struct_loop.zig new file mode 100644 index 0000000000..dca2b9c3f6 --- /dev/null +++ b/test/cases/compile_errors/indirect_struct_loop.zig @@ -0,0 +1,13 @@ +const A = struct { b : B, }; +const B = struct { c : C, }; +const C = struct { a : A, }; +export fn entry() usize { return @sizeOf(A); } + +// error +// backend=stage2 +// target=native +// +// :1:11: error: struct 'tmp.A' depends on itself +// :3:20: note: while checking this field +// :2:20: note: while checking this field +// :1:20: note: while checking this field diff --git a/test/cases/compile_errors/stage1/obj/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig b/test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig index dd6909b1c2..74cafabe7c 100644 --- a/test/cases/compile_errors/stage1/obj/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig +++ b/test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_struct_that_contains_itself.zig @@ -9,7 +9,8 @@ export fn entry() usize { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:1:13: error: struct 'Foo' depends on itself +// :1:13: error: struct 'tmp.Foo' depends on itself +// :2:5: note: while checking this field diff --git a/test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_union_that_contains_itself.zig b/test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_union_that_contains_itself.zig new file mode 100644 index 0000000000..6030ca4d3e --- /dev/null +++ b/test/cases/compile_errors/instantiating_an_undefined_value_for_an_invalid_union_that_contains_itself.zig @@ -0,0 +1,16 @@ +const Foo = union { + x: Foo, +}; + +var foo: Foo = undefined; + +export fn entry() usize { + return @sizeOf(@TypeOf(foo.x)); +} + +// error +// backend=stage2 +// target=native +// +// :1:13: error: union 'tmp.Foo' depends on itself +// :2:5: note: while checking this field diff --git a/test/cases/compile_errors/intToPtr_with_misaligned_address.zig b/test/cases/compile_errors/intToPtr_with_misaligned_address.zig new file mode 100644 index 0000000000..43f89ab3b5 --- /dev/null +++ b/test/cases/compile_errors/intToPtr_with_misaligned_address.zig @@ -0,0 +1,10 @@ +pub export fn entry() void { + var y = @intToPtr([*]align(4) u8, 5); + _ = y; +} + +// error +// backend=stage2 +// target=native +// +// :2:39: error: pointer type '[*]align(4) u8' requires aligned address diff --git a/test/cases/compile_errors/stage1/obj/issue_3818_bitcast_from_parray-slice_to_u16.zig b/test/cases/compile_errors/issue_3818_bitcast_from_parray-slice_to_u16.zig index cdc1def677..874f015ffb 100644 --- a/test/cases/compile_errors/stage1/obj/issue_3818_bitcast_from_parray-slice_to_u16.zig +++ b/test/cases/compile_errors/issue_3818_bitcast_from_parray-slice_to_u16.zig @@ -10,8 +10,10 @@ export fn foo2() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:3:42: error: unable to @bitCast from pointer type '*[2]u8' -// tmp.zig:8:32: error: destination type 'u16' has size 2 but source type '[]const u8' has size 16 +// :3:42: error: cannot @bitCast from '*[2]u8' +// :3:42: note: use @ptrToInt to cast to 'u16' +// :8:37: error: cannot @bitCast from '[]const u8' +// :8:37: note: use @ptrToInt to cast to 'u16' diff --git a/test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig b/test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig new file mode 100644 index 0000000000..8fcd300629 --- /dev/null +++ b/test/cases/compile_errors/packed_struct_with_fields_of_not_allowed_types.zig @@ -0,0 +1,84 @@ +export fn entry1() void { + _ = @sizeOf(packed struct { + x: anyerror, + }); +} +export fn entry2() void { + _ = @sizeOf(packed struct { + x: [2]u24, + }); +} +export fn entry3() void { + _ = @sizeOf(packed struct { + x: anyerror!u32, + }); +} +export fn entry4() void { + _ = @sizeOf(packed struct { + x: S, + }); +} +export fn entry5() void { + _ = @sizeOf(packed struct { + x: U, + }); +} +export fn entry6() void { + _ = @sizeOf(packed struct { + x: ?anyerror, + }); +} +export fn entry7() void { + _ = @sizeOf(packed struct { + x: enum { A, B }, + }); +} +export fn entry8() void { + _ = @sizeOf(packed struct { + x: fn () void, + }); +} +export fn entry9() void { + _ = @sizeOf(packed struct { + x: *const fn () void, + }); +} +export fn entry10() void { + _ = @sizeOf(packed struct { + x: packed struct { x: i32 }, + }); +} +export fn entry11() void { + _ = @sizeOf(packed struct { + x: packed union { A: i32, B: u32 }, + }); +} +const S = struct { + x: i32, +}; +const U = extern union { + A: i32, + B: u32, +}; + +// error +// backend=llvm +// target=native +// +// :3:9: error: packed structs cannot contain fields of type 'anyerror' +// :3:9: note: type has no guaranteed in-memory representation +// :8:9: error: packed structs cannot contain fields of type '[2]u24' +// :8:9: note: type has no guaranteed in-memory representation +// :13:9: error: packed structs cannot contain fields of type 'anyerror!u32' +// :13:9: note: type has no guaranteed in-memory representation +// :18:9: error: packed structs cannot contain fields of type 'tmp.S' +// :18:9: note: only packed structs layout are allowed in packed types +// :56:11: note: struct declared here +// :23:9: error: packed structs cannot contain fields of type 'tmp.U' +// :23:9: note: only packed unions layout are allowed in packed types +// :59:18: note: union declared here +// :28:9: error: packed structs cannot contain fields of type '?anyerror' +// :28:9: note: type has no guaranteed in-memory representation +// :38:9: error: packed structs cannot contain fields of type 'fn() void' +// :38:9: note: type has no guaranteed in-memory representation +// :38:9: note: use '*const ' to make a function pointer type diff --git a/test/cases/compile_errors/stage1/obj/packed_union_given_enum_tag_type.zig b/test/cases/compile_errors/packed_union_given_enum_tag_type.zig index fceb7af65c..03aaef0d8c 100644 --- a/test/cases/compile_errors/stage1/obj/packed_union_given_enum_tag_type.zig +++ b/test/cases/compile_errors/packed_union_given_enum_tag_type.zig @@ -14,7 +14,7 @@ export fn entry() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:6:30: error: packed union does not support enum tag type +// :6:30: error: packed union does not support enum tag type diff --git a/test/cases/compile_errors/stage1/obj/packed_union_with_automatic_layout_field.zig b/test/cases/compile_errors/packed_union_with_automatic_layout_field.zig index 99ad6ca306..97771e9b78 100644 --- a/test/cases/compile_errors/stage1/obj/packed_union_with_automatic_layout_field.zig +++ b/test/cases/compile_errors/packed_union_with_automatic_layout_field.zig @@ -12,7 +12,9 @@ export fn entry() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:6:5: error: non-packed, non-extern struct 'Foo' not allowed in packed union; no guaranteed in-memory representation +// :6:5: error: packed unions cannot contain fields of type 'tmp.Foo' +// :6:5: note: only packed structs layout are allowed in packed types +// :1:13: note: struct declared here diff --git a/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig b/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig index 414bf2ce5e..ee557cd6c2 100644 --- a/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig +++ b/test/cases/compile_errors/reify_type_for_tagged_union_with_extra_union_field.zig @@ -31,5 +31,5 @@ export fn entry() void { // backend=stage2 // target=native // -// :13:16: error: no field named 'arst' in enum 'tmp.Tag__enum_264' +// :13:16: error: no field named 'arst' in enum 'tmp.Tag__enum_266' // :1:13: note: enum declared here diff --git a/test/cases/compile_errors/stage1/obj/specify_non-integer_enum_tag_type.zig b/test/cases/compile_errors/specify_non-integer_enum_tag_type.zig index 333647e1e3..f2ff3e2cd1 100644 --- a/test/cases/compile_errors/stage1/obj/specify_non-integer_enum_tag_type.zig +++ b/test/cases/compile_errors/specify_non-integer_enum_tag_type.zig @@ -10,7 +10,7 @@ export fn entry() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:1:21: error: expected integer, found 'f32' +// :1:21: error: expected integer tag type, found 'f32' diff --git a/test/cases/compile_errors/src_outside_function.zig b/test/cases/compile_errors/src_outside_function.zig new file mode 100644 index 0000000000..8b66ba730b --- /dev/null +++ b/test/cases/compile_errors/src_outside_function.zig @@ -0,0 +1,9 @@ +comptime { + @src(); +} + +// error +// backend=stage2 +// target=native +// +// :2:5: error: @src outside function diff --git a/test/cases/compile_errors/stage1/obj/direct_struct_loop.zig b/test/cases/compile_errors/stage1/obj/direct_struct_loop.zig deleted file mode 100644 index 3062e617d6..0000000000 --- a/test/cases/compile_errors/stage1/obj/direct_struct_loop.zig +++ /dev/null @@ -1,8 +0,0 @@ -const A = struct { a : A, }; -export fn entry() usize { return @sizeOf(A); } - -// error -// backend=stage1 -// target=native -// -// tmp.zig:1:11: error: struct 'A' depends on itself diff --git a/test/cases/compile_errors/stage1/obj/for_loop_body_expression_ignored.zig b/test/cases/compile_errors/stage1/obj/for_loop_body_expression_ignored.zig deleted file mode 100644 index 6281d4b276..0000000000 --- a/test/cases/compile_errors/stage1/obj/for_loop_body_expression_ignored.zig +++ /dev/null @@ -1,18 +0,0 @@ -fn returns() usize { - return 2; -} -export fn f1() void { - for ("hello") |_| returns(); -} -export fn f2() void { - var x: anyerror!i32 = error.Bad; - for ("hello") |_| returns() else unreachable; - _ = x; -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:5:30: error: expression value is ignored -// tmp.zig:9:30: error: expression value is ignored diff --git a/test/cases/compile_errors/stage1/obj/indirect_struct_loop.zig b/test/cases/compile_errors/stage1/obj/indirect_struct_loop.zig deleted file mode 100644 index 12214923d0..0000000000 --- a/test/cases/compile_errors/stage1/obj/indirect_struct_loop.zig +++ /dev/null @@ -1,10 +0,0 @@ -const A = struct { b : B, }; -const B = struct { c : C, }; -const C = struct { a : A, }; -export fn entry() usize { return @sizeOf(A); } - -// error -// backend=stage1 -// target=native -// -// tmp.zig:1:11: error: struct 'A' depends on itself diff --git a/test/cases/compile_errors/stage1/obj/intToPtr_with_misaligned_address.zig b/test/cases/compile_errors/stage1/obj/intToPtr_with_misaligned_address.zig deleted file mode 100644 index 16b6bf565e..0000000000 --- a/test/cases/compile_errors/stage1/obj/intToPtr_with_misaligned_address.zig +++ /dev/null @@ -1,10 +0,0 @@ -pub fn main() void { - var y = @intToPtr([*]align(4) u8, 5); - _ = y; -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:2:13: error: pointer type '[*]align(4) u8' requires aligned address diff --git a/test/cases/compile_errors/stage1/obj/src_outside_function.zig b/test/cases/compile_errors/stage1/obj/src_outside_function.zig deleted file mode 100644 index 7f8c7ae72f..0000000000 --- a/test/cases/compile_errors/stage1/obj/src_outside_function.zig +++ /dev/null @@ -1,9 +0,0 @@ -comptime { - @src(); -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:2:5: error: @src outside function diff --git a/test/cases/compile_errors/stage1/obj/while_loop_body_expression_ignored.zig b/test/cases/compile_errors/stage1/obj/while_loop_body_expression_ignored.zig deleted file mode 100644 index 9542cbc62f..0000000000 --- a/test/cases/compile_errors/stage1/obj/while_loop_body_expression_ignored.zig +++ /dev/null @@ -1,22 +0,0 @@ -fn returns() usize { - return 2; -} -export fn f1() void { - while (true) returns(); -} -export fn f2() void { - var x: ?i32 = null; - while (x) |_| returns(); -} -export fn f3() void { - var x: anyerror!i32 = error.Bad; - while (x) |_| returns() else |_| unreachable; -} - -// error -// backend=stage1 -// target=native -// -// tmp.zig:5:25: error: expression value is ignored -// tmp.zig:9:26: error: expression value is ignored -// tmp.zig:13:26: error: expression value is ignored diff --git a/test/cases/compile_errors/stage1/test/packed_struct_with_fields_of_not_allowed_types.zig b/test/cases/compile_errors/stage1/test/packed_struct_with_fields_of_not_allowed_types.zig deleted file mode 100644 index 2951d26c52..0000000000 --- a/test/cases/compile_errors/stage1/test/packed_struct_with_fields_of_not_allowed_types.zig +++ /dev/null @@ -1,74 +0,0 @@ -const A = packed struct { - x: anyerror, -}; -const B = packed struct { - x: [2]u24, -}; -const C = packed struct { - x: [1]anyerror, -}; -const D = packed struct { - x: [1]S, -}; -const E = packed struct { - x: [1]U, -}; -const F = packed struct { - x: ?anyerror, -}; -const G = packed struct { - x: Enum, -}; -export fn entry1() void { - var a: A = undefined; - _ = a; -} -export fn entry2() void { - var b: B = undefined; - _ = b; -} -export fn entry3() void { - var r: C = undefined; - _ = r; -} -export fn entry4() void { - var d: D = undefined; - _ = d; -} -export fn entry5() void { - var e: E = undefined; - _ = e; -} -export fn entry6() void { - var f: F = undefined; - _ = f; -} -export fn entry7() void { - var g: G = undefined; - _ = g; -} -const S = struct { - x: i32, -}; -const U = struct { - A: i32, - B: u32, -}; -const Enum = enum { - A, - B, -}; - -// error -// backend=stage1 -// target=native -// is_test=1 -// -// tmp.zig:2:5: error: type 'anyerror' not allowed in packed struct; no guaranteed in-memory representation -// tmp.zig:5:5: error: array of 'u24' not allowed in packed struct due to padding bits (must be padded from 48 to 64 bits) -// tmp.zig:8:5: error: type 'anyerror' not allowed in packed struct; no guaranteed in-memory representation -// tmp.zig:11:5: error: non-packed, non-extern struct 'S' not allowed in packed struct; no guaranteed in-memory representation -// tmp.zig:14:5: error: non-packed, non-extern struct 'U' not allowed in packed struct; no guaranteed in-memory representation -// tmp.zig:17:5: error: type '?anyerror' not allowed in packed struct; no guaranteed in-memory representation -// tmp.zig:20:5: error: type 'Enum' not allowed in packed struct; no guaranteed in-memory representation -// tmp.zig:57:14: note: enum declaration does not specify an integer tag type diff --git a/test/cases/compile_errors/stage1/obj/struct_depends_on_itself_via_optional_field.zig b/test/cases/compile_errors/struct_depends_on_itself_via_optional_field.zig index 46086172f7..cad779e3d7 100644 --- a/test/cases/compile_errors/stage1/obj/struct_depends_on_itself_via_optional_field.zig +++ b/test/cases/compile_errors/struct_depends_on_itself_via_optional_field.zig @@ -11,9 +11,9 @@ export fn entry() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:1:17: error: struct 'LhsExpr' depends on itself -// tmp.zig:5:5: note: while checking this field -// tmp.zig:2:5: note: while checking this field +// :1:17: error: struct 'tmp.LhsExpr' depends on itself +// :5:5: note: while checking this field +// :2:5: note: while checking this field diff --git a/test/cases/compile_errors/stage1/obj/top_level_decl_dependency_loop.zig b/test/cases/compile_errors/top_level_decl_dependency_loop.zig index ac70285c9c..3b0e60ac02 100644 --- a/test/cases/compile_errors/stage1/obj/top_level_decl_dependency_loop.zig +++ b/test/cases/compile_errors/top_level_decl_dependency_loop.zig @@ -6,7 +6,8 @@ export fn entry() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:2:19: error: dependency loop detected +// :1:1: error: dependency loop detected +// :2:19: note: referenced here diff --git a/test/cases/compile_errors/type_variables_must_be_constant.zig b/test/cases/compile_errors/type_variables_must_be_constant.zig index 35e94f3641..1dbddc126c 100644 --- a/test/cases/compile_errors/type_variables_must_be_constant.zig +++ b/test/cases/compile_errors/type_variables_must_be_constant.zig @@ -7,5 +7,5 @@ export fn entry() foo { // backend=stage2 // target=native // -// :1:1: error: variable of type 'type' must be const or comptime -// :1:1: note: types are not available at runtime +// :1:5: error: variable of type 'type' must be const or comptime +// :1:5: note: types are not available at runtime diff --git a/test/cases/compile_errors/stage1/obj/unused_variable_error_on_errdefer.zig b/test/cases/compile_errors/unused_variable_error_on_errdefer.zig index b85d5729dc..4c37af04eb 100644 --- a/test/cases/compile_errors/stage1/obj/unused_variable_error_on_errdefer.zig +++ b/test/cases/compile_errors/unused_variable_error_on_errdefer.zig @@ -7,7 +7,7 @@ export fn entry() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:2:15: error: unused variable: 'a' +// :2:15: error: unused capture diff --git a/test/cases/compile_errors/use_invalid_number_literal_as_array_index.zig b/test/cases/compile_errors/use_invalid_number_literal_as_array_index.zig index 120ba5c588..c52f614657 100644 --- a/test/cases/compile_errors/use_invalid_number_literal_as_array_index.zig +++ b/test/cases/compile_errors/use_invalid_number_literal_as_array_index.zig @@ -8,5 +8,5 @@ export fn entry() void { // backend=stage2 // target=native // -// :1:1: error: variable of type 'comptime_int' must be const or comptime -// :1:1: note: to modify this variable at runtime, it must be given an explicit fixed-size number type +// :1:5: error: variable of type 'comptime_int' must be const or comptime +// :1:5: note: to modify this variable at runtime, it must be given an explicit fixed-size number type diff --git a/test/cases/compile_errors/usingnamespace_with_wrong_type.zig b/test/cases/compile_errors/usingnamespace_with_wrong_type.zig index 4ec4bf4838..294fd8c012 100644 --- a/test/cases/compile_errors/usingnamespace_with_wrong_type.zig +++ b/test/cases/compile_errors/usingnamespace_with_wrong_type.zig @@ -4,4 +4,4 @@ usingnamespace void; // backend=stage2 // target=native // -// :1:1: error: type void has no namespace +// :1:16: error: type void has no namespace diff --git a/test/cases/compile_errors/stage1/obj/vector_index_out_of_bounds.zig b/test/cases/compile_errors/vector_index_out_of_bounds.zig index fdffd8b455..ed1a25a321 100644 --- a/test/cases/compile_errors/stage1/obj/vector_index_out_of_bounds.zig +++ b/test/cases/compile_errors/vector_index_out_of_bounds.zig @@ -4,7 +4,7 @@ export fn entry() void { } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:2:62: error: index 3 outside vector of size 3 +// :2:49: error: expected 3 vector elements; found 4 diff --git a/test/cases/compile_errors/stage1/obj/while_expected_error_union_got_bool.zig b/test/cases/compile_errors/while_expected_error_union_got_bool.zig index b8a72e9793..f7960437ec 100644 --- a/test/cases/compile_errors/stage1/obj/while_expected_error_union_got_bool.zig +++ b/test/cases/compile_errors/while_expected_error_union_got_bool.zig @@ -4,7 +4,7 @@ export fn foo() void { fn bar() bool { return true; } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:2:15: error: expected error union type, found 'bool' +// :2:15: error: expected error union type, found 'bool' diff --git a/test/cases/compile_errors/stage1/obj/while_expected_error_union_got_optional.zig b/test/cases/compile_errors/while_expected_error_union_got_optional.zig index c933dc9509..5cabd76fce 100644 --- a/test/cases/compile_errors/stage1/obj/while_expected_error_union_got_optional.zig +++ b/test/cases/compile_errors/while_expected_error_union_got_optional.zig @@ -4,7 +4,7 @@ export fn foo() void { fn bar() ?i32 { return 1; } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:2:15: error: expected error union type, found '?i32' +// :2:15: error: expected error union type, found '?i32' diff --git a/test/cases/compile_errors/stage1/obj/while_expected_optional_got_bool.zig b/test/cases/compile_errors/while_expected_optional_got_bool.zig index 0458d1ba01..22b8c1e58c 100644 --- a/test/cases/compile_errors/stage1/obj/while_expected_optional_got_bool.zig +++ b/test/cases/compile_errors/while_expected_optional_got_bool.zig @@ -4,7 +4,7 @@ export fn foo() void { fn bar() bool { return true; } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:2:15: error: expected optional type, found 'bool' +// :2:15: error: expected optional type, found 'bool' diff --git a/test/cases/compile_errors/stage1/obj/while_expected_optional_got_error_union.zig b/test/cases/compile_errors/while_expected_optional_got_error_union.zig index 7cdbd2cccf..38a8a0dd20 100644 --- a/test/cases/compile_errors/stage1/obj/while_expected_optional_got_error_union.zig +++ b/test/cases/compile_errors/while_expected_optional_got_error_union.zig @@ -4,7 +4,7 @@ export fn foo() void { fn bar() anyerror!i32 { return 1; } // error -// backend=stage1 +// backend=stage2 // target=native // -// tmp.zig:2:15: error: expected optional type, found 'anyerror!i32' +// :2:15: error: expected optional type, found 'anyerror!i32' diff --git a/test/cases/compile_errors/while_loop_body_expression_ignored.zig b/test/cases/compile_errors/while_loop_body_expression_ignored.zig new file mode 100644 index 0000000000..e33f48e6a5 --- /dev/null +++ b/test/cases/compile_errors/while_loop_body_expression_ignored.zig @@ -0,0 +1,43 @@ +fn returns() usize { + return 2; +} +export fn f1() void { + while (true) returns(); +} +export fn f2() void { + var x: ?i32 = null; + while (x) |_| returns(); +} +export fn f3() void { + var x: anyerror!i32 = error.Bad; + while (x) |_| returns() else |_| unreachable; +} +export fn f4() void { + var a = true; + while (a) {} else true; +} +export fn f5() void { + var a = true; + const foo = while (a) returns() else true; + _ = foo; +} + +// error +// backend=stage2 +// target=native +// +// :5:25: error: value of type 'usize' ignored +// :5:25: note: all non-void values must be used +// :5:25: note: this error can be suppressed by assigning the value to '_' +// :9:26: error: value of type 'usize' ignored +// :9:26: note: all non-void values must be used +// :9:26: note: this error can be suppressed by assigning the value to '_' +// :13:26: error: value of type 'usize' ignored +// :13:26: note: all non-void values must be used +// :13:26: note: this error can be suppressed by assigning the value to '_' +// :17:23: error: value of type 'bool' ignored +// :17:23: note: all non-void values must be used +// :17:23: note: this error can be suppressed by assigning the value to '_' +// :21:34: error: value of type 'usize' ignored +// :21:34: note: all non-void values must be used +// :21:34: note: this error can be suppressed by assigning the value to '_' |
