From 47f7e6658077fb4f55c36e9c62ed5012ef8aace2 Mon Sep 17 00:00:00 2001 From: momumi <57862114+momumi@users.noreply.github.com> Date: Sun, 15 Mar 2020 23:42:29 +1000 Subject: [PATCH] add more test cases for invalid number literals --- test/compile_errors.zig | 76 +++++++++++++++++++++++++++++++++-------- 1 file changed, 62 insertions(+), 14 deletions(-) diff --git a/test/compile_errors.zig b/test/compile_errors.zig index 2b40fec106..73bf60216e 100644 --- a/test/compile_errors.zig +++ b/test/compile_errors.zig @@ -384,15 +384,31 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { \\ var bad_float :f32 = 0.0; \\ bad_float = bad_float + .20; \\ std.debug.assert(bad_float < 1.0); - \\}) + \\} , &[_][]const u8{ "tmp.zig:5:29: error: invalid token: '.'", }); + cases.add("invalid exponent in float literal - 1", + \\fn main() void { + \\ var bad: f128 = 0x1.0p1ab1; + \\} + , &[_][]const u8{ + "tmp.zig:2:28: error: invalid character: 'a'", + }); + + cases.add("invalid exponent in float literal - 2", + \\fn main() void { + \\ var bad: f128 = 0x1.0p50F; + \\} + , &[_][]const u8{ + "tmp.zig:2:29: error: invalid character: 'F'", + }); + cases.add("invalid underscore placement in float literal - 1", \\fn main() void { \\ var bad: f128 = 0._0; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:23: error: invalid character: '_'", }); @@ -400,7 +416,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 2", \\fn main() void { \\ var bad: f128 = 0_.0; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:23: error: invalid character: '.'", }); @@ -408,7 +424,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 3", \\fn main() void { \\ var bad: f128 = 0.0_; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:25: error: invalid character: ';'", }); @@ -416,7 +432,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 4", \\fn main() void { \\ var bad: f128 = 1.0e_1; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:25: error: invalid character: '_'", }); @@ -424,7 +440,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 5", \\fn main() void { \\ var bad: f128 = 1.0e+_1; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:26: error: invalid character: '_'", }); @@ -432,7 +448,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 6", \\fn main() void { \\ var bad: f128 = 1.0e-_1; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:26: error: invalid character: '_'", }); @@ -440,7 +456,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 7", \\fn main() void { \\ var bad: f128 = 1.0e-1_; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:28: error: invalid character: ';'", }); @@ -448,7 +464,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 9", \\fn main() void { \\ var bad: f128 = 1__0.0e-1; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:23: error: invalid character: '_'", }); @@ -456,7 +472,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 10", \\fn main() void { \\ var bad: f128 = 1.0__0e-1; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:25: error: invalid character: '_'", }); @@ -464,7 +480,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 11", \\fn main() void { \\ var bad: f128 = 1.0e-1__0; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:28: error: invalid character: '_'", }); @@ -472,7 +488,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 12", \\fn main() void { \\ var bad: f128 = 0_x0.0; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:23: error: invalid character: 'x'", }); @@ -480,7 +496,7 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 13", \\fn main() void { \\ var bad: f128 = 0x_0.0; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:23: error: invalid character: '_'", }); @@ -488,11 +504,43 @@ pub fn addCases(cases: *tests.CompileErrorContext) void { cases.add("invalid underscore placement in float literal - 14", \\fn main() void { \\ var bad: f128 = 0x0.0_p1; - \\}) + \\} , &[_][]const u8{ "tmp.zig:2:27: error: invalid character: 'p'", }); + cases.add("invalid underscore placement in int literal - 1", + \\fn main() void { + \\ var bad: u128 = 0010_; + \\} + , &[_][]const u8{ + "tmp.zig:2:26: error: invalid character: ';'", + }); + + cases.add("invalid underscore placement in int literal - 2", + \\fn main() void { + \\ var bad: u128 = 0b0010_; + \\} + , &[_][]const u8{ + "tmp.zig:2:28: error: invalid character: ';'", + }); + + cases.add("invalid underscore placement in int literal - 3", + \\fn main() void { + \\ var bad: u128 = 0o0010_; + \\} + , &[_][]const u8{ + "tmp.zig:2:28: error: invalid character: ';'", + }); + + cases.add("invalid underscore placement in int literal - 4", + \\fn main() void { + \\ var bad: u128 = 0x0010_; + \\} + , &[_][]const u8{ + "tmp.zig:2:28: error: invalid character: ';'", + }); + cases.add("var args without c calling conv", \\fn foo(args: ...) void {} \\comptime {