Skip to content

Commit fac35c7

Browse files
committed
small refactor to keep code smaller
1 parent 81e8684 commit fac35c7

3 files changed

Lines changed: 6 additions & 9 deletions

File tree

src/slang-nodes/MemberAccessExpression.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ function isEndOfChain(
1818
node: ChainableExpression,
1919
path: AstPath<Expression['variant']>
2020
): boolean {
21-
for (let i = 1, current = node; ; i++) {
22-
const parent = path.getNode(i)!;
21+
for (let i = 1, current = node, parent; ; i++, current = parent) {
22+
parent = path.getNode(i)!;
2323
if (!isChainableExpression(parent)) break;
2424

2525
switch (parent.kind) {
@@ -40,7 +40,6 @@ function isEndOfChain(
4040
if (current !== parent.operand) return true;
4141
break;
4242
}
43-
current = parent;
4443
}
4544
return true;
4645
}

src/slang-printers/print-binary-operation.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,13 +44,12 @@ export const binaryIndentRulesBuilder =
4444
(shouldIndent: (node: BinaryOperation) => boolean) =>
4545
(node: BinaryOperation, path: AstPath<StrictAstNode>) =>
4646
(document: Doc): Doc => {
47-
for (let i = 1, current = node; ; i++) {
48-
const parent = path.getNode(i)!;
47+
for (let i = 1, current = node, parent; ; i++, current = parent) {
48+
parent = path.getNode(i)!;
4949
if (shouldNotIndent(parent, path, i)) break;
5050
if (!isBinaryOperation(parent)) return indent(document);
5151
if (shouldIndent(parent)) return indent(document);
5252
if (current === parent.rightOperand) break;
53-
current = parent;
5453
}
5554
return document;
5655
};

src/slang-printers/print-logical-operation.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ const logicalGroupRulesBuilder = binaryGroupRulesBuilder(() => false);
1717
const logicalIndentRulesBuilder =
1818
(node: BinaryOperation, path: AstPath<StrictAstNode>) =>
1919
(document: Doc): Doc => {
20-
for (let i = 1, current = node; ; i++) {
21-
const parent = path.getNode(i)!;
20+
for (let i = 1, current = node, parent; ; i++, current = parent) {
21+
parent = path.getNode(i)!;
2222
if (shouldNotIndent(parent, path, i)) break;
2323
if (
2424
parent.kind === NonterminalKind.ConditionalExpression &&
@@ -27,7 +27,6 @@ const logicalIndentRulesBuilder =
2727
break;
2828
if (!isBinaryOperation(parent)) return indent(document);
2929
if (current === parent.rightOperand) break;
30-
current = parent;
3130
}
3231
return document;
3332
};

0 commit comments

Comments
 (0)