1
Fork 0

Move some test-only code to test files

This also relaxes the bounds on some structs and moves them to the impl
block instead.
This commit is contained in:
Joshua Nelson 2021-03-17 10:28:52 -04:00
parent 5c6d3bf389
commit 620ecc01a2
8 changed files with 85 additions and 78 deletions

View file

@ -9,7 +9,7 @@ use std::mem;
mod tests;
#[derive(Clone, Debug)]
pub struct TransitiveRelation<T: Eq + Hash> {
pub struct TransitiveRelation<T> {
// List of elements. This is used to map from a T to a usize.
elements: FxIndexSet<T>,
@ -49,7 +49,7 @@ struct Edge {
target: Index,
}
impl<T: Clone + Debug + Eq + Hash> TransitiveRelation<T> {
impl<T: Eq + Hash> TransitiveRelation<T> {
pub fn is_empty(&self) -> bool {
self.edges.is_empty()
}
@ -322,12 +322,6 @@ impl<T: Clone + Debug + Eq + Hash> TransitiveRelation<T> {
.collect()
}
/// A "best" parent in some sense. See `parents` and
/// `postdom_upper_bound` for more details.
pub fn postdom_parent(&self, a: &T) -> Option<&T> {
self.mutual_immediate_postdominator(self.parents(a))
}
fn with_closure<OP, R>(&self, op: OP) -> R
where
OP: FnOnce(&BitMatrix<usize, usize>) -> R,