diff --git a/compiler/parse/src/expr.rs b/compiler/parse/src/expr.rs index 6a6806b37e..3b97de791a 100644 --- a/compiler/parse/src/expr.rs +++ b/compiler/parse/src/expr.rs @@ -418,10 +418,14 @@ fn parse_expr_final<'a>( ) -> ParseResult<'a, Expr<'a>, EExpr<'a>> { let right_arg = to_call(arena, expr_state.arguments, expr_state.expr); - let expr = Expr::BinOps( - expr_state.operators.into_bump_slice(), - arena.alloc(right_arg), - ); + let expr = if expr_state.operators.is_empty() { + right_arg.value + } else { + Expr::BinOps( + expr_state.operators.into_bump_slice(), + arena.alloc(right_arg), + ) + }; Ok((MadeProgress, expr, state)) } @@ -1256,20 +1260,7 @@ fn parse_expr_end<'a>( // roll back space parsing let state = expr_state.initial; - if expr_state.operators.is_empty() { - let expr = to_call(arena, expr_state.arguments, expr_state.expr); - - Ok((MadeProgress, expr.value, state)) - } else { - let right_arg = to_call(arena, expr_state.arguments, expr_state.expr); - - let expr = Expr::BinOps( - expr_state.operators.into_bump_slice(), - arena.alloc(right_arg), - ); - - Ok((MadeProgress, expr, state)) - } + parse_expr_final(expr_state, arena, state) } } } diff --git a/compiler/reporting/tests/test_reporting.rs b/compiler/reporting/tests/test_reporting.rs index f3fef89294..f86d7909d4 100644 --- a/compiler/reporting/tests/test_reporting.rs +++ b/compiler/reporting/tests/test_reporting.rs @@ -65,7 +65,6 @@ mod test_reporting { problems: can_problems, .. } = can_expr(arena, expr_src)?; - dbg!(&loc_expr); let mut subs = Subs::new(var_store.into()); for (var, name) in output.introduced_variables.name_by_var {