Skip to content

Commit bdb7f7c

Browse files
authored
fix(grainfmt): Correct formatting of nested constraints (#2245)
1 parent 2f16ba5 commit bdb7f7c

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

compiler/src/formatting/fmt.re

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,13 @@ let needs_grouping = (~parent, ~side: infix_side, expr) => {
258258
| (PExpConstant(PConstNumber(PConstNumberRational(_))), _)
259259
when op_precedence('/') <= precedence(parent) =>
260260
ParenGrouping
261+
| (PExpConstraint(_, _), _)
262+
when
263+
switch (parent.pexp_desc) {
264+
| PExpConstraint(_, _) => true
265+
| _ => false
266+
} =>
267+
ParenGrouping
261268
| _ => FormatterGrouping
262269
};
263270
};

compiler/test/grainfmt/constraints.expected.gr

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,8 @@ let test = test => {
88
print(i)
99
}, test: List<Number>)
1010
}
11+
12+
// Regression #2244
13+
(1: Number): Number
14+
15+
((1: Number): Number): Number

compiler/test/grainfmt/constraints.input.gr

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,8 @@ let test = test => {
88
print(i)
99
}, test: List<Number>)
1010
}
11+
12+
// Regression #2244
13+
(1: Number): Number
14+
15+
((1: Number): Number): Number

0 commit comments

Comments
 (0)