Browse Source

Flatten `and` patterns in ISLE (#4915)

Flatten nested and patterns into a single vector in the ISLE front-end.
pull/4932/head
Trevor Elliott 2 years ago
committed by GitHub
parent
commit
9d99eff6f9
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      cranelift/isle/isle/src/sema.rs

7
cranelift/isle/isle/src/sema.rs

@ -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());

Loading…
Cancel
Save