| ... | ... | @@ -175,6 +175,41 @@ pub fn addCases(ctx: *TestContext) !void { |
| 175 | 175 | \\ return i; |
| 176 | 176 | \\} |
| 177 | 177 | , "31\n"); |
| 178 | |
| 179 | case.addCompareOutput( |
| 180 | \\export fn _start() void { |
| 181 | \\ assert(foo(true) != @as(i32, 30)); |
| 182 | \\} |
| 183 | \\ |
| 184 | \\fn assert(ok: bool) void { |
| 185 | \\ if (!ok) unreachable; |
| 186 | \\} |
| 187 | \\ |
| 188 | \\fn foo(ok: bool) i32 { |
| 189 | \\ const x = if(ok) @as(i32, 20) else @as(i32, 10); |
| 190 | \\ return x; |
| 191 | \\} |
| 192 | , ""); |
| 193 | |
| 194 | case.addCompareOutput( |
| 195 | \\export fn _start() void { |
| 196 | \\ assert(foo(false) == @as(i32, 20)); |
| 197 | \\ assert(foo(true) == @as(i32, 30)); |
| 198 | \\} |
| 199 | \\ |
| 200 | \\fn assert(ok: bool) void { |
| 201 | \\ if (!ok) unreachable; |
| 202 | \\} |
| 203 | \\ |
| 204 | \\fn foo(ok: bool) i32 { |
| 205 | \\ const val: i32 = blk: { |
| 206 | \\ var x: i32 = 1; |
| 207 | \\ if (!ok) break :blk x + @as(i32, 9); |
| 208 | \\ break :blk x + @as(i32, 19); |
| 209 | \\ }; |
| 210 | \\ return val + 10; |
| 211 | \\} |
| 212 | , ""); |
| 178 | 213 | } |
| 179 | 214 | |
| 180 | 215 | { |