diff --git a/parser_test.zig b/parser_test.zig index a951b8f7ed..0fc8972aeb 100644 --- a/parser_test.zig +++ b/parser_test.zig @@ -3922,11 +3922,15 @@ test "zig fmt: error return" { test "zig fmt: comptime block in container" { try testCanonical( - \\const Foo = struct { - \\ comptime { - \\ @compileLog("hello comptime"); - \\ } - \\}; + \\pub fn container() type { + \\ return struct { + \\ comptime { + \\ if (false) { + \\ unreachable; + \\ } + \\ } + \\ }; + \\} \\ ); } @@ -4002,9 +4006,10 @@ test "zig fmt: file ends with struct field" { test "zig fmt: comment after empty comment" { try testCanonical( + \\const x = true; // \\// - \\/// A doc comment - \\const a = b; + \\// + \\//a \\ ); } @@ -4042,10 +4047,26 @@ test "zig fmt: line comment in array" { } test "zig fmt: comment after params" { + try testTransform( + \\fn a( + \\ b: u32 + \\ // c: u32, + \\ // d: u32, + \\) void {} + \\ + , + \\fn a( + \\ b: u32, + \\ // c: u32, + \\ // d: u32, + \\) void {} + \\ + ); try testCanonical( - \\fn foo( - \\ a: i32, // comment - \\ b: i32, // comment + \\fn a( + \\ b: u32, + \\ // c: u32, + \\ // d: u32, \\) void {} \\ ); @@ -4119,7 +4140,53 @@ test "zig fmt: container doc comments" { \\//! tld 1 \\//! tld 2 \\//! tld 3 - \\const a = b; + \\ + \\// comment + \\ + \\/// A doc + \\const A = struct { + \\ //! A tld 1 + \\ //! A tld 2 + \\ //! A tld 3 + \\}; + \\ + \\/// B doc + \\const B = struct { + \\ //! B tld 1 + \\ //! B tld 2 + \\ //! B tld 3 + \\ + \\ /// B doc + \\ b: u32, + \\}; + \\ + \\/// C doc + \\const C = union(enum) { // comment + \\ //! C tld 1 + \\ //! C tld 2 + \\ //! C tld 3 + \\}; + \\ + \\/// D doc + \\const D = union(Foo) { + \\ //! D tld 1 + \\ //! D tld 2 + \\ //! D tld 3 + \\ + \\ /// D doc + \\ b: u32, + \\}; + \\ + ); + try testCanonical( + \\//! Top-level documentation. + \\ + \\/// This is A + \\pub const A = usize; + \\ + ); + try testCanonical( + \\//! Nothing here \\ ); } @@ -4296,10 +4363,18 @@ test "zig fmt: hex literals with underscore separators" { } test "zig fmt: decimal float literals with underscore separators" { - try testCanonical( - \\const x = 1_234_567.89_10_11; - \\const y = 1_234_567.89_10_11e1_213_14; - \\const z = 1_234_567; + try testTransform( + \\pub fn main() void { + \\ const a:f64=(10.0e-0+(10.0e+0))+10_00.00_00e-2+20_00.00_10e+4; + \\ const b:f64=1_0.0--10_10.0+1_0_0.0_0+1e2; + \\ std.debug.warn("a: {}, b: {} -> a+b: {}\n", .{ a, b, a + b }); + \\} + , + \\pub fn main() void { + \\ const a: f64 = (10.0e-0 + (10.0e+0)) + 10_00.00_00e-2 + 20_00.00_10e+4; + \\ const b: f64 = 1_0.0 - -10_10.0 + 1_0_0.0_0 + 1e2; + \\ std.debug.warn("a: {}, b: {} -> a+b: {}\n", .{ a, b, a + b }); + \\} \\ ); }