fn advance_at_header(&mut self, term: &'a Term) {
self.arg_c = 1;
- self.temp_c = max(term.subterms(),
- self.bindings.values()
- .filter_map(|vr| {
- match vr {
- &VarReg::Norm(RegType::Temp(reg)) |
- &VarReg::ArgAndNorm(RegType::Temp(reg), _) =>
- Some(reg),
- _ => None
- }
- })
- .max().unwrap_or(0)) + 1;
+ self.temp_c = max(term.subterms(), self.temp_c) + 1;
}
fn advance(&mut self, term: &'a Term) {
{
for term in iter {
if let TermRef::Var(_, reg_cell, var) = term {
- let mut status =
- vs.entry(var)
- .or_insert((TermStatus::New, Vec::new()));
+ let mut status = vs.entry(var)
+ .or_insert((TermStatus::New, Vec::new()));
status.1.push(reg_cell);
match status.0 {
- TermStatus::Old | TermStatus::Recurrent =>
- status.0 = TermStatus::Recurrent,
+ TermStatus::Old => status.0 = TermStatus::Recurrent,
_ => {}
};
}
}
fn heap_view(&self, var_dir: HashMap<&Var, HeapCellRef>) -> String {
- let mut result = String::new();
-
+ let mut result = String::new();
+
for (var, hcr) in var_dir {
let mut arities = Vec::new();
let viewer = HeapCellViewer::new(&self.ms.heap, hcr.heap_offset());
}
if succeeded {
- let result = Some(self.heap_view(heap_locs));
- result
+ Some(self.heap_view(heap_locs))
} else {
None
}