mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-30 07:14:46 +00:00
improve Precedence error message
This commit is contained in:
parent
d213c7316b
commit
11c8e2bfaa
8 changed files with 257 additions and 40 deletions
|
@ -582,10 +582,14 @@ pub fn canonicalize_expr<'a>(
|
|||
)
|
||||
}
|
||||
|
||||
ast::Expr::PrecedenceConflict(binop1, binop2, _expr) => {
|
||||
ast::Expr::PrecedenceConflict(whole_region, binop1, binop2, _expr) => {
|
||||
use roc_problem::can::RuntimeError::*;
|
||||
|
||||
let problem = PrecedenceProblem::BothNonAssociative(binop1.clone(), binop2.clone());
|
||||
let problem = PrecedenceProblem::BothNonAssociative(
|
||||
*whole_region,
|
||||
binop1.clone(),
|
||||
binop2.clone(),
|
||||
);
|
||||
|
||||
env.problem(Problem::PrecedenceProblem(problem.clone()));
|
||||
|
||||
|
|
|
@ -78,8 +78,8 @@ pub fn desugar_expr<'a>(arena: &'a Bump, loc_expr: &'a Located<Expr<'a>>) -> &'a
|
|||
| Nested(MalformedIdent(_))
|
||||
| MalformedClosure
|
||||
| Nested(MalformedClosure)
|
||||
| PrecedenceConflict(_, _, _)
|
||||
| Nested(PrecedenceConflict(_, _, _))
|
||||
| PrecedenceConflict(_, _, _, _)
|
||||
| Nested(PrecedenceConflict(_, _, _, _))
|
||||
| GlobalTag(_)
|
||||
| Nested(GlobalTag(_))
|
||||
| PrivateTag(_)
|
||||
|
@ -418,8 +418,9 @@ fn desugar_bin_op<'a>(arena: &'a Bump, loc_expr: &'a Located<Expr<'_>>) -> &'a L
|
|||
);
|
||||
let region = broken_expr.region;
|
||||
let value = Expr::PrecedenceConflict(
|
||||
bad_op,
|
||||
loc_expr.region,
|
||||
stack_op,
|
||||
bad_op,
|
||||
arena.alloc(broken_expr),
|
||||
);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue