pub(super) fn deep_verify_memo(
        &self,
        db: &<Q as QueryDb<'_>>::DynDb,
        old_memo: &Memo<Q::Value>,
        active_query: &ActiveQueryGuard<'_>,
    ) -> bool {
        let runtime = db.salsa_runtime();
        let database_key_index = active_query.database_key_index;

        log::debug!(
            "{:?}: deep_verify_memo(old_memo = {:#?})",
            database_key_index.debug(db),
            old_memo
        );

        if self.shallow_verify_memo(db, runtime, database_key_index, old_memo) {
            return true;
        }

        match &old_memo.revisions.inputs {
            QueryInputs::Untracked => {
                // Untracked inputs? Have to assume that it changed.
                return false;
            }
            QueryInputs::NoInputs => {
                // No inputs, cannot have changed.
            }
            QueryInputs::Tracked { inputs } => {
                let last_verified_at = old_memo.verified_at.load();
                for &input in inputs.iter() {
                    if db.maybe_changed_after(input, last_verified_at) {
                        return false;
                    }
                }
            }
        }

        old_memo.mark_as_verified(db.ops_database(), runtime, database_key_index);
        true
    }
/// True if the memo's value and `changed_at` time is up to date in the current
/// revision. When this returns true, it also updates the memo's `verified_at`
/// field if needed to make future calls cheaper.
///
/// Takes an [`ActiveQueryGuard`] argument because this function recursively
/// walks dependencies of `old_memo` and may even execute them to see if their
/// outputs have changed. As that could lead to cycles, it is important that the
/// query is on the stack.
True if the memo's value and `changed_at` time is up to date in the current
revision. When this returns true, it also updates the memo's `verified_at`
field if needed to make future calls cheaper.

Takes an [`ActiveQueryGuard`] argument because this function recursively
walks dependencies of `old_memo` and may even execute them to see if their
outputs have changed. As that could lead to cycles, it is important that the
query is on the stack.
True if the memo ' s value and ` changed_at ` time is up to date in the current revision . When this returns true it also updates the memo ' s ` verified_at ` field if needed to make future calls cheaper . Takes an [ ` ActiveQueryGuard ` ] argument because this function recursively walks dependencies of ` old_memo ` and may even execute them to see if their outputs have changed . As that could lead to cycles it is important that the query is on the stack .
pub(super) fn deep_verify_memo(
        &self,
        db: &<Q as QueryDb<'_>>::DynDb,
        old_memo: &Memo<Q::Value>,
        active_query: &ActiveQueryGuard<'_>,
    ) -> bool {
        let runtime = db.salsa_runtime();
        let database_key_index = active_query.database_key_index;
        log::debug!(
            "{:?}: deep_verify_memo(old_memo = {:#?})",
            database_key_index.debug(db),
            old_memo
        );
        if self.shallow_verify_memo(db, runtime, database_key_index, old_memo) {
            return true;
        }
        match &old_memo.revisions.inputs {
            QueryInputs::Untracked => {
                // Untracked inputs? Have to assume that it changed.
                return false;
            }
            QueryInputs::NoInputs => {
                // No inputs, cannot have changed.
            }
            QueryInputs::Tracked { inputs } => {
                let last_verified_at = old_memo.verified_at.load();
                for &input in inputs.iter() {
                    if db.maybe_changed_after(input, last_verified_at) {
                        return false;
                    }
                }
            }
        }
        old_memo.mark_as_verified(db.ops_database(), runtime, database_key_index);
        true
    }
pub ( super ) fn deep_verify_memo ( & self , db : & < Q as QueryDb < ' _ > > :: DynDb , old_memo : & Memo < Q :: Value > , active_query : & ActiveQueryGuard < ' _ > , ) -> bool { let runtime = db . salsa_runtime ( ) ; let database_key_index = active_query . database_key_index ; log :: debug ! ( " " database_key_index debug ( db ) old_memo ) ; if self . shallow_verify_memo ( db , runtime , database_key_index , old_memo ) { return true ; } match & old_memo . revisions . inputs { QueryInputs :: Untracked => { // Untracked inputs? Have to assume that it changed. return false ; } QueryInputs :: NoInputs => { // No inputs, cannot have changed. } QueryInputs :: Tracked { inputs } => { let last_verified_at = old_memo . verified_at . load ( ) ; for & input in inputs . iter ( ) { if db . maybe_changed_after ( input , last_verified_at ) { return false ; } } } } old_memo . mark_as_verified ( db . ops_database ( ) , runtime , database_key_index ) ; true }
True if the memo's value and `changed_at` time is up to date in the current
revision.
True if the memo ' s value and ` changed_at ` time is up to date in the current revision .
&self
db
&<Q as QueryDb<'_>>::DynDb
old_memo
&Memo<Q::Value>
active_query
&ActiveQueryGuard<'_>
&self
db
&<Q as QueryDb<'_>>::DynDb
old_memo
&Memo<Q::Value>
active_query
&ActiveQueryGuard<'_>