| author | |
| committer | |
| log | 654e30069d5886d558dfa5f513836e4bee034545 |
| tree | b10b004a25c1305aa63b3e51f5bed35d83f5992f |
| parent | bf863878acb6ac65ef10064b8ffd457ef756eba8 |
Closes #2622
Closes #2727
Closes #6047
Closes #6947
Closes #66566 files changed, 85 insertions(+), 2 deletions(-)
test/behavior.zig+4| ... | @@ -43,7 +43,9 @@ test { | ... | @@ -43,7 +43,9 @@ test { |
| 43 | _ = @import("behavior/bugs/2346.zig"); | 43 | _ = @import("behavior/bugs/2346.zig"); |
| 44 | _ = @import("behavior/bugs/2557.zig"); | 44 | _ = @import("behavior/bugs/2557.zig"); |
| 45 | _ = @import("behavior/bugs/2578.zig"); | 45 | _ = @import("behavior/bugs/2578.zig"); |
| 46 | _ = @import("behavior/bugs/2622.zig"); | ||
| 46 | _ = @import("behavior/bugs/2692.zig"); | 47 | _ = @import("behavior/bugs/2692.zig"); |
| 48 | _ = @import("behavior/bugs/2727.zig"); | ||
| 47 | _ = @import("behavior/bugs/2889.zig"); | 49 | _ = @import("behavior/bugs/2889.zig"); |
| 48 | _ = @import("behavior/bugs/3007.zig"); | 50 | _ = @import("behavior/bugs/3007.zig"); |
| 49 | _ = @import("behavior/bugs/3046.zig"); | 51 | _ = @import("behavior/bugs/3046.zig"); |
| ... | @@ -62,10 +64,12 @@ test { | ... | @@ -62,10 +64,12 @@ test { |
| 62 | _ = @import("behavior/bugs/5413.zig"); | 64 | _ = @import("behavior/bugs/5413.zig"); |
| 63 | _ = @import("behavior/bugs/5474.zig"); | 65 | _ = @import("behavior/bugs/5474.zig"); |
| 64 | _ = @import("behavior/bugs/5487.zig"); | 66 | _ = @import("behavior/bugs/5487.zig"); |
| 67 | _ = @import("behavior/bugs/6047.zig"); | ||
| 65 | _ = @import("behavior/bugs/6456.zig"); | 68 | _ = @import("behavior/bugs/6456.zig"); |
| 66 | _ = @import("behavior/bugs/6781.zig"); | 69 | _ = @import("behavior/bugs/6781.zig"); |
| 67 | _ = @import("behavior/bugs/6850.zig"); | 70 | _ = @import("behavior/bugs/6850.zig"); |
| 68 | _ = @import("behavior/bugs/6905.zig"); | 71 | _ = @import("behavior/bugs/6905.zig"); |
| 72 | _ = @import("behavior/bugs/6947.zig"); | ||
| 69 | _ = @import("behavior/bugs/7003.zig"); | 73 | _ = @import("behavior/bugs/7003.zig"); |
| 70 | _ = @import("behavior/bugs/7047.zig"); | 74 | _ = @import("behavior/bugs/7047.zig"); |
| 71 | _ = @import("behavior/bugs/7187.zig"); | 75 | _ = @import("behavior/bugs/7187.zig"); |
test/behavior/bugs/2622.zig created+16| ... | @@ -0,0 +1,16 @@ | ||
| 1 | const builtin = @import("builtin"); | ||
| 2 | |||
| 3 | var buf: []u8 = undefined; | ||
| 4 | |||
| 5 | test "reslice of undefined global var slice" { | ||
| 6 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | ||
| 7 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | ||
| 8 | if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO | ||
| 9 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 10 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | ||
| 11 | |||
| 12 | var mem: [100]u8 = [_]u8{0} ** 100; | ||
| 13 | buf = &mem; | ||
| 14 | const x = buf[0..1]; | ||
| 15 | try @import("std").testing.expect(x.len == 1 and x[0] == 0); | ||
| 16 | } | ||
test/behavior/bugs/2727.zig created+18| ... | @@ -0,0 +1,18 @@ | ||
| 1 | const builtin = @import("builtin"); | ||
| 2 | |||
| 3 | fn t() bool { | ||
| 4 | return true; | ||
| 5 | } | ||
| 6 | |||
| 7 | test { | ||
| 8 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | ||
| 9 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | ||
| 10 | if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO | ||
| 11 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 12 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | ||
| 13 | |||
| 14 | comptime var i: usize = 0; | ||
| 15 | inline while (i < 2) : (i += 1) { | ||
| 16 | if (t()) {} else return; | ||
| 17 | } | ||
| 18 | } | ||
test/behavior/bugs/6047.zig created+20| ... | @@ -0,0 +1,20 @@ | ||
| 1 | const builtin = @import("builtin"); | ||
| 2 | |||
| 3 | fn getError() !void { | ||
| 4 | return error.Test; | ||
| 5 | } | ||
| 6 | |||
| 7 | fn getError2() !void { | ||
| 8 | var a: u8 = 'c'; | ||
| 9 | try if (a == 'a') getError() else if (a == 'b') getError() else getError(); | ||
| 10 | } | ||
| 11 | |||
| 12 | test "`try`ing an if/else expression" { | ||
| 13 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | ||
| 14 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | ||
| 15 | if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO | ||
| 16 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 17 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | ||
| 18 | |||
| 19 | try @import("std").testing.expectError(error.Test, getError2()); | ||
| 20 | } | ||
test/behavior/bugs/6947.zig created+16| ... | @@ -0,0 +1,16 @@ | ||
| 1 | const builtin = @import("builtin"); | ||
| 2 | |||
| 3 | fn destroy(ptr: *void) void { | ||
| 4 | _ = ptr; | ||
| 5 | } | ||
| 6 | |||
| 7 | test { | ||
| 8 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO | ||
| 9 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO | ||
| 10 | if (builtin.zig_backend == .stage2_x86) return error.SkipZigTest; // TODO | ||
| 11 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO | ||
| 12 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO | ||
| 13 | |||
| 14 | var slice: []void = undefined; | ||
| 15 | destroy(&slice[0]); | ||
| 16 | } | ||
test/cases/compile_errors/invalid_store_to_comptime_field.zig+11-2| ... | @@ -41,7 +41,7 @@ pub export fn entry4() void { | ... | @@ -41,7 +41,7 @@ pub export fn entry4() void { |
| 41 | _ = U.foo(.{ .foo = 2, .bar = 2 }); | 41 | _ = U.foo(.{ .foo = 2, .bar = 2 }); |
| 42 | } | 42 | } |
| 43 | pub export fn entry5() void { | 43 | pub export fn entry5() void { |
| 44 | comptime var y = .{ 1, 2}; | 44 | comptime var y = .{ 1, 2 }; |
| 45 | y = .{ 3, 4 }; | 45 | y = .{ 3, 4 }; |
| 46 | } | 46 | } |
| 47 | // pub export fn entry5() void { | 47 | // pub export fn entry5() void { |
| ... | @@ -52,7 +52,15 @@ pub export fn entry5() void { | ... | @@ -52,7 +52,15 @@ pub export fn entry5() void { |
| 52 | // }; | 52 | // }; |
| 53 | // _ = S.foo(.{ -1234, 5679, x }); | 53 | // _ = S.foo(.{ -1234, 5679, x }); |
| 54 | // } | 54 | // } |
| 55 | 55 | pub export fn entry6() void { | |
| 56 | const State = struct { | ||
| 57 | comptime id: bool = true, | ||
| 58 | fn init(comptime id: bool) @This() { | ||
| 59 | return @This(){ .id = id }; | ||
| 60 | } | ||
| 61 | }; | ||
| 62 | _ = State.init(false); | ||
| 63 | } | ||
| 56 | 64 | ||
| 57 | // error | 65 | // error |
| 58 | // target=native | 66 | // target=native |
| ... | @@ -65,3 +73,4 @@ pub export fn entry5() void { | ... | @@ -65,3 +73,4 @@ pub export fn entry5() void { |
| 65 | // :25:29: note: default value set here | 73 | // :25:29: note: default value set here |
| 66 | // :41:16: error: value stored in comptime field does not match the default value of the field | 74 | // :41:16: error: value stored in comptime field does not match the default value of the field |
| 67 | // :45:12: error: value stored in comptime field does not match the default value of the field | 75 | // :45:12: error: value stored in comptime field does not match the default value of the field |
| 76 | // :59:35: error: value stored in comptime field does not match the default value of the field |