Skip to content

Commit 76eec1a

Browse files
committed
Adding Parentheses on consecutive equality operators
1 parent 37029a5 commit 76eec1a

File tree

4 files changed

+68
-12
lines changed

4 files changed

+68
-12
lines changed

src/parser.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,10 @@ function parse(text, _parsers, options = _parsers) {
176176
'&'
177177
]);
178178
break;
179+
case '==':
180+
case '!=':
181+
ctx.left = tryHug(ctx.left, ['==', '!=']);
182+
break;
179183
case '||':
180184
ctx.left = tryHug(ctx.left, ['&&']);
181185
ctx.right = tryHug(ctx.right, ['&&']);

tests/format/BinaryOperationHierarchy/__snapshots__/jsfmt.spec.js.snap

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1011,10 +1011,10 @@ contract Group {
10111011
veryVeryVeryLongUint256A ==
10121012
veryVeryVeryLongUint256B ^ veryVeryVeryLongUint256C;
10131013
resultBoolean =
1014-
veryVeryVeryLongUint256A == veryVeryVeryLongUint256B ==
1014+
(veryVeryVeryLongUint256A == veryVeryVeryLongUint256B) ==
10151015
veryVeryVeryLongBooleanC;
10161016
resultBoolean =
1017-
veryVeryVeryLongUint256A == veryVeryVeryLongUint256B !=
1017+
(veryVeryVeryLongUint256A == veryVeryVeryLongUint256B) !=
10181018
veryVeryVeryLongBooleanC;
10191019
resultBoolean =
10201020
veryVeryVeryLongBooleanA ==
@@ -1065,10 +1065,10 @@ contract Group {
10651065
veryVeryVeryLongUint256A !=
10661066
veryVeryVeryLongUint256B ^ veryVeryVeryLongUint256C;
10671067
resultBoolean =
1068-
veryVeryVeryLongUint256A != veryVeryVeryLongUint256B ==
1068+
(veryVeryVeryLongUint256A != veryVeryVeryLongUint256B) ==
10691069
veryVeryVeryLongBooleanC;
10701070
resultBoolean =
1071-
veryVeryVeryLongUint256A != veryVeryVeryLongUint256B !=
1071+
(veryVeryVeryLongUint256A != veryVeryVeryLongUint256B) !=
10721072
veryVeryVeryLongBooleanC;
10731073
resultBoolean =
10741074
veryVeryVeryLongBooleanA !=
@@ -2497,12 +2497,12 @@ contract Indent {
24972497
veryVeryVeryExtremelyExtremelyLongUint256B ^
24982498
veryVeryVeryExtremelyExtremelyLongUint256C;
24992499
resultBoolean =
2500-
veryVeryVeryExtremelyExtremelyLongUint256A ==
2501-
veryVeryVeryExtremelyExtremelyLongUint256B ==
2500+
(veryVeryVeryExtremelyExtremelyLongUint256A ==
2501+
veryVeryVeryExtremelyExtremelyLongUint256B) ==
25022502
veryVeryVeryExtremelyExtremelyLongBooleanC;
25032503
resultBoolean =
2504-
veryVeryVeryExtremelyExtremelyLongUint256A ==
2505-
veryVeryVeryExtremelyExtremelyLongUint256B !=
2504+
(veryVeryVeryExtremelyExtremelyLongUint256A ==
2505+
veryVeryVeryExtremelyExtremelyLongUint256B) !=
25062506
veryVeryVeryExtremelyExtremelyLongBooleanC;
25072507
resultBoolean =
25082508
veryVeryVeryExtremelyExtremelyLongBooleanA ==
@@ -2568,12 +2568,12 @@ contract Indent {
25682568
veryVeryVeryExtremelyExtremelyLongUint256B ^
25692569
veryVeryVeryExtremelyExtremelyLongUint256C;
25702570
resultBoolean =
2571-
veryVeryVeryExtremelyExtremelyLongUint256A !=
2572-
veryVeryVeryExtremelyExtremelyLongUint256B ==
2571+
(veryVeryVeryExtremelyExtremelyLongUint256A !=
2572+
veryVeryVeryExtremelyExtremelyLongUint256B) ==
25732573
veryVeryVeryExtremelyExtremelyLongBooleanC;
25742574
resultBoolean =
2575-
veryVeryVeryExtremelyExtremelyLongUint256A !=
2576-
veryVeryVeryExtremelyExtremelyLongUint256B !=
2575+
(veryVeryVeryExtremelyExtremelyLongUint256A !=
2576+
veryVeryVeryExtremelyExtremelyLongUint256B) !=
25772577
veryVeryVeryExtremelyExtremelyLongBooleanC;
25782578
resultBoolean =
25792579
veryVeryVeryExtremelyExtremelyLongBooleanA !=

tests/format/Parentheses/LogicNoParentheses.sol

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,20 @@ contract LogicNoParentheses {
1717
function andAnd(bool a, bool b, bool c) public pure returns (bool) {
1818
return a && b && c;
1919
}
20+
21+
function equalEqual(bool a, bool b, bool c) public pure returns (bool) {
22+
return a == b == c;
23+
}
24+
25+
function equalNotEqual(bool a, bool b, bool c) public pure returns (bool) {
26+
return a == b != c;
27+
}
28+
29+
function notEqualEqual(bool a, bool b, bool c) public pure returns (bool) {
30+
return a != b == c;
31+
}
32+
33+
function notEqualNotEqual(bool a, bool b, bool c) public pure returns (bool) {
34+
return a != b != c;
35+
}
2036
}

tests/format/Parentheses/__snapshots__/jsfmt.spec.js.snap

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1208,6 +1208,22 @@ contract LogicNoParentheses {
12081208
function andAnd(bool a, bool b, bool c) public pure returns (bool) {
12091209
return a && b && c;
12101210
}
1211+
1212+
function equalEqual(bool a, bool b, bool c) public pure returns (bool) {
1213+
return a == b == c;
1214+
}
1215+
1216+
function equalNotEqual(bool a, bool b, bool c) public pure returns (bool) {
1217+
return a == b != c;
1218+
}
1219+
1220+
function notEqualEqual(bool a, bool b, bool c) public pure returns (bool) {
1221+
return a != b == c;
1222+
}
1223+
1224+
function notEqualNotEqual(bool a, bool b, bool c) public pure returns (bool) {
1225+
return a != b != c;
1226+
}
12111227
}
12121228
12131229
=====================================output=====================================
@@ -1230,6 +1246,26 @@ contract LogicNoParentheses {
12301246
function andAnd(bool a, bool b, bool c) public pure returns (bool) {
12311247
return a && b && c;
12321248
}
1249+
1250+
function equalEqual(bool a, bool b, bool c) public pure returns (bool) {
1251+
return (a == b) == c;
1252+
}
1253+
1254+
function equalNotEqual(bool a, bool b, bool c) public pure returns (bool) {
1255+
return (a == b) != c;
1256+
}
1257+
1258+
function notEqualEqual(bool a, bool b, bool c) public pure returns (bool) {
1259+
return (a != b) == c;
1260+
}
1261+
1262+
function notEqualNotEqual(
1263+
bool a,
1264+
bool b,
1265+
bool c
1266+
) public pure returns (bool) {
1267+
return (a != b) != c;
1268+
}
12331269
}
12341270
12351271
================================================================================

0 commit comments

Comments
 (0)