authorgravatar for 57862114+momumi@users.noreply.github.commomumi <57862114+momumi@users.noreply.github.com> 2020-03-15 23:42:29+10:00
committergravatar for 57862114+momumi@users.noreply.github.commomumi <57862114+momumi@users.noreply.github.com> 2020-03-15 23:42:29+10:00
log47f7e6658077fb4f55c36e9c62ed5012ef8aace2
tree12ec6ad3340cca690b0f9c7a0a0928f0eca57159
parent925f71085269a8072ea9c49025a534fa47fbec44

add more test cases for invalid number literals


1 files changed, 62 insertions(+), 14 deletions(-)

test/compile_errors.zig+62-14
...@@ -384,15 +384,31 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -384,15 +384,31 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
384 \\ var bad_float :f32 = 0.0;384 \\ var bad_float :f32 = 0.0;
385 \\ bad_float = bad_float + .20;385 \\ bad_float = bad_float + .20;
386 \\ std.debug.assert(bad_float < 1.0);386 \\ std.debug.assert(bad_float < 1.0);
387 \\})387 \\}
388 , &[_][]const u8{388 , &[_][]const u8{
389 "tmp.zig:5:29: error: invalid token: '.'",389 "tmp.zig:5:29: error: invalid token: '.'",
390 });390 });
391391
392 cases.add("invalid exponent in float literal - 1",
393 \\fn main() void {
394 \\ var bad: f128 = 0x1.0p1ab1;
395 \\}
396 , &[_][]const u8{
397 "tmp.zig:2:28: error: invalid character: 'a'",
398 });
399
400 cases.add("invalid exponent in float literal - 2",
401 \\fn main() void {
402 \\ var bad: f128 = 0x1.0p50F;
403 \\}
404 , &[_][]const u8{
405 "tmp.zig:2:29: error: invalid character: 'F'",
406 });
407
392 cases.add("invalid underscore placement in float literal - 1",408 cases.add("invalid underscore placement in float literal - 1",
393 \\fn main() void {409 \\fn main() void {
394 \\ var bad: f128 = 0._0;410 \\ var bad: f128 = 0._0;
395 \\})411 \\}
396 , &[_][]const u8{412 , &[_][]const u8{
397 "tmp.zig:2:23: error: invalid character: '_'",413 "tmp.zig:2:23: error: invalid character: '_'",
398 });414 });
...@@ -400,7 +416,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -400,7 +416,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
400 cases.add("invalid underscore placement in float literal - 2",416 cases.add("invalid underscore placement in float literal - 2",
401 \\fn main() void {417 \\fn main() void {
402 \\ var bad: f128 = 0_.0;418 \\ var bad: f128 = 0_.0;
403 \\})419 \\}
404 , &[_][]const u8{420 , &[_][]const u8{
405 "tmp.zig:2:23: error: invalid character: '.'",421 "tmp.zig:2:23: error: invalid character: '.'",
406 });422 });
...@@ -408,7 +424,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -408,7 +424,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
408 cases.add("invalid underscore placement in float literal - 3",424 cases.add("invalid underscore placement in float literal - 3",
409 \\fn main() void {425 \\fn main() void {
410 \\ var bad: f128 = 0.0_;426 \\ var bad: f128 = 0.0_;
411 \\})427 \\}
412 , &[_][]const u8{428 , &[_][]const u8{
413 "tmp.zig:2:25: error: invalid character: ';'",429 "tmp.zig:2:25: error: invalid character: ';'",
414 });430 });
...@@ -416,7 +432,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -416,7 +432,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
416 cases.add("invalid underscore placement in float literal - 4",432 cases.add("invalid underscore placement in float literal - 4",
417 \\fn main() void {433 \\fn main() void {
418 \\ var bad: f128 = 1.0e_1;434 \\ var bad: f128 = 1.0e_1;
419 \\})435 \\}
420 , &[_][]const u8{436 , &[_][]const u8{
421 "tmp.zig:2:25: error: invalid character: '_'",437 "tmp.zig:2:25: error: invalid character: '_'",
422 });438 });
...@@ -424,7 +440,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -424,7 +440,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
424 cases.add("invalid underscore placement in float literal - 5",440 cases.add("invalid underscore placement in float literal - 5",
425 \\fn main() void {441 \\fn main() void {
426 \\ var bad: f128 = 1.0e+_1;442 \\ var bad: f128 = 1.0e+_1;
427 \\})443 \\}
428 , &[_][]const u8{444 , &[_][]const u8{
429 "tmp.zig:2:26: error: invalid character: '_'",445 "tmp.zig:2:26: error: invalid character: '_'",
430 });446 });
...@@ -432,7 +448,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -432,7 +448,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
432 cases.add("invalid underscore placement in float literal - 6",448 cases.add("invalid underscore placement in float literal - 6",
433 \\fn main() void {449 \\fn main() void {
434 \\ var bad: f128 = 1.0e-_1;450 \\ var bad: f128 = 1.0e-_1;
435 \\})451 \\}
436 , &[_][]const u8{452 , &[_][]const u8{
437 "tmp.zig:2:26: error: invalid character: '_'",453 "tmp.zig:2:26: error: invalid character: '_'",
438 });454 });
...@@ -440,7 +456,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -440,7 +456,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
440 cases.add("invalid underscore placement in float literal - 7",456 cases.add("invalid underscore placement in float literal - 7",
441 \\fn main() void {457 \\fn main() void {
442 \\ var bad: f128 = 1.0e-1_;458 \\ var bad: f128 = 1.0e-1_;
443 \\})459 \\}
444 , &[_][]const u8{460 , &[_][]const u8{
445 "tmp.zig:2:28: error: invalid character: ';'",461 "tmp.zig:2:28: error: invalid character: ';'",
446 });462 });
...@@ -448,7 +464,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -448,7 +464,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
448 cases.add("invalid underscore placement in float literal - 9",464 cases.add("invalid underscore placement in float literal - 9",
449 \\fn main() void {465 \\fn main() void {
450 \\ var bad: f128 = 1__0.0e-1;466 \\ var bad: f128 = 1__0.0e-1;
451 \\})467 \\}
452 , &[_][]const u8{468 , &[_][]const u8{
453 "tmp.zig:2:23: error: invalid character: '_'",469 "tmp.zig:2:23: error: invalid character: '_'",
454 });470 });
...@@ -456,7 +472,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -456,7 +472,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
456 cases.add("invalid underscore placement in float literal - 10",472 cases.add("invalid underscore placement in float literal - 10",
457 \\fn main() void {473 \\fn main() void {
458 \\ var bad: f128 = 1.0__0e-1;474 \\ var bad: f128 = 1.0__0e-1;
459 \\})475 \\}
460 , &[_][]const u8{476 , &[_][]const u8{
461 "tmp.zig:2:25: error: invalid character: '_'",477 "tmp.zig:2:25: error: invalid character: '_'",
462 });478 });
...@@ -464,7 +480,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -464,7 +480,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
464 cases.add("invalid underscore placement in float literal - 11",480 cases.add("invalid underscore placement in float literal - 11",
465 \\fn main() void {481 \\fn main() void {
466 \\ var bad: f128 = 1.0e-1__0;482 \\ var bad: f128 = 1.0e-1__0;
467 \\})483 \\}
468 , &[_][]const u8{484 , &[_][]const u8{
469 "tmp.zig:2:28: error: invalid character: '_'",485 "tmp.zig:2:28: error: invalid character: '_'",
470 });486 });
...@@ -472,7 +488,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -472,7 +488,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
472 cases.add("invalid underscore placement in float literal - 12",488 cases.add("invalid underscore placement in float literal - 12",
473 \\fn main() void {489 \\fn main() void {
474 \\ var bad: f128 = 0_x0.0;490 \\ var bad: f128 = 0_x0.0;
475 \\})491 \\}
476 , &[_][]const u8{492 , &[_][]const u8{
477 "tmp.zig:2:23: error: invalid character: 'x'",493 "tmp.zig:2:23: error: invalid character: 'x'",
478 });494 });
...@@ -480,7 +496,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -480,7 +496,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
480 cases.add("invalid underscore placement in float literal - 13",496 cases.add("invalid underscore placement in float literal - 13",
481 \\fn main() void {497 \\fn main() void {
482 \\ var bad: f128 = 0x_0.0;498 \\ var bad: f128 = 0x_0.0;
483 \\})499 \\}
484 , &[_][]const u8{500 , &[_][]const u8{
485 "tmp.zig:2:23: error: invalid character: '_'",501 "tmp.zig:2:23: error: invalid character: '_'",
486 });502 });
...@@ -488,11 +504,43 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {...@@ -488,11 +504,43 @@ pub fn addCases(cases: *tests.CompileErrorContext) void {
488 cases.add("invalid underscore placement in float literal - 14",504 cases.add("invalid underscore placement in float literal - 14",
489 \\fn main() void {505 \\fn main() void {
490 \\ var bad: f128 = 0x0.0_p1;506 \\ var bad: f128 = 0x0.0_p1;
491 \\})507 \\}
492 , &[_][]const u8{508 , &[_][]const u8{
493 "tmp.zig:2:27: error: invalid character: 'p'",509 "tmp.zig:2:27: error: invalid character: 'p'",
494 });510 });
495511
512 cases.add("invalid underscore placement in int literal - 1",
513 \\fn main() void {
514 \\ var bad: u128 = 0010_;
515 \\}
516 , &[_][]const u8{
517 "tmp.zig:2:26: error: invalid character: ';'",
518 });
519
520 cases.add("invalid underscore placement in int literal - 2",
521 \\fn main() void {
522 \\ var bad: u128 = 0b0010_;
523 \\}
524 , &[_][]const u8{
525 "tmp.zig:2:28: error: invalid character: ';'",
526 });
527
528 cases.add("invalid underscore placement in int literal - 3",
529 \\fn main() void {
530 \\ var bad: u128 = 0o0010_;
531 \\}
532 , &[_][]const u8{
533 "tmp.zig:2:28: error: invalid character: ';'",
534 });
535
536 cases.add("invalid underscore placement in int literal - 4",
537 \\fn main() void {
538 \\ var bad: u128 = 0x0010_;
539 \\}
540 , &[_][]const u8{
541 "tmp.zig:2:28: error: invalid character: ';'",
542 });
543
496 cases.add("var args without c calling conv",544 cases.add("var args without c calling conv",
497 \\fn foo(args: ...) void {}545 \\fn foo(args: ...) void {}
498 \\comptime {546 \\comptime {