Skip to content

Commit a429f72

Browse files
committed
cases: more test coverage
Closes #11986 Closes #11850 Closes #12159
1 parent 5ecc2b9 commit a429f72

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

test/cases/compile_errors/implicit_cast_const_array_to_mutable_slice.zig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ export fn entry2() void {
1313
const many: [*]u8 = str;
1414
_ = many;
1515
}
16+
export fn entry3() void {
17+
const lang: []const u8 = "lang";
18+
const targets: [1][]const u8 = [_][]u8{lang};
19+
_ = targets;
20+
}
1621

1722
// error
1823
// backend=stage2
@@ -24,3 +29,5 @@ export fn entry2() void {
2429
// :8:27: note: cast discards const qualifier
2530
// :13:25: error: expected type '[*]u8', found '*const [0:0]u8'
2631
// :13:25: note: cast discards const qualifier
32+
// :18:44: error: expected type '[]u8', found '[]const u8'
33+
// :18:44: note: cast discards const qualifier

test/cases/compile_errors/invalid_store_to_comptime_field.zig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ pub export fn entry6() void {
6161
};
6262
_ = State.init(false);
6363
}
64+
pub export fn entry7() void {
65+
const list1 = .{ "sss", 1, 2, 3 };
66+
const list2 = @TypeOf(list1){ .@"0" = "xxx", .@"1" = 4, .@"2" = 5, .@"3" = 6 };
67+
_ = list2;
68+
}
6469

6570
// error
6671
// target=native
@@ -73,4 +78,5 @@ pub export fn entry6() void {
7378
// :25:29: note: default value set here
7479
// :41:16: error: value stored in comptime field does not match the default value of the field
7580
// :45:12: error: value stored in comptime field does not match the default value of the field
81+
// :66:43: error: value stored in comptime field does not match the default value of the field
7682
// :59:35: error: value stored in comptime field does not match the default value of the field
Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
1-
const A = struct { x : i32, };
1+
const A = struct { x: i32 };
22
export fn f() void {
3-
var a : A = undefined;
3+
var a: A = undefined;
44
a.foo = 1;
55
const y = a.bar;
66
_ = y;
77
}
88
export fn g() void {
9-
var a : A = undefined;
9+
var a: A = undefined;
1010
const y = a.bar;
1111
_ = y;
1212
}
13+
export fn e() void {
14+
const B = struct {
15+
fn f() void {}
16+
};
17+
const b: B = undefined;
18+
@import("std").debug.print("{}{}", .{ b.f, b.f });
19+
}
1320

1421
// error
1522
// backend=stage2
@@ -18,4 +25,5 @@ export fn g() void {
1825
// :4:7: error: no field named 'foo' in struct 'tmp.A'
1926
// :1:11: note: struct declared here
2027
// :10:17: error: no field named 'bar' in struct 'tmp.A'
21-
28+
// :18:45: error: no field named 'f' in struct 'tmp.e.B'
29+
// :14:15: note: struct declared here

0 commit comments

Comments
 (0)