Skip to content

Commit

Permalink
fix(grainfmt): Correct formatting of nested constraints
Browse files Browse the repository at this point in the history
  • Loading branch information
spotandjake committed Feb 13, 2025
1 parent e8a3ed2 commit 2efb7f3
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 4 deletions.
16 changes: 12 additions & 4 deletions compiler/src/formatting/fmt.re
Original file line number Diff line number Diff line change
Expand Up @@ -2516,13 +2516,21 @@ let print_expression = (fmt, ~infix_wrap=d => group(indent(d)), expr) => {
)
| PExpConstraint(inner_expr, typ) =>
(
switch (needs_grouping(~parent=expr, ~side=Left, inner_expr)) {
| ParenGrouping =>
switch (
inner_expr.pexp_desc,
needs_grouping(~parent=expr, ~side=Left, inner_expr),
) {
| (PExpConstraint(_, _), typ) =>
parens(
indent(break ++ fmt.print_expression(fmt, inner_expr)) ++ break,
)
| (_, ParenGrouping) =>
parens(
indent(break ++ fmt.print_expression(fmt, inner_expr)) ++ break,
)
| FormatterGrouping => group(fmt.print_expression(fmt, inner_expr))
| None => fmt.print_expression(fmt, inner_expr)
| (_, FormatterGrouping) =>
group(fmt.print_expression(fmt, inner_expr))
| (_, None) => fmt.print_expression(fmt, inner_expr)
}
)
++ string(":")
Expand Down
3 changes: 3 additions & 0 deletions compiler/test/grainfmt/constraints.expected.gr
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ let test = test => {
print(i)
}, test: List<Number>)
}

// Regression #2244
(1: Number): Number
3 changes: 3 additions & 0 deletions compiler/test/grainfmt/constraints.input.gr
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ let test = test => {
print(i)
}, test: List<Number>)
}

// Regression #2244
(1: Number): Number

0 comments on commit 2efb7f3

Please sign in to comment.