| author | |
| committer | |
| log | 10cc8cad86a39dd0f6d707c3ec30f490ba071230 |
| tree | d144fd9a64c203edd32b3fa9e5b2b739a649193d |
| parent | bef3769bb7a8d5e83ffc8359461232c9b21f6431 |
| signature | Commit is signed but in an unrecognized format. |
3 files changed, 14 insertions(+), 4 deletions(-)
lib/std/zig/parse.zig+1-1| ... | @@ -2558,7 +2558,7 @@ fn parsePtrTypeStart(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node | ... | @@ -2558,7 +2558,7 @@ fn parsePtrTypeStart(arena: *Allocator, it: *TokenIterator, tree: *Tree) !?*Node |
| 2558 | _ = try expectToken(it, tree, .RBracket); | 2558 | _ = try expectToken(it, tree, .RBracket); |
| 2559 | const node = try arena.create(Node.PrefixOp); | 2559 | const node = try arena.create(Node.PrefixOp); |
| 2560 | node.* = .{ | 2560 | node.* = .{ |
| 2561 | .op_token = ident, | 2561 | .op_token = lbracket, |
| 2562 | .op = .{ .PtrType = .{} }, | 2562 | .op = .{ .PtrType = .{} }, |
| 2563 | .rhs = undefined, // set by caller | 2563 | .rhs = undefined, // set by caller |
| 2564 | }; | 2564 | }; |
lib/std/zig/parser_test.zig+8| ... | @@ -1,3 +1,10 @@ | ... | @@ -1,3 +1,10 @@ |
| 1 | test "zig fmt: c pointer type" { | ||
| 2 | try testCanonical( | ||
| 3 | \\pub extern fn repro() [*c]const u8; | ||
| 4 | \\ | ||
| 5 | ); | ||
| 6 | } | ||
| 7 | |||
| 1 | test "zig fmt: asm expression with comptime content" { | 8 | test "zig fmt: asm expression with comptime content" { |
| 2 | try testCanonical( | 9 | try testCanonical( |
| 3 | \\comptime { | 10 | \\comptime { |
| ... | @@ -21,6 +28,7 @@ test "zig fmt: asm expression with comptime content" { | ... | @@ -21,6 +28,7 @@ test "zig fmt: asm expression with comptime content" { |
| 21 | \\ | 28 | \\ |
| 22 | ); | 29 | ); |
| 23 | } | 30 | } |
| 31 | |||
| 24 | test "zig fmt: var struct field" { | 32 | test "zig fmt: var struct field" { |
| 25 | try testCanonical( | 33 | try testCanonical( |
| 26 | \\pub const Pointer = struct { | 34 | \\pub const Pointer = struct { |
lib/std/zig/render.zig+5-3| ... | @@ -421,8 +421,10 @@ fn renderExpression( | ... | @@ -421,8 +421,10 @@ fn renderExpression( |
| 421 | const op_tok_id = tree.tokens.at(prefix_op_node.op_token).id; | 421 | const op_tok_id = tree.tokens.at(prefix_op_node.op_token).id; |
| 422 | switch (op_tok_id) { | 422 | switch (op_tok_id) { |
| 423 | .Asterisk, .AsteriskAsterisk => try stream.writeByte('*'), | 423 | .Asterisk, .AsteriskAsterisk => try stream.writeByte('*'), |
| 424 | .Identifier => try stream.write("[*c]"), | 424 | .LBracket => if (tree.tokens.at(prefix_op_node.op_token + 2).id == .Identifier) |
| 425 | .LBracket => try stream.write("[*"), | 425 | try stream.write("[*c") |
| 426 | else | ||
| 427 | try stream.write("[*"), | ||
| 426 | else => unreachable, | 428 | else => unreachable, |
| 427 | } | 429 | } |
| 428 | if (ptr_info.sentinel) |sentinel| { | 430 | if (ptr_info.sentinel) |sentinel| { |
| ... | @@ -435,7 +437,7 @@ fn renderExpression( | ... | @@ -435,7 +437,7 @@ fn renderExpression( |
| 435 | try renderExpression(allocator, stream, tree, indent, start_col, sentinel, sentinel_space); | 437 | try renderExpression(allocator, stream, tree, indent, start_col, sentinel, sentinel_space); |
| 436 | } | 438 | } |
| 437 | switch (op_tok_id) { | 439 | switch (op_tok_id) { |
| 438 | .Asterisk, .AsteriskAsterisk, .Identifier => {}, | 440 | .Asterisk, .AsteriskAsterisk => {}, |
| 439 | .LBracket => try stream.writeByte(']'), | 441 | .LBracket => try stream.writeByte(']'), |
| 440 | else => unreachable, | 442 | else => unreachable, |
| 441 | } | 443 | } |