mirror of
https://github.com/ziglang/zig.git
synced 2026-02-20 16:24:51 +00:00
Merge pull request #3139 from hspak/zig-fmt-nested-if
zig fmt: fix nested if
This commit is contained in:
commit
2148943fff
@ -38,12 +38,14 @@ pub extern fn __letf2(a: f128, b: f128) c_int {
|
||||
|
||||
// If at least one of a and b is positive, we get the same result comparing
|
||||
// a and b as signed integers as we would with a floating-point compare.
|
||||
return if ((aInt & bInt) >= 0) if (aInt < bInt)
|
||||
LE_LESS
|
||||
else if (aInt == bInt)
|
||||
LE_EQUAL
|
||||
return if ((aInt & bInt) >= 0)
|
||||
if (aInt < bInt)
|
||||
LE_LESS
|
||||
else if (aInt == bInt)
|
||||
LE_EQUAL
|
||||
else
|
||||
LE_GREATER
|
||||
else
|
||||
LE_GREATER else
|
||||
// Otherwise, both are negative, so we need to flip the sense of the
|
||||
// comparison to get the correct result. (This assumes a twos- or ones-
|
||||
// complement integer representation; if integers are represented in a
|
||||
@ -73,7 +75,6 @@ pub extern fn __getf2(a: f128, b: f128) c_int {
|
||||
|
||||
if (aAbs > infRep or bAbs > infRep) return GE_UNORDERED;
|
||||
if ((aAbs | bAbs) == 0) return GE_EQUAL;
|
||||
// zig fmt issue here, see https://github.com/ziglang/zig/issues/2661
|
||||
return if ((aInt & bInt) >= 0)
|
||||
if (aInt < bInt)
|
||||
GE_LESS
|
||||
|
||||
@ -482,6 +482,27 @@ test "zig fmt: if-else with comment before else" {
|
||||
);
|
||||
}
|
||||
|
||||
test "zig fmt: if nested" {
|
||||
try testCanonical(
|
||||
\\pub fn foo() void {
|
||||
\\ return if ((aInt & bInt) >= 0)
|
||||
\\ if (aInt < bInt)
|
||||
\\ GE_LESS
|
||||
\\ else if (aInt == bInt)
|
||||
\\ GE_EQUAL
|
||||
\\ else
|
||||
\\ GE_GREATER
|
||||
\\ else if (aInt > bInt)
|
||||
\\ GE_LESS
|
||||
\\ else if (aInt == bInt)
|
||||
\\ GE_EQUAL
|
||||
\\ else
|
||||
\\ GE_GREATER;
|
||||
\\}
|
||||
\\
|
||||
);
|
||||
}
|
||||
|
||||
test "zig fmt: respect line breaks in if-else" {
|
||||
try testCanonical(
|
||||
\\comptime {
|
||||
|
||||
@ -276,7 +276,6 @@ fn renderTopLevelDecl(allocator: *mem.Allocator, stream: var, tree: *ast.Tree, i
|
||||
} else {
|
||||
try renderExpression(allocator, stream, tree, indent, start_col, field.type_expr.?, Space.Comma); // type,
|
||||
}
|
||||
|
||||
} else if (field.type_expr == null and field.value_expr != null) {
|
||||
try renderToken(tree, stream, field.name_token, indent, start_col, Space.Space); // name
|
||||
try renderToken(tree, stream, tree.nextToken(field.name_token), indent, start_col, Space.Space); // =
|
||||
@ -1521,9 +1520,12 @@ fn renderExpression(
|
||||
|
||||
try renderExpression(allocator, stream, tree, indent, start_col, if_node.condition, Space.None); // condition
|
||||
|
||||
const body_is_if_block = if_node.body.id == ast.Node.Id.If;
|
||||
const body_is_block = nodeIsBlock(if_node.body);
|
||||
|
||||
if (body_is_block) {
|
||||
if (body_is_if_block) {
|
||||
try renderExtraNewline(tree, stream, start_col, if_node.body);
|
||||
} else if (body_is_block) {
|
||||
const after_rparen_space = if (if_node.payload == null) Space.BlockStart else Space.Space;
|
||||
try renderToken(tree, stream, rparen, indent, start_col, after_rparen_space); // )
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user