diff --git a/cli/src/repl.rs b/cli/src/repl.rs index 97c2b81955..c0d7e03917 100644 --- a/cli/src/repl.rs +++ b/cli/src/repl.rs @@ -93,10 +93,12 @@ impl Validator for InputValidator { Ok(ValidationResult::Incomplete) } else { let arena = bumpalo::Bump::new(); - match roc_parse::test_helpers::parse_expr_with(&arena, ctx.input()) { + let state = roc_parse::parser::State::new(ctx.input().trim().as_bytes()); + + match roc_parse::expr::parse_loc_expr(0, &arena, state) { // Special case some syntax errors to allow for multi-line inputs - Err(SyntaxError::Expr(EExpr::DefMissingFinalExpr(_, _))) - | Err(SyntaxError::Expr(EExpr::DefMissingFinalExpr2(_, _, _))) => { + Err((_, EExpr::DefMissingFinalExpr(_, _), _)) + | Err((_, EExpr::DefMissingFinalExpr2(_, _, _), _)) => { Ok(ValidationResult::Incomplete) } _ => Ok(ValidationResult::Valid(None)), diff --git a/compiler/parse/src/expr.rs b/compiler/parse/src/expr.rs index e572dd88df..5483d2c278 100644 --- a/compiler/parse/src/expr.rs +++ b/compiler/parse/src/expr.rs @@ -1360,7 +1360,7 @@ fn parse_expr_end<'a>( } } -fn parse_loc_expr<'a>( +pub fn parse_loc_expr<'a>( min_indent: u16, arena: &'a Bump, state: State<'a>,