Skip to content

Commit

Permalink
feat: Handle in needs_grouping instead
Browse files Browse the repository at this point in the history
  • Loading branch information
spotandjake committed Feb 13, 2025
1 parent 2efb7f3 commit 6c271eb
Showing 1 changed file with 11 additions and 12 deletions.
23 changes: 11 additions & 12 deletions compiler/src/formatting/fmt.re
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,13 @@ let needs_grouping = (~parent, ~side: infix_side, expr) => {
| (PExpConstant(PConstNumber(PConstNumberRational(_))), _)
when op_precedence('/') <= precedence(parent) =>
ParenGrouping
| (PExpConstraint(_, _), _)
when
switch (parent.pexp_desc) {
| PExpConstraint(_, _) => true
| _ => false
} =>
ParenGrouping
| _ => FormatterGrouping
};
};
Expand Down Expand Up @@ -2516,21 +2523,13 @@ let print_expression = (fmt, ~infix_wrap=d => group(indent(d)), expr) => {
)
| PExpConstraint(inner_expr, typ) =>
(
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) =>
switch (needs_grouping(~parent=expr, ~side=Left, inner_expr)) {
| 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

0 comments on commit 6c271eb

Please sign in to comment.