fn safe_to_free(&mut self, pending: &Pending, relations: &ActiveRelations) -> bool {
        log::trace!("safe_to_free");
        // TODO(drop) ensure transitive_parents drop order.
        // Or panic on Arena::new in a destructor.
        if self.no_grey_arenas(pending) {
            log::trace!("no_grey_arenas: true");
            if !self.waiting_transitive {
                self.waiting_transitive_parents = relations
                    .transitive_parents
                    .iter()
                    .map(|ts| (*ts, unsafe { &*ts.pending.get() }.epoch + 1))
                    .collect();
                self.waiting_transitive = true;

                false
            } else {
                self.waiting_transitive_parents
                    .iter()
                    .all(|(ts, e)| *e < unsafe { &*ts.pending.get() }.epoch)
            }
        } else {
            false
        }
    }
/// Ensures no ptrs exist in to the `TypeState`'s condemned arenas.
Ensures no ptrs exist in to the `TypeState`'s condemned arenas.
Ensures no ptrs exist in to the ` TypeState ` ' s condemned arenas .
fn safe_to_free(&mut self, pending: &Pending, relations: &ActiveRelations) -> bool {
        log::trace!("safe_to_free");
        // TODO(drop) ensure transitive_parents drop order.
        // Or panic on Arena::new in a destructor.
        if self.no_grey_arenas(pending) {
            log::trace!("no_grey_arenas: true");
            if !self.waiting_transitive {
                self.waiting_transitive_parents = relations
                    .transitive_parents
                    .iter()
                    .map(|ts| (*ts, unsafe { &*ts.pending.get() }.epoch + 1))
                    .collect();
                self.waiting_transitive = true;
                false
            } else {
                self.waiting_transitive_parents
                    .iter()
                    .all(|(ts, e)| *e < unsafe { &*ts.pending.get() }.epoch)
            }
        } else {
            false
        }
    }
fn safe_to_free ( & mut self , pending : & Pending , relations : & ActiveRelations ) -> bool { log :: trace ! ( " " ) ; // TODO(drop) ensure transitive_parents drop order. // Or panic on Arena::new in a destructor. if self . no_grey_arenas ( pending ) { log :: trace ! ( " " ) ; if ! self . waiting_transitive { self . waiting_transitive_parents = relations . transitive_parents . iter ( ) . map ( | ts | ( * ts , unsafe { & * ts . pending . get ( ) } . epoch + 1 ) ) . collect ( ) ; self . waiting_transitive = true ; false } else { self . waiting_transitive_parents . iter ( ) . all ( | ( ts , e ) | * e < unsafe { & * ts . pending . get ( ) } . epoch ) } } else { false } }
Ensures no ptrs exist in to the `TypeState`'s condemned arenas.
Ensures no ptrs exist in to the ` TypeState ` ' s condemned arenas .
&mut self
pending
&Pending
relations
&ActiveRelations
&mut self
pending
&Pending
relations
&ActiveRelations