Update ISLE error message: unknown term in expr, not pattern. (#4775)
This was likely a copy-paste from the `ast::Pattern` case, but here it is checking a term name in `ast::Expr` and so should say "... in expression", not "... in pattern".
This commit is contained in:
6
cranelift/isle/isle/isle_examples/fail/extra_parens.isle
Normal file
6
cranelift/isle/isle/isle_examples/fail/extra_parens.isle
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
(type u32 (primitive u32))
|
||||||
|
|
||||||
|
(decl f (u32) u32)
|
||||||
|
;; Should get an error about `x` not being a term, with a suggestion that it is
|
||||||
|
;; a bound var instead.
|
||||||
|
(rule (f x) (x))
|
||||||
@@ -1782,7 +1782,19 @@ impl TermEnv {
|
|||||||
let tid = match self.term_map.get(&name) {
|
let tid = match self.term_map.get(&name) {
|
||||||
Some(t) => t,
|
Some(t) => t,
|
||||||
None => {
|
None => {
|
||||||
tyenv.report_error(pos, format!("Unknown term in pattern: '{}'", sym.0));
|
// Maybe this was actually a variable binding and the user has placed
|
||||||
|
// parens around it by mistake? (See #4775.)
|
||||||
|
if bindings.vars.iter().any(|b| b.name == name) {
|
||||||
|
tyenv.report_error(
|
||||||
|
pos,
|
||||||
|
format!(
|
||||||
|
"Unknown term in expression: '{}'. Variable binding under this name exists; try removing the parens?", sym.0));
|
||||||
|
} else {
|
||||||
|
tyenv.report_error(
|
||||||
|
pos,
|
||||||
|
format!("Unknown term in expression: '{}'", sym.0),
|
||||||
|
);
|
||||||
|
}
|
||||||
return None;
|
return None;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user