ex_clause.answer_time.increment();
// Ok, we've applied the answer to this Strand.
- return Ok(());
+ Ok(())
}
// This answer led nowhere. Give up for now, but of course
// Now we want to propogate back to the up with `QuantumExceeded`
self.unwind_stack();
- return Err(RootSearchFail::QuantumExceeded);
+ Err(RootSearchFail::QuantumExceeded)
}
}
}
strand.ex_clause.ambiguous = true;
// Strand is ambigious.
- return Ok(());
+ Ok(())
}
- };
+ }
}
/// This is called when the selected subgoal for a strand has floundered.
Ok(_) => {
debug!(?strand, "merged answer into current strand");
canonical_strand =
- Forest::canonicalize_strand_from(&self.context, &mut infer, &strand);
+ Forest::canonicalize_strand_from(self.context, &mut infer, &strand);
self.stack.top().active_strand = Some(canonical_strand);
return Ok(());
}
// Now we yield with `QuantumExceeded`
self.unwind_stack();
- return Err(RootSearchFail::QuantumExceeded);
+ Err(RootSearchFail::QuantumExceeded)
} else {
debug!("table part of a cycle");
self.forest.tables[table].enqueue_strand(active_strand);
// The strand isn't active, but the table is, so just continue
- return Ok(());
+ Ok(())
}
}
.collect();
let subst = Canonical {
- binders: binders.clone(),
+ binders,
value: AnswerSubst {
subst,
constraints: Constraints::from_iter(self.context.program().interner(), constraints),