From dd2a22a67dd1293b868ec9bec969a010bad10070 Mon Sep 17 00:00:00 2001 From: Myriad-Dreamin <35292584+Myriad-Dreamin@users.noreply.github.com> Date: Thu, 14 Nov 2024 21:21:27 +0800 Subject: [PATCH] dev: use more safe retainer for gc (#817) --- crates/tinymist-query/src/analysis/global.rs | 22 ++++++-------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/crates/tinymist-query/src/analysis/global.rs b/crates/tinymist-query/src/analysis/global.rs index 2a327147..9ebda16a 100644 --- a/crates/tinymist-query/src/analysis/global.rs +++ b/crates/tinymist-query/src/analysis/global.rs @@ -218,22 +218,12 @@ impl LocalContextGuard { break; } - self.analysis - .caches - .def_signatures - .retain(|(l, _)| lifetime - *l < 60); - self.analysis - .caches - .static_signatures - .retain(|(l, _)| lifetime - *l < 60); - self.analysis - .caches - .terms - .retain(|(l, _)| lifetime - *l < 60); - self.analysis - .caches - .signatures - .retain(|(l, _)| lifetime - *l < 60); + let retainer = |l: u64| lifetime.saturating_sub(l) < 60; + let caches = &self.analysis.caches; + caches.def_signatures.retain(|(l, _)| retainer(*l)); + caches.static_signatures.retain(|(l, _)| retainer(*l)); + caches.terms.retain(|(l, _)| retainer(*l)); + caches.signatures.retain(|(l, _)| retainer(*l)); } }