authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-01-25 20:27:57-07:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2016-01-25 20:27:57-07:00
log1d68150242c9304ac7f35a3d827c3c6e5aeea521
tree0720bd2eb1f83fd369282ebbcc1034b4eab564e3
parent50854226a6c6b78b4456ee6beeaae52ca0db6b0d

compiler enforces checking for error

See #23

6 files changed, 202 insertions(+), 199 deletions(-)

example/cat/main.zig+4-5
...@@ -5,11 +5,10 @@ import "std.zig";...@@ -5,11 +5,10 @@ import "std.zig";
5// Things to do to make this work:5// Things to do to make this work:
6// * var args printing6// * var args printing
7// * defer7// * defer
8// * %% prefix operator
9// * cast err type to string8// * cast err type to string
10// * string equality9// * string equality
1110
12pub fn main(args: [][]u8) %void => {11pub fn main(args: [][]u8) -> %void {
13 const exe = args[0];12 const exe = args[0];
14 var catted_anything = false;13 var catted_anything = false;
15 for (arg, args[1...]) {14 for (arg, args[1...]) {
...@@ -21,7 +20,7 @@ pub fn main(args: [][]u8) %void => {...@@ -21,7 +20,7 @@ pub fn main(args: [][]u8) %void => {
21 } else {20 } else {
22 var is: InputStream;21 var is: InputStream;
23 is.open(arg, OpenReadOnly) %% |err| {22 is.open(arg, OpenReadOnly) %% |err| {
24 %%stderr.print("Unable to open file: {}", ([]u8])(err));23 %%stderr.print("Unable to open file: {}", ([]u8)(err));
25 return err;24 return err;
26 }25 }
27 defer is.close();26 defer is.close();
...@@ -35,12 +34,12 @@ pub fn main(args: [][]u8) %void => {...@@ -35,12 +34,12 @@ pub fn main(args: [][]u8) %void => {
35 }34 }
36}35}
3736
38fn usage(exe: []u8) %void => {37fn usage(exe: []u8) -> %void {
39 %%stderr.print("Usage: {} [FILE]...\n", exe);38 %%stderr.print("Usage: {} [FILE]...\n", exe);
40 return error.Invalid;39 return error.Invalid;
41}40}
4241
43fn cat_stream(is: InputStream) %void => {42fn cat_stream(is: InputStream) -> %void {
44 var buf: [1024 * 4]u8;43 var buf: [1024 * 4]u8;
4544
46 while (true) {45 while (true) {
example/hello_world/hello.zig+1-1
...@@ -3,5 +3,5 @@ export executable "hello";...@@ -3,5 +3,5 @@ export executable "hello";
3import "std.zig";3import "std.zig";
44
5pub fn main(args: [][]u8) -> %void {5pub fn main(args: [][]u8) -> %void {
6 stdout.printf("Hello, world!\n");6 %%stdout.printf("Hello, world!\n");
7}7}
example/multiple_files/foo.zig+1-1
...@@ -3,7 +3,7 @@ import "std.zig";...@@ -3,7 +3,7 @@ import "std.zig";
3// purposefully conflicting function with main.zig3// purposefully conflicting function with main.zig
4// but it's private so it should be OK4// but it's private so it should be OK
5fn private_function() {5fn private_function() {
6 stdout.printf("OK 1\n");6 %%stdout.printf("OK 1\n");
7}7}
88
9pub fn print_text() {9pub fn print_text() {
example/multiple_files/main.zig+1-1
...@@ -5,7 +5,7 @@ import "foo.zig";...@@ -5,7 +5,7 @@ import "foo.zig";
55
6pub fn main(args: [][]u8) -> %void {6pub fn main(args: [][]u8) -> %void {
7 private_function();7 private_function();
8 stdout.printf("OK 2\n");8 %%stdout.printf("OK 2\n");
9}9}
1010
11fn private_function() {11fn private_function() {
src/analyze.cpp+6-2
...@@ -3830,8 +3830,12 @@ static TypeTableEntry *analyze_block_expr(CodeGen *g, ImportTableEntry *import,...@@ -3830,8 +3830,12 @@ static TypeTableEntry *analyze_block_expr(CodeGen *g, ImportTableEntry *import,
3830 bool is_last = (i == node->data.block.statements.length - 1);3830 bool is_last = (i == node->data.block.statements.length - 1);
3831 TypeTableEntry *passed_expected_type = is_last ? expected_type : nullptr;3831 TypeTableEntry *passed_expected_type = is_last ? expected_type : nullptr;
3832 return_type = analyze_expression(g, import, child_context, passed_expected_type, child);3832 return_type = analyze_expression(g, import, child_context, passed_expected_type, child);
3833 if (!is_last && return_type->id == TypeTableEntryIdMetaType) {3833 if (!is_last) {
3834 add_node_error(g, child, buf_sprintf("expected expression, found type"));3834 if (return_type->id == TypeTableEntryIdMetaType) {
3835 add_node_error(g, child, buf_sprintf("expected expression, found type"));
3836 } else if (return_type->id == TypeTableEntryIdErrorUnion) {
3837 add_node_error(g, child, buf_sprintf("statement ignores error value"));
3838 }
3835 }3839 }
3836 }3840 }
3837 return return_type;3841 return return_type;
test/run_tests.cpp+189-189
...@@ -121,7 +121,7 @@ pub fn main(args: [][]u8) -> %void {...@@ -121,7 +121,7 @@ pub fn main(args: [][]u8) -> %void {
121}121}
122122
123fn this_is_a_function() -> unreachable {123fn this_is_a_function() -> unreachable {
124 stdout.printf("OK\n");124 %%stdout.printf("OK\n");
125 exit(0);125 exit(0);
126}126}
127 )SOURCE", "OK\n");127 )SOURCE", "OK\n");
...@@ -137,7 +137,7 @@ fn another_function() {}...@@ -137,7 +137,7 @@ fn another_function() {}
137/// this is a documentation comment137/// this is a documentation comment
138/// doc comment line 2138/// doc comment line 2
139pub fn main(args: [][]u8) -> %void {139pub fn main(args: [][]u8) -> %void {
140 stdout.printf(/* mid-line comment /* nested */ */ "OK\n");140 %%stdout.printf(/* mid-line comment /* nested */ */ "OK\n");
141}141}
142 )SOURCE", "OK\n");142 )SOURCE", "OK\n");
143143
...@@ -148,7 +148,7 @@ import "foo.zig";...@@ -148,7 +148,7 @@ import "foo.zig";
148148
149pub fn main(args: [][]u8) -> %void {149pub fn main(args: [][]u8) -> %void {
150 private_function();150 private_function();
151 stdout.printf("OK 2\n");151 %%stdout.printf("OK 2\n");
152}152}
153153
154fn private_function() {154fn private_function() {
...@@ -162,7 +162,7 @@ import "std.zig";...@@ -162,7 +162,7 @@ import "std.zig";
162// purposefully conflicting function with main.zig162// purposefully conflicting function with main.zig
163// but it's private so it should be OK163// but it's private so it should be OK
164fn private_function() {164fn private_function() {
165 stdout.printf("OK 1\n");165 %%stdout.printf("OK 1\n");
166}166}
167167
168pub fn print_text() {168pub fn print_text() {
...@@ -185,7 +185,7 @@ pub fn main(args: [][]u8) -> %void {...@@ -185,7 +185,7 @@ pub fn main(args: [][]u8) -> %void {
185 add_source_file(tc, "foo.zig", R"SOURCE(185 add_source_file(tc, "foo.zig", R"SOURCE(
186import "std.zig";186import "std.zig";
187pub fn foo_function() {187pub fn foo_function() {
188 stdout.printf("OK\n");188 %%stdout.printf("OK\n");
189}189}
190 )SOURCE");190 )SOURCE");
191191
...@@ -195,7 +195,7 @@ import "std.zig";...@@ -195,7 +195,7 @@ import "std.zig";
195195
196pub fn bar_function() {196pub fn bar_function() {
197 if (foo_function()) {197 if (foo_function()) {
198 stdout.printf("OK\n");198 %%stdout.printf("OK\n");
199 }199 }
200}200}
201 )SOURCE");201 )SOURCE");
...@@ -213,17 +213,17 @@ import "std.zig";...@@ -213,17 +213,17 @@ import "std.zig";
213213
214pub fn main(args: [][]u8) -> %void {214pub fn main(args: [][]u8) -> %void {
215 if (1 != 0) {215 if (1 != 0) {
216 stdout.printf("1 is true\n");216 %%stdout.printf("1 is true\n");
217 } else {217 } else {
218 stdout.printf("1 is false\n");218 %%stdout.printf("1 is false\n");
219 }219 }
220 if (0 != 0) {220 if (0 != 0) {
221 stdout.printf("0 is true\n");221 %%stdout.printf("0 is true\n");
222 } else if (1 - 1 != 0) {222 } else if (1 - 1 != 0) {
223 stdout.printf("1 - 1 is true\n");223 %%stdout.printf("1 - 1 is true\n");
224 }224 }
225 if (!(0 != 0)) {225 if (!(0 != 0)) {
226 stdout.printf("!0 is true\n");226 %%stdout.printf("!0 is true\n");
227 }227 }
228}228}
229 )SOURCE", "1 is true\n!0 is true\n");229 )SOURCE", "1 is true\n!0 is true\n");
...@@ -237,7 +237,7 @@ fn add(a: i32, b: i32) -> i32 {...@@ -237,7 +237,7 @@ fn add(a: i32, b: i32) -> i32 {
237237
238pub fn main(args: [][]u8) -> %void {238pub fn main(args: [][]u8) -> %void {
239 if (add(22, 11) == 33) {239 if (add(22, 11) == 33) {
240 stdout.printf("pass\n");240 %%stdout.printf("pass\n");
241 }241 }
242}242}
243 )SOURCE", "pass\n");243 )SOURCE", "pass\n");
...@@ -249,7 +249,7 @@ fn loop(a : i32) {...@@ -249,7 +249,7 @@ fn loop(a : i32) {
249 if (a == 0) {249 if (a == 0) {
250 goto done;250 goto done;
251 }251 }
252 stdout.printf("loop\n");252 %%stdout.printf("loop\n");
253 loop(a - 1);253 loop(a - 1);
254254
255done:255done:
...@@ -268,7 +268,7 @@ pub fn main(args: [][]u8) -> %void {...@@ -268,7 +268,7 @@ pub fn main(args: [][]u8) -> %void {
268 const a : i32 = 1;268 const a : i32 = 1;
269 const b = i32(2);269 const b = i32(2);
270 if (a + b == 3) {270 if (a + b == 3) {
271 stdout.printf("OK\n");271 %%stdout.printf("OK\n");
272 }272 }
273}273}
274 )SOURCE", "OK\n");274 )SOURCE", "OK\n");
...@@ -277,10 +277,10 @@ pub fn main(args: [][]u8) -> %void {...@@ -277,10 +277,10 @@ pub fn main(args: [][]u8) -> %void {
277import "std.zig";277import "std.zig";
278278
279pub fn main(args: [][]u8) -> %void {279pub fn main(args: [][]u8) -> %void {
280 if (true) { stdout.printf("OK 1\n"); }280 if (true) { %%stdout.printf("OK 1\n"); }
281 if (false) { stdout.printf("BAD 1\n"); }281 if (false) { %%stdout.printf("BAD 1\n"); }
282 if (!true) { stdout.printf("BAD 2\n"); }282 if (!true) { %%stdout.printf("BAD 2\n"); }
283 if (!false) { stdout.printf("OK 2\n"); }283 if (!false) { %%stdout.printf("OK 2\n"); }
284}284}
285 )SOURCE", "OK 1\nOK 2\n");285 )SOURCE", "OK 1\nOK 2\n");
286286
...@@ -290,14 +290,14 @@ import "std.zig";...@@ -290,14 +290,14 @@ import "std.zig";
290pub fn main(args: [][]u8) -> %void {290pub fn main(args: [][]u8) -> %void {
291 if (true) {291 if (true) {
292 const no_conflict : i32 = 5;292 const no_conflict : i32 = 5;
293 if (no_conflict == 5) { stdout.printf("OK 1\n"); }293 if (no_conflict == 5) { %%stdout.printf("OK 1\n"); }
294 }294 }
295295
296 const c = {296 const c = {
297 const no_conflict = i32(10);297 const no_conflict = i32(10);
298 no_conflict298 no_conflict
299 };299 };
300 if (c == 10) { stdout.printf("OK 2\n"); }300 if (c == 10) { %%stdout.printf("OK 2\n"); }
301}301}
302 )SOURCE", "OK 1\nOK 2\n");302 )SOURCE", "OK 1\nOK 2\n");
303303
...@@ -311,7 +311,7 @@ pub fn main(args: [][]u8) -> %void {...@@ -311,7 +311,7 @@ pub fn main(args: [][]u8) -> %void {
311fn void_fun(a : i32, b : void, c : i32) {311fn void_fun(a : i32, b : void, c : i32) {
312 const v = b;312 const v = b;
313 const vv : void = if (a == 1) {v} else {};313 const vv : void = if (a == 1) {v} else {};
314 if (a + c == 3) { stdout.printf("OK\n"); }314 if (a + c == 3) { %%stdout.printf("OK\n"); }
315 return vv;315 return vv;
316}316}
317 )SOURCE", "OK\n");317 )SOURCE", "OK\n");
...@@ -330,12 +330,12 @@ pub fn main(args: [][]u8) -> %void {...@@ -330,12 +330,12 @@ pub fn main(args: [][]u8) -> %void {
330 .c = void{},330 .c = void{},
331 };331 };
332 if (foo.b != 1) {332 if (foo.b != 1) {
333 stdout.printf("BAD\n");333 %%stdout.printf("BAD\n");
334 }334 }
335 if (@sizeof(Foo) != 4) {335 if (@sizeof(Foo) != 4) {
336 stdout.printf("BAD\n");336 %%stdout.printf("BAD\n");
337 }337 }
338 stdout.printf("OK\n");338 %%stdout.printf("OK\n");
339}339}
340340
341 )SOURCE", "OK\n");341 )SOURCE", "OK\n");
...@@ -348,12 +348,12 @@ pub fn main(args: [][]u8) -> %void {...@@ -348,12 +348,12 @@ pub fn main(args: [][]u8) -> %void {
348 array[0] = void{};348 array[0] = void{};
349 array[1] = array[2];349 array[1] = array[2];
350 if (@sizeof(@typeof(array)) != 0) {350 if (@sizeof(@typeof(array)) != 0) {
351 stdout.printf("BAD\n");351 %%stdout.printf("BAD\n");
352 }352 }
353 if (array.len != 4) {353 if (array.len != 4) {
354 stdout.printf("BAD\n");354 %%stdout.printf("BAD\n");
355 }355 }
356 stdout.printf("OK\n");356 %%stdout.printf("OK\n");
357}357}
358 )SOURCE", "OK\n");358 )SOURCE", "OK\n");
359359
...@@ -363,11 +363,11 @@ import "std.zig";...@@ -363,11 +363,11 @@ import "std.zig";
363363
364pub fn main(args: [][]u8) -> %void {364pub fn main(args: [][]u8) -> %void {
365 var zero : i32 = 0;365 var zero : i32 = 0;
366 if (zero == 0) { stdout.printf("zero\n"); }366 if (zero == 0) { %%stdout.printf("zero\n"); }
367367
368 var i = i32(0);368 var i = i32(0);
369 while (i != 3) {369 while (i != 3) {
370 stdout.printf("loop\n");370 %%stdout.printf("loop\n");
371 i += 1;371 i += 1;
372 }372 }
373}373}
...@@ -394,11 +394,11 @@ pub fn main(args: [][]u8) -> %void {...@@ -394,11 +394,11 @@ pub fn main(args: [][]u8) -> %void {
394 }394 }
395395
396 if (accumulator == 15) {396 if (accumulator == 15) {
397 stdout.printf("OK\n");397 %%stdout.printf("OK\n");
398 }398 }
399399
400 if (get_array_len(array) != 5) {400 if (get_array_len(array) != 5) {
401 stdout.printf("BAD\n");401 %%stdout.printf("BAD\n");
402 }402 }
403}403}
404fn get_array_len(a: []i32) -> isize {404fn get_array_len(a: []i32) -> isize {
...@@ -411,7 +411,7 @@ fn get_array_len(a: []i32) -> isize {...@@ -411,7 +411,7 @@ fn get_array_len(a: []i32) -> isize {
411import "std.zig";411import "std.zig";
412412
413pub fn main(args: [][]u8) -> %void {413pub fn main(args: [][]u8) -> %void {
414 stdout.printf("Hello, world!\n");414 %%stdout.printf("Hello, world!\n");
415}415}
416 )SOURCE", "Hello, world!\n");416 )SOURCE", "Hello, world!\n");
417417
...@@ -420,20 +420,20 @@ pub fn main(args: [][]u8) -> %void {...@@ -420,20 +420,20 @@ pub fn main(args: [][]u8) -> %void {
420import "std.zig";420import "std.zig";
421421
422pub fn main(args: [][]u8) -> %void {422pub fn main(args: [][]u8) -> %void {
423 if (false || false || false) { stdout.printf("BAD 1\n"); }423 if (false || false || false) { %%stdout.printf("BAD 1\n"); }
424 if (true && true && false) { stdout.printf("BAD 2\n"); }424 if (true && true && false) { %%stdout.printf("BAD 2\n"); }
425 if (1 | 2 | 4 != 7) { stdout.printf("BAD 3\n"); }425 if (1 | 2 | 4 != 7) { %%stdout.printf("BAD 3\n"); }
426 if (3 ^ 6 ^ 8 != 13) { stdout.printf("BAD 4\n"); }426 if (3 ^ 6 ^ 8 != 13) { %%stdout.printf("BAD 4\n"); }
427 if (7 & 14 & 28 != 4) { stdout.printf("BAD 5\n"); }427 if (7 & 14 & 28 != 4) { %%stdout.printf("BAD 5\n"); }
428 if (9 << 1 << 2 != 9 << 3) { stdout.printf("BAD 6\n"); }428 if (9 << 1 << 2 != 9 << 3) { %%stdout.printf("BAD 6\n"); }
429 if (90 >> 1 >> 2 != 90 >> 3) { stdout.printf("BAD 7\n"); }429 if (90 >> 1 >> 2 != 90 >> 3) { %%stdout.printf("BAD 7\n"); }
430 if (100 - 1 + 1000 != 1099) { stdout.printf("BAD 8\n"); }430 if (100 - 1 + 1000 != 1099) { %%stdout.printf("BAD 8\n"); }
431 if (5 * 4 / 2 % 3 != 1) { stdout.printf("BAD 9\n"); }431 if (5 * 4 / 2 % 3 != 1) { %%stdout.printf("BAD 9\n"); }
432 if (i32(i32(5)) != 5) { stdout.printf("BAD 10\n"); }432 if (i32(i32(5)) != 5) { %%stdout.printf("BAD 10\n"); }
433 if (!!false) { stdout.printf("BAD 11\n"); }433 if (!!false) { %%stdout.printf("BAD 11\n"); }
434 if (i32(7) != --(i32(7))) { stdout.printf("BAD 12\n"); }434 if (i32(7) != --(i32(7))) { %%stdout.printf("BAD 12\n"); }
435435
436 stdout.printf("OK\n");436 %%stdout.printf("OK\n");
437}437}
438 )SOURCE", "OK\n");438 )SOURCE", "OK\n");
439439
...@@ -441,19 +441,19 @@ pub fn main(args: [][]u8) -> %void {...@@ -441,19 +441,19 @@ pub fn main(args: [][]u8) -> %void {
441import "std.zig";441import "std.zig";
442442
443pub fn main(args: [][]u8) -> %void {443pub fn main(args: [][]u8) -> %void {
444 if (true || { stdout.printf("BAD 1\n"); false }) {444 if (true || { %%stdout.printf("BAD 1\n"); false }) {
445 stdout.printf("OK 1\n");445 %%stdout.printf("OK 1\n");
446 }446 }
447 if (false || { stdout.printf("OK 2\n"); false }) {447 if (false || { %%stdout.printf("OK 2\n"); false }) {
448 stdout.printf("BAD 2\n");448 %%stdout.printf("BAD 2\n");
449 }449 }
450450
451 if (true && { stdout.printf("OK 3\n"); false }) {451 if (true && { %%stdout.printf("OK 3\n"); false }) {
452 stdout.printf("BAD 3\n");452 %%stdout.printf("BAD 3\n");
453 }453 }
454 if (false && { stdout.printf("BAD 4\n"); false }) {454 if (false && { %%stdout.printf("BAD 4\n"); false }) {
455 } else {455 } else {
456 stdout.printf("OK 4\n");456 %%stdout.printf("OK 4\n");
457 }457 }
458}458}
459 )SOURCE", "OK 1\nOK 2\nOK 3\nOK 4\n");459 )SOURCE", "OK 1\nOK 2\nOK 3\nOK 4\n");
...@@ -463,20 +463,20 @@ import "std.zig";...@@ -463,20 +463,20 @@ import "std.zig";
463463
464pub fn main(args: [][]u8) -> %void {464pub fn main(args: [][]u8) -> %void {
465 var i : i32 = 0;465 var i : i32 = 0;
466 i += 5; if (i != 5) { stdout.printf("BAD +=\n"); }466 i += 5; if (i != 5) { %%stdout.printf("BAD +=\n"); }
467 i -= 2; if (i != 3) { stdout.printf("BAD -=\n"); }467 i -= 2; if (i != 3) { %%stdout.printf("BAD -=\n"); }
468 i *= 20; if (i != 60) { stdout.printf("BAD *=\n"); }468 i *= 20; if (i != 60) { %%stdout.printf("BAD *=\n"); }
469 i /= 3; if (i != 20) { stdout.printf("BAD /=\n"); }469 i /= 3; if (i != 20) { %%stdout.printf("BAD /=\n"); }
470 i %= 11; if (i != 9) { stdout.printf("BAD %=\n"); }470 i %= 11; if (i != 9) { %%stdout.printf("BAD %=\n"); }
471 i <<= 1; if (i != 18) { stdout.printf("BAD <<=\n"); }471 i <<= 1; if (i != 18) { %%stdout.printf("BAD <<=\n"); }
472 i >>= 2; if (i != 4) { stdout.printf("BAD >>=\n"); }472 i >>= 2; if (i != 4) { %%stdout.printf("BAD >>=\n"); }
473 i = 6;473 i = 6;
474 i &= 5; if (i != 4) { stdout.printf("BAD &=\n"); }474 i &= 5; if (i != 4) { %%stdout.printf("BAD &=\n"); }
475 i ^= 6; if (i != 2) { stdout.printf("BAD ^=\n"); }475 i ^= 6; if (i != 2) { %%stdout.printf("BAD ^=\n"); }
476 i = 6;476 i = 6;
477 i |= 3; if (i != 7) { stdout.printf("BAD |=\n"); }477 i |= 3; if (i != 7) { %%stdout.printf("BAD |=\n"); }
478478
479 stdout.printf("OK\n");479 %%stdout.printf("OK\n");
480}480}
481 )SOURCE", "OK\n");481 )SOURCE", "OK\n");
482482
...@@ -620,12 +620,12 @@ pub fn main(args: [][]u8) -> %void {...@@ -620,12 +620,12 @@ pub fn main(args: [][]u8) -> %void {
620 test_foo(foo);620 test_foo(foo);
621 test_mutation(&foo);621 test_mutation(&foo);
622 if (foo.c != 100) {622 if (foo.c != 100) {
623 stdout.printf("BAD\n");623 %%stdout.printf("BAD\n");
624 }624 }
625 test_point_to_self();625 test_point_to_self();
626 test_byval_assign();626 test_byval_assign();
627 test_initializer();627 test_initializer();
628 stdout.printf("OK\n");628 %%stdout.printf("OK\n");
629}629}
630struct Foo {630struct Foo {
631 a : i32,631 a : i32,
...@@ -634,7 +634,7 @@ struct Foo {...@@ -634,7 +634,7 @@ struct Foo {
634}634}
635fn test_foo(foo : Foo) {635fn test_foo(foo : Foo) {
636 if (!foo.b) {636 if (!foo.b) {
637 stdout.printf("BAD\n");637 %%stdout.printf("BAD\n");
638 }638 }
639}639}
640fn test_mutation(foo : &Foo) {640fn test_mutation(foo : &Foo) {
...@@ -659,7 +659,7 @@ fn test_point_to_self() {...@@ -659,7 +659,7 @@ fn test_point_to_self() {
659 root.next = &node;659 root.next = &node;
660660
661 if (node.next.next.next.val.x != 1) {661 if (node.next.next.next.val.x != 1) {
662 stdout.printf("BAD\n");662 %%stdout.printf("BAD\n");
663 }663 }
664}664}
665fn test_byval_assign() {665fn test_byval_assign() {
...@@ -668,15 +668,15 @@ fn test_byval_assign() {...@@ -668,15 +668,15 @@ fn test_byval_assign() {
668668
669 foo1.a = 1234;669 foo1.a = 1234;
670670
671 if (foo2.a != 0) { stdout.printf("BAD\n"); }671 if (foo2.a != 0) { %%stdout.printf("BAD\n"); }
672672
673 foo2 = foo1;673 foo2 = foo1;
674674
675 if (foo2.a != 1234) { stdout.printf("BAD - byval assignment failed\n"); }675 if (foo2.a != 1234) { %%stdout.printf("BAD - byval assignment failed\n"); }
676}676}
677fn test_initializer() {677fn test_initializer() {
678 const val = Val { .x = 42 };678 const val = Val { .x = 42 };
679 if (val.x != 42) { stdout.printf("BAD\n"); }679 if (val.x != 42) { %%stdout.printf("BAD\n"); }
680}680}
681 )SOURCE", "OK\n");681 )SOURCE", "OK\n");
682682
...@@ -687,10 +687,10 @@ const g1 : i32 = 1233 + 1;...@@ -687,10 +687,10 @@ const g1 : i32 = 1233 + 1;
687var g2 : i32 = 0;687var g2 : i32 = 0;
688688
689pub fn main(args: [][]u8) -> %void {689pub fn main(args: [][]u8) -> %void {
690 if (g2 != 0) { stdout.printf("BAD\n"); }690 if (g2 != 0) { %%stdout.printf("BAD\n"); }
691 g2 = g1;691 g2 = g1;
692 if (g2 != 1234) { stdout.printf("BAD\n"); }692 if (g2 != 1234) { %%stdout.printf("BAD\n"); }
693 stdout.printf("OK\n");693 %%stdout.printf("OK\n");
694}694}
695 )SOURCE", "OK\n");695 )SOURCE", "OK\n");
696696
...@@ -699,7 +699,7 @@ import "std.zig";...@@ -699,7 +699,7 @@ import "std.zig";
699pub fn main(args: [][]u8) -> %void {699pub fn main(args: [][]u8) -> %void {
700 var i : i32 = 0;700 var i : i32 = 0;
701 while (i < 4) {701 while (i < 4) {
702 stdout.printf("loop\n");702 %%stdout.printf("loop\n");
703 i += 1;703 i += 1;
704 }704 }
705 g();705 g();
...@@ -719,7 +719,7 @@ import "std.zig";...@@ -719,7 +719,7 @@ import "std.zig";
719pub fn main(args: [][]u8) -> %void {719pub fn main(args: [][]u8) -> %void {
720 var i : i32 = 0;720 var i : i32 = 0;
721 while (true) {721 while (true) {
722 stdout.printf("loop\n");722 %%stdout.printf("loop\n");
723 i += 1;723 i += 1;
724 if (i < 4) {724 if (i < 4) {
725 continue;725 continue;
...@@ -736,12 +736,12 @@ pub fn main(args: [][]u8) -> %void {...@@ -736,12 +736,12 @@ pub fn main(args: [][]u8) -> %void {
736736
737 if (const y ?= x) {737 if (const y ?= x) {
738 if (y) {738 if (y) {
739 stdout.printf("x is true\n");739 %%stdout.printf("x is true\n");
740 } else {740 } else {
741 stdout.printf("x is false\n");741 %%stdout.printf("x is false\n");
742 }742 }
743 } else {743 } else {
744 stdout.printf("x is none\n");744 %%stdout.printf("x is none\n");
745 }745 }
746746
747 const next_x : ?i32 = null;747 const next_x : ?i32 = null;
...@@ -749,7 +749,7 @@ pub fn main(args: [][]u8) -> %void {...@@ -749,7 +749,7 @@ pub fn main(args: [][]u8) -> %void {
749 const z = next_x ?? 1234;749 const z = next_x ?? 1234;
750750
751 if (z != 1234) {751 if (z != 1234) {
752 stdout.printf("BAD\n");752 %%stdout.printf("BAD\n");
753 }753 }
754754
755 const final_x : ?i32 = 13;755 const final_x : ?i32 = 13;
...@@ -757,7 +757,7 @@ pub fn main(args: [][]u8) -> %void {...@@ -757,7 +757,7 @@ pub fn main(args: [][]u8) -> %void {
757 const num = final_x ?? unreachable{};757 const num = final_x ?? unreachable{};
758758
759 if (num != 13) {759 if (num != 13) {
760 stdout.printf("BAD\n");760 %%stdout.printf("BAD\n");
761 }761 }
762}762}
763 )SOURCE", "x is true\n");763 )SOURCE", "x is true\n");
...@@ -767,7 +767,7 @@ import "std.zig";...@@ -767,7 +767,7 @@ import "std.zig";
767pub fn main(args: [][]u8) -> %void {767pub fn main(args: [][]u8) -> %void {
768 const x = outer();768 const x = outer();
769 if (x == 1234) {769 if (x == 1234) {
770 stdout.printf("OK\n");770 %%stdout.printf("OK\n");
771 }771 }
772}772}
773fn inner() -> i32 { 1234 }773fn inner() -> i32 { 1234 }
...@@ -782,8 +782,8 @@ const x: u16 = 13;...@@ -782,8 +782,8 @@ const x: u16 = 13;
782const z: @typeof(x) = 19;782const z: @typeof(x) = 19;
783pub fn main(args: [][]u8) -> %void {783pub fn main(args: [][]u8) -> %void {
784 const y: @typeof(x) = 120;784 const y: @typeof(x) = 120;
785 stdout.print_u64(@sizeof(@typeof(y)));785 %%stdout.print_u64(@sizeof(@typeof(y)));
786 stdout.printf("\n");786 %%stdout.printf("\n");
787}787}
788 )SOURCE", "2\n");788 )SOURCE", "2\n");
789789
...@@ -798,9 +798,9 @@ struct Rand {...@@ -798,9 +798,9 @@ struct Rand {
798pub fn main(args: [][]u8) -> %void {798pub fn main(args: [][]u8) -> %void {
799 const r = Rand {.seed = 1234};799 const r = Rand {.seed = 1234};
800 if (r.get_seed() != 1234) {800 if (r.get_seed() != 1234) {
801 stdout.printf("BAD seed\n");801 %%stdout.printf("BAD seed\n");
802 }802 }
803 stdout.printf("OK\n");803 %%stdout.printf("OK\n");
804}804}
805 )SOURCE", "OK\n");805 )SOURCE", "OK\n");
806806
...@@ -814,12 +814,12 @@ pub fn main(args: [][]u8) -> %void {...@@ -814,12 +814,12 @@ pub fn main(args: [][]u8) -> %void {
814 *y += 1;814 *y += 1;
815815
816 if (x != 4) {816 if (x != 4) {
817 stdout.printf("BAD\n");817 %%stdout.printf("BAD\n");
818 }818 }
819 if (*y != 4) {819 if (*y != 4) {
820 stdout.printf("BAD\n");820 %%stdout.printf("BAD\n");
821 }821 }
822 stdout.printf("OK\n");822 %%stdout.printf("OK\n");
823}823}
824 )SOURCE", "OK\n");824 )SOURCE", "OK\n");
825825
...@@ -830,77 +830,77 @@ const ARRAY_SIZE : i8 = 20;...@@ -830,77 +830,77 @@ const ARRAY_SIZE : i8 = 20;
830830
831pub fn main(args: [][]u8) -> %void {831pub fn main(args: [][]u8) -> %void {
832 var array : [ARRAY_SIZE]u8;832 var array : [ARRAY_SIZE]u8;
833 stdout.print_u64(@sizeof(@typeof(array)));833 %%stdout.print_u64(@sizeof(@typeof(array)));
834 stdout.printf("\n");834 %%stdout.printf("\n");
835}835}
836 )SOURCE", "20\n");836 )SOURCE", "20\n");
837837
838 add_simple_case("@min_value() and @max_value()", R"SOURCE(838 add_simple_case("@min_value() and @max_value()", R"SOURCE(
839import "std.zig";839import "std.zig";
840pub fn main(args: [][]u8) -> %void {840pub fn main(args: [][]u8) -> %void {
841 stdout.printf("max u8: ");841 %%stdout.printf("max u8: ");
842 stdout.print_u64(@max_value(u8));842 %%stdout.print_u64(@max_value(u8));
843 stdout.printf("\n");843 %%stdout.printf("\n");
844844
845 stdout.printf("max u16: ");845 %%stdout.printf("max u16: ");
846 stdout.print_u64(@max_value(u16));846 %%stdout.print_u64(@max_value(u16));
847 stdout.printf("\n");847 %%stdout.printf("\n");
848848
849 stdout.printf("max u32: ");849 %%stdout.printf("max u32: ");
850 stdout.print_u64(@max_value(u32));850 %%stdout.print_u64(@max_value(u32));
851 stdout.printf("\n");851 %%stdout.printf("\n");
852852
853 stdout.printf("max u64: ");853 %%stdout.printf("max u64: ");
854 stdout.print_u64(@max_value(u64));854 %%stdout.print_u64(@max_value(u64));
855 stdout.printf("\n");855 %%stdout.printf("\n");
856856
857 stdout.printf("max i8: ");857 %%stdout.printf("max i8: ");
858 stdout.print_i64(@max_value(i8));858 %%stdout.print_i64(@max_value(i8));
859 stdout.printf("\n");859 %%stdout.printf("\n");
860860
861 stdout.printf("max i16: ");861 %%stdout.printf("max i16: ");
862 stdout.print_i64(@max_value(i16));862 %%stdout.print_i64(@max_value(i16));
863 stdout.printf("\n");863 %%stdout.printf("\n");
864864
865 stdout.printf("max i32: ");865 %%stdout.printf("max i32: ");
866 stdout.print_i64(@max_value(i32));866 %%stdout.print_i64(@max_value(i32));
867 stdout.printf("\n");867 %%stdout.printf("\n");
868868
869 stdout.printf("max i64: ");869 %%stdout.printf("max i64: ");
870 stdout.print_i64(@max_value(i64));870 %%stdout.print_i64(@max_value(i64));
871 stdout.printf("\n");871 %%stdout.printf("\n");
872872
873 stdout.printf("min u8: ");873 %%stdout.printf("min u8: ");
874 stdout.print_u64(@min_value(u8));874 %%stdout.print_u64(@min_value(u8));
875 stdout.printf("\n");875 %%stdout.printf("\n");
876876
877 stdout.printf("min u16: ");877 %%stdout.printf("min u16: ");
878 stdout.print_u64(@min_value(u16));878 %%stdout.print_u64(@min_value(u16));
879 stdout.printf("\n");879 %%stdout.printf("\n");
880880
881 stdout.printf("min u32: ");881 %%stdout.printf("min u32: ");
882 stdout.print_u64(@min_value(u32));882 %%stdout.print_u64(@min_value(u32));
883 stdout.printf("\n");883 %%stdout.printf("\n");
884884
885 stdout.printf("min u64: ");885 %%stdout.printf("min u64: ");
886 stdout.print_u64(@min_value(u64));886 %%stdout.print_u64(@min_value(u64));
887 stdout.printf("\n");887 %%stdout.printf("\n");
888888
889 stdout.printf("min i8: ");889 %%stdout.printf("min i8: ");
890 stdout.print_i64(@min_value(i8));890 %%stdout.print_i64(@min_value(i8));
891 stdout.printf("\n");891 %%stdout.printf("\n");
892892
893 stdout.printf("min i16: ");893 %%stdout.printf("min i16: ");
894 stdout.print_i64(@min_value(i16));894 %%stdout.print_i64(@min_value(i16));
895 stdout.printf("\n");895 %%stdout.printf("\n");
896896
897 stdout.printf("min i32: ");897 %%stdout.printf("min i32: ");
898 stdout.print_i64(@min_value(i32));898 %%stdout.print_i64(@min_value(i32));
899 stdout.printf("\n");899 %%stdout.printf("\n");
900900
901 stdout.printf("min i64: ");901 %%stdout.printf("min i64: ");
902 stdout.print_i64(@min_value(i64));902 %%stdout.print_i64(@min_value(i64));
903 stdout.printf("\n");903 %%stdout.printf("\n");
904}904}
905 )SOURCE",905 )SOURCE",
906 "max u8: 255\n"906 "max u8: 255\n"
...@@ -931,19 +931,19 @@ pub fn main(args: [][]u8) -> %void {...@@ -931,19 +931,19 @@ pub fn main(args: [][]u8) -> %void {
931 var slice = array[5...10];931 var slice = array[5...10];
932932
933 if (slice.len != 5) {933 if (slice.len != 5) {
934 stdout.printf("BAD\n");934 %%stdout.printf("BAD\n");
935 }935 }
936936
937 if (slice.ptr[0] != 1234) {937 if (slice.ptr[0] != 1234) {
938 stdout.printf("BAD\n");938 %%stdout.printf("BAD\n");
939 }939 }
940940
941 var slice_rest = array[10...];941 var slice_rest = array[10...];
942 if (slice_rest.len != 10) {942 if (slice_rest.len != 10) {
943 stdout.printf("BAD\n");943 %%stdout.printf("BAD\n");
944 }944 }
945945
946 stdout.printf("OK\n");946 %%stdout.printf("OK\n");
947}947}
948 )SOURCE", "OK\n");948 )SOURCE", "OK\n");
949949
...@@ -952,7 +952,7 @@ pub fn main(args: [][]u8) -> %void {...@@ -952,7 +952,7 @@ pub fn main(args: [][]u8) -> %void {
952import "std.zig";952import "std.zig";
953pub fn main(args: [][]u8) -> %void {953pub fn main(args: [][]u8) -> %void {
954 if (f(1) == 1) {954 if (f(1) == 1) {
955 stdout.printf("OK\n");955 %%stdout.printf("OK\n");
956 }956 }
957}957}
958fn f(c: u8) -> u8 {958fn f(c: u8) -> u8 {
...@@ -971,15 +971,15 @@ import "std.zig";...@@ -971,15 +971,15 @@ import "std.zig";
971pub fn main(args: [][]u8) -> %void {971pub fn main(args: [][]u8) -> %void {
972 var result: u8;972 var result: u8;
973 if (!@add_with_overflow(u8, 250, 100, &result)) {973 if (!@add_with_overflow(u8, 250, 100, &result)) {
974 stdout.printf("BAD\n");974 %%stdout.printf("BAD\n");
975 }975 }
976 if (@add_with_overflow(u8, 100, 150, &result)) {976 if (@add_with_overflow(u8, 100, 150, &result)) {
977 stdout.printf("BAD\n");977 %%stdout.printf("BAD\n");
978 }978 }
979 if (result != 250) {979 if (result != 250) {
980 stdout.printf("BAD\n");980 %%stdout.printf("BAD\n");
981 }981 }
982 stdout.printf("OK\n");982 %%stdout.printf("OK\n");
983}983}
984 )SOURCE", "OK\n");984 )SOURCE", "OK\n");
985985
...@@ -993,10 +993,10 @@ pub fn main(args: [][]u8) -> %void {...@@ -993,10 +993,10 @@ pub fn main(args: [][]u8) -> %void {
993 @memcpy(bar.ptr, foo.ptr, bar.len);993 @memcpy(bar.ptr, foo.ptr, bar.len);
994994
995 if (bar[11] != 'A') {995 if (bar[11] != 'A') {
996 stdout.printf("BAD\n");996 %%stdout.printf("BAD\n");
997 }997 }
998998
999 stdout.printf("OK\n");999 %%stdout.printf("OK\n");
1000}1000}
1001 )SOURCE", "OK\n");1001 )SOURCE", "OK\n");
10021002
...@@ -1009,7 +1009,7 @@ pub fn main(args: [][]u8) -> %void {...@@ -1009,7 +1009,7 @@ pub fn main(args: [][]u8) -> %void {
1009 var x : i32 = print_ok(x);1009 var x : i32 = print_ok(x);
1010}1010}
1011fn print_ok(val: @typeof(x)) -> @typeof(foo) {1011fn print_ok(val: @typeof(x)) -> @typeof(foo) {
1012 stdout.printf("OK\n");1012 %%stdout.printf("OK\n");
1013 return 0;1013 return 0;
1014}1014}
1015const foo : i32 = 0;1015const foo : i32 = 0;
...@@ -1042,25 +1042,25 @@ pub fn main(args: [][]u8) -> %void {...@@ -1042,25 +1042,25 @@ pub fn main(args: [][]u8) -> %void {
1042 const bar = Bar.B;1042 const bar = Bar.B;
10431043
1044 if (bar != Bar.B) {1044 if (bar != Bar.B) {
1045 stdout.printf("BAD\n");1045 %%stdout.printf("BAD\n");
1046 }1046 }
10471047
1048 if (@member_count(Foo) != 3) {1048 if (@member_count(Foo) != 3) {
1049 stdout.printf("BAD\n");1049 %%stdout.printf("BAD\n");
1050 }1050 }
10511051
1052 if (@member_count(Bar) != 4) {1052 if (@member_count(Bar) != 4) {
1053 stdout.printf("BAD\n");1053 %%stdout.printf("BAD\n");
1054 }1054 }
10551055
1056 if (@sizeof(Foo) != 17) {1056 if (@sizeof(Foo) != 17) {
1057 stdout.printf("BAD\n");1057 %%stdout.printf("BAD\n");
1058 }1058 }
1059 if (@sizeof(Bar) != 1) {1059 if (@sizeof(Bar) != 1) {
1060 stdout.printf("BAD\n");1060 %%stdout.printf("BAD\n");
1061 }1061 }
10621062
1063 stdout.printf("OK\n");1063 %%stdout.printf("OK\n");
1064}1064}
1065 )SOURCE", "OK\n");1065 )SOURCE", "OK\n");
10661066
...@@ -1071,14 +1071,14 @@ pub fn main(args: [][]u8) -> %void {...@@ -1071,14 +1071,14 @@ pub fn main(args: [][]u8) -> %void {
1071 const HEX_MULT = []u16{4096, 256, 16, 1};1071 const HEX_MULT = []u16{4096, 256, 16, 1};
10721072
1073 if (HEX_MULT.len != 4) {1073 if (HEX_MULT.len != 4) {
1074 stdout.printf("BAD\n");1074 %%stdout.printf("BAD\n");
1075 }1075 }
10761076
1077 if (HEX_MULT[1] != 256) {1077 if (HEX_MULT[1] != 256) {
1078 stdout.printf("BAD\n");1078 %%stdout.printf("BAD\n");
1079 }1079 }
10801080
1081 stdout.printf("OK\n");1081 %%stdout.printf("OK\n");
1082}1082}
1083 )SOURCE", "OK\n");1083 )SOURCE", "OK\n");
10841084
...@@ -1089,8 +1089,8 @@ pub fn main(args: [][]u8) -> %void {...@@ -1089,8 +1089,8 @@ pub fn main(args: [][]u8) -> %void {
1089 const array_of_strings = [][]u8 {"hello", "this", "is", "my", "thing"};1089 const array_of_strings = [][]u8 {"hello", "this", "is", "my", "thing"};
1090 var i: @typeof(array_of_strings.len) = 0;1090 var i: @typeof(array_of_strings.len) = 0;
1091 while (i < array_of_strings.len) {1091 while (i < array_of_strings.len) {
1092 stdout.printf(array_of_strings[i]);1092 %%stdout.printf(array_of_strings[i]);
1093 stdout.printf("\n");1093 %%stdout.printf("\n");
1094 i += 1;1094 i += 1;
1095 }1095 }
1096}1096}
...@@ -1102,21 +1102,21 @@ import "std.zig";...@@ -1102,21 +1102,21 @@ import "std.zig";
1102pub fn main(args: [][]u8) -> %void {1102pub fn main(args: [][]u8) -> %void {
1103 const array = []u8 {9, 8, 7, 6};1103 const array = []u8 {9, 8, 7, 6};
1104 for (item, array) {1104 for (item, array) {
1105 stdout.print_u64(item);1105 %%stdout.print_u64(item);
1106 stdout.printf("\n");1106 %%stdout.printf("\n");
1107 }1107 }
1108 for (item, array, index) {1108 for (item, array, index) {
1109 stdout.print_i64(index);1109 %%stdout.print_i64(index);
1110 stdout.printf("\n");1110 %%stdout.printf("\n");
1111 }1111 }
1112 const unknown_size: []u8 = array;1112 const unknown_size: []u8 = array;
1113 for (item, unknown_size) {1113 for (item, unknown_size) {
1114 stdout.print_u64(item);1114 %%stdout.print_u64(item);
1115 stdout.printf("\n");1115 %%stdout.printf("\n");
1116 }1116 }
1117 for (item, unknown_size, index) {1117 for (item, unknown_size, index) {
1118 stdout.print_i64(index);1118 %%stdout.print_i64(index);
1119 stdout.printf("\n");1119 %%stdout.printf("\n");
1120 }1120 }
1121}1121}
1122 )SOURCE", "9\n8\n7\n6\n0\n1\n2\n3\n9\n8\n7\n6\n0\n1\n2\n3\n");1122 )SOURCE", "9\n8\n7\n6\n0\n1\n2\n3\n9\n8\n7\n6\n0\n1\n2\n3\n");
...@@ -1127,8 +1127,8 @@ import "std.zig";...@@ -1127,8 +1127,8 @@ import "std.zig";
1127pub fn main(args: [][]u8) -> %void {1127pub fn main(args: [][]u8) -> %void {
1128 const fns = []@typeof(fn1) { fn1, fn2, fn3, fn4, };1128 const fns = []@typeof(fn1) { fn1, fn2, fn3, fn4, };
1129 for (f, fns) {1129 for (f, fns) {
1130 stdout.print_u64(f());1130 %%stdout.print_u64(f());
1131 stdout.printf("\n");1131 %%stdout.printf("\n");
1132 }1132 }
1133}1133}
11341134
...@@ -1157,10 +1157,10 @@ pub fn main(args: [][]u8) -> %void {...@@ -1157,10 +1157,10 @@ pub fn main(args: [][]u8) -> %void {
1157 Foo.D => 4,1157 Foo.D => 4,
1158 };1158 };
1159 if (val != 3) {1159 if (val != 3) {
1160 stdout.printf("BAD\n");1160 %%stdout.printf("BAD\n");
1161 }1161 }
11621162
1163 stdout.printf("OK\n");1163 %%stdout.printf("OK\n");
1164}1164}
1165 )SOURCE", "OK\n");1165 )SOURCE", "OK\n");
11661166
...@@ -1174,10 +1174,10 @@ pub fn main(args: [][]u8) -> %void {...@@ -1174,10 +1174,10 @@ pub fn main(args: [][]u8) -> %void {
1174 const eleven = ten + one;1174 const eleven = ten + one;
11751175
1176 if (eleven != 11) {1176 if (eleven != 11) {
1177 stdout.printf("BAD\n");1177 %%stdout.printf("BAD\n");
1178 }1178 }
11791179
1180 stdout.printf("OK\n");1180 %%stdout.printf("OK\n");
1181}1181}
1182 )SOURCE", "OK\n");1182 )SOURCE", "OK\n");
11831183
...@@ -1191,10 +1191,10 @@ var foo = Foo { .x = 13, .y = true, };...@@ -1191,10 +1191,10 @@ var foo = Foo { .x = 13, .y = true, };
1191pub fn main(args: [][]u8) -> %void {1191pub fn main(args: [][]u8) -> %void {
1192 foo.x += 1;1192 foo.x += 1;
1193 if (foo.x != 14) {1193 if (foo.x != 14) {
1194 stdout.printf("BAD\n");1194 %%stdout.printf("BAD\n");
1195 }1195 }
11961196
1197 stdout.printf("OK\n");1197 %%stdout.printf("OK\n");
1198}1198}
1199 )SOURCE", "OK\n");1199 )SOURCE", "OK\n");
12001200
...@@ -1204,10 +1204,10 @@ const x = []u8{1,2,3,4};...@@ -1204,10 +1204,10 @@ const x = []u8{1,2,3,4};
1204pub fn main(args: [][]u8) -> %void {1204pub fn main(args: [][]u8) -> %void {
1205 const y : [4]u8 = x;1205 const y : [4]u8 = x;
1206 if (y[3] != 4) {1206 if (y[3] != 4) {
1207 stdout.printf("BAD\n");1207 %%stdout.printf("BAD\n");
1208 }1208 }
12091209
1210 stdout.printf("OK\n");1210 %%stdout.printf("OK\n");
1211}1211}
1212 )SOURCE", "OK\n");1212 )SOURCE", "OK\n");
12131213
...@@ -1219,10 +1219,10 @@ pub fn main(args: [][]u8) -> %void {...@@ -1219,10 +1219,10 @@ pub fn main(args: [][]u8) -> %void {
1219 const a = i32(error.err1);1219 const a = i32(error.err1);
1220 const b = i32(error.err2);1220 const b = i32(error.err2);
1221 if (a == b) {1221 if (a == b) {
1222 stdout.printf("BAD\n");1222 %%stdout.printf("BAD\n");
1223 }1223 }
12241224
1225 stdout.printf("OK\n");1225 %%stdout.printf("OK\n");
1226}1226}
1227 )SOURCE", "OK\n");1227 )SOURCE", "OK\n");
12281228
...@@ -1230,7 +1230,7 @@ pub fn main(args: [][]u8) -> %void {...@@ -1230,7 +1230,7 @@ pub fn main(args: [][]u8) -> %void {
1230import "std.zig";1230import "std.zig";
1231pub fn main(args: [][]u8) -> %void {1231pub fn main(args: [][]u8) -> %void {
1232 while (true) {1232 while (true) {
1233 stdout.printf("OK\n");1233 %%stdout.printf("OK\n");
1234 return;1234 return;
1235 }1235 }
1236}1236}
...@@ -1251,9 +1251,9 @@ fn make_foo(x: i32, y: i32) -> Foo {...@@ -1251,9 +1251,9 @@ fn make_foo(x: i32, y: i32) -> Foo {
1251pub fn main(args: [][]u8) -> %void {1251pub fn main(args: [][]u8) -> %void {
1252 const foo = make_foo(1234, 5678);1252 const foo = make_foo(1234, 5678);
1253 if (foo.y != 5678) {1253 if (foo.y != 5678) {
1254 stdout.printf("BAD\n");1254 %%stdout.printf("BAD\n");
1255 }1255 }
1256 stdout.printf("OK\n");1256 %%stdout.printf("OK\n");
1257}1257}
1258 )SOURCE", "OK\n");1258 )SOURCE", "OK\n");
12591259
...@@ -1271,12 +1271,12 @@ pub fn main(args: [][]u8) -> %void {...@@ -1271,12 +1271,12 @@ pub fn main(args: [][]u8) -> %void {
1271 const a = g(true) %% 3;1271 const a = g(true) %% 3;
1272 const b = g(false) %% 3;1272 const b = g(false) %% 3;
1273 if (a != 3) {1273 if (a != 3) {
1274 stdout.printf("BAD\n");1274 %%stdout.printf("BAD\n");
1275 }1275 }
1276 if (b != 10) {1276 if (b != 10) {
1277 stdout.printf("BAD\n");1277 %%stdout.printf("BAD\n");
1278 }1278 }
1279 stdout.printf("OK\n");1279 %%stdout.printf("OK\n");
1280}1280}
1281 )SOURCE", "OK\n");1281 )SOURCE", "OK\n");
1282}1282}