| ... | @@ -5962,6 +5962,151 @@ test "zig fmt: pointer type syntax to index" { | ... | @@ -5962,6 +5962,151 @@ test "zig fmt: pointer type syntax to index" { |
| 5962 | ); | 5962 | ); |
| 5963 | } | 5963 | } |
| 5964 | | 5964 | |
| | 5965 | test "zig fmt: binop indentation in if statement" { |
| | 5966 | try testCanonical( |
| | 5967 | \\test { |
| | 5968 | \\ if (first_param_type.isGenericPoison() or |
| | 5969 | \\ (first_param_type.zigTypeTag(zcu) == .pointer and |
| | 5970 | \\ (first_param_type.ptrSize(zcu) == .One or |
| | 5971 | \\ first_param_type.ptrSize(zcu) == .C) and |
| | 5972 | \\ first_param_type.childType(zcu).eql(concrete_ty, zcu))) |
| | 5973 | \\ { |
| | 5974 | \\ f(x); |
| | 5975 | \\ } |
| | 5976 | \\} |
| | 5977 | \\ |
| | 5978 | ); |
| | 5979 | } |
| | 5980 | |
| | 5981 | test "zig fmt: test indentation after equals sign" { |
| | 5982 | try testCanonical( |
| | 5983 | \\test { |
| | 5984 | \\ const foo = |
| | 5985 | \\ if (1 == 2) |
| | 5986 | \\ 1 |
| | 5987 | \\ else if (3 > 4) |
| | 5988 | \\ 2 |
| | 5989 | \\ else |
| | 5990 | \\ 0; |
| | 5991 | \\ |
| | 5992 | \\ const foo, const bar = |
| | 5993 | \\ if (1 == 2) |
| | 5994 | \\ .{ 0, 0 } |
| | 5995 | \\ else if (3 > 4) |
| | 5996 | \\ .{ 1, 1 } |
| | 5997 | \\ else |
| | 5998 | \\ .{ 2, 2 }; |
| | 5999 | \\ |
| | 6000 | \\ while (foo) if (bar) |
| | 6001 | \\ f(x); |
| | 6002 | \\ |
| | 6003 | \\ foobar = |
| | 6004 | \\ if (true) |
| | 6005 | \\ 1 |
| | 6006 | \\ else |
| | 6007 | \\ 0; |
| | 6008 | \\ |
| | 6009 | \\ const foo = if (1 == 2) |
| | 6010 | \\ 1 |
| | 6011 | \\ else if (3 > 4) |
| | 6012 | \\ 2 |
| | 6013 | \\ else |
| | 6014 | \\ 0; |
| | 6015 | \\ |
| | 6016 | \\ const foo, const bar = if (1 == 2) |
| | 6017 | \\ .{ 0, 0 } |
| | 6018 | \\ else if (3 > 4) |
| | 6019 | \\ .{ 1, 1 } |
| | 6020 | \\ else |
| | 6021 | \\ .{ 2, 2 }; |
| | 6022 | \\ |
| | 6023 | \\ foobar = if (true) |
| | 6024 | \\ 1 |
| | 6025 | \\ else |
| | 6026 | \\ 0; |
| | 6027 | \\ |
| | 6028 | \\ const is_alphanum = |
| | 6029 | \\ (ch >= 'a' and ch <= 'z') or |
| | 6030 | \\ (ch >= 'A' and ch <= 'Z') or |
| | 6031 | \\ (ch >= '0' and ch <= '9'); |
| | 6032 | \\ |
| | 6033 | \\ const bar = 100 + calculate( |
| | 6034 | \\ 200, |
| | 6035 | \\ 300, |
| | 6036 | \\ ); |
| | 6037 | \\ |
| | 6038 | \\ const gcc_pragma = std.meta.stringToEnum(Directive, pp.expandedSlice(directive_tok)) orelse |
| | 6039 | \\ return pp.comp.addDiagnostic(.{ |
| | 6040 | \\ .tag = .unknown_gcc_pragma, |
| | 6041 | \\ .loc = directive_tok.loc, |
| | 6042 | \\ }, pp.expansionSlice(start_idx + 1)); |
| | 6043 | \\ |
| | 6044 | \\ const vec4s = |
| | 6045 | \\ [_][4]i32{ |
| | 6046 | \\ [_]i32{ 0, 1, 0, 0 }, |
| | 6047 | \\ [_]i32{ 0, -1, 0, 0 }, |
| | 6048 | \\ [_]i32{ 2, 1, 2, 0 }, |
| | 6049 | \\ }; |
| | 6050 | \\} |
| | 6051 | \\ |
| | 6052 | ); |
| | 6053 | } |
| | 6054 | |
| | 6055 | test "zig fmt: test indentation of if expressions" { |
| | 6056 | try testCanonical( |
| | 6057 | \\test { |
| | 6058 | \\ const foo = 1 + |
| | 6059 | \\ if (1 == 2) |
| | 6060 | \\ 2 |
| | 6061 | \\ else |
| | 6062 | \\ 0; |
| | 6063 | \\ |
| | 6064 | \\ const foo = 1 + if (1 == 2) |
| | 6065 | \\ 2 |
| | 6066 | \\ else |
| | 6067 | \\ 0; |
| | 6068 | \\ |
| | 6069 | \\ errval catch |e| |
| | 6070 | \\ if (e == error.Meow) |
| | 6071 | \\ return 0x1F408 |
| | 6072 | \\ else |
| | 6073 | \\ unreachable; |
| | 6074 | \\ |
| | 6075 | \\ errval catch |e| if (e == error.Meow) |
| | 6076 | \\ return 0x1F408 |
| | 6077 | \\ else |
| | 6078 | \\ unreachable; |
| | 6079 | \\ |
| | 6080 | \\ return if (1 == 2) |
| | 6081 | \\ 1 |
| | 6082 | \\ else if (3 > 4) |
| | 6083 | \\ 2 |
| | 6084 | \\ else |
| | 6085 | \\ 0; |
| | 6086 | \\} |
| | 6087 | \\ |
| | 6088 | ); |
| | 6089 | } |
| | 6090 | |
| | 6091 | test "zig fmt: indentation of comments within catch, else, orelse" { |
| | 6092 | try testCanonical( |
| | 6093 | \\comptime { |
| | 6094 | \\ _ = foo() catch |
| | 6095 | \\ // |
| | 6096 | \\ bar(); |
| | 6097 | \\ |
| | 6098 | \\ _ = if (foo) bar() else |
| | 6099 | \\ // |
| | 6100 | \\ qux(); |
| | 6101 | \\ |
| | 6102 | \\ _ = foo() orelse |
| | 6103 | \\ // |
| | 6104 | \\ qux(); |
| | 6105 | \\} |
| | 6106 | \\ |
| | 6107 | ); |
| | 6108 | } |
| | 6109 | |
| 5965 | test "recovery: top level" { | 6110 | test "recovery: top level" { |
| 5966 | try testError( | 6111 | try testError( |
| 5967 | \\test "" {inline} | 6112 | \\test "" {inline} |