Flatten and patterns in ISLE (#4915)

Flatten nested and patterns into a single vector in the ISLE front-end.
This commit is contained in:
Trevor Elliott
2022-09-15 10:40:37 -07:00
committed by GitHub
parent 2db7d7a8e0
commit 9d99eff6f9

View File

@@ -1514,7 +1514,12 @@ impl TermEnv {
/* is_root = */ false,
));
expected_ty = expected_ty.or(Some(ty));
children.push(subpat);
// Normalize nested `And` nodes to a single vector of conjuncts.
match subpat {
Pattern::And(_, subpat_children) => children.extend(subpat_children),
_ => children.push(subpat),
}
}
if expected_ty.is_none() {
tyenv.report_error(pos, "No type for (and ...) form.".to_string());