From 1b30977a1c97aa9e204670f98d777047421102a6 Mon Sep 17 00:00:00 2001 From: Michael Goulet Date: Sat, 23 Nov 2024 15:39:45 +0000 Subject: [PATCH] Cache better --- compiler/rustc_middle/src/query/mod.rs | 2 ++ compiler/rustc_ty_utils/src/instance.rs | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/rustc_middle/src/query/mod.rs b/compiler/rustc_middle/src/query/mod.rs index 0e99ceb133c9..0e5b5b2363c3 100644 --- a/compiler/rustc_middle/src/query/mod.rs +++ b/compiler/rustc_middle/src/query/mod.rs @@ -2313,6 +2313,8 @@ rustc_queries! { key: (LocalDefId, DefId) ) -> Result<(), ErrorGuaranteed> { desc { |tcx| "checking assoc item `{}` is compatible with trait definition", tcx.def_path_str(key.0) } + cache_on_disk_if { true } + ensure_forwards_result_if_red } query deduced_param_attrs(def_id: DefId) -> &'tcx [ty::DeducedParamAttrs] { diff --git a/compiler/rustc_ty_utils/src/instance.rs b/compiler/rustc_ty_utils/src/instance.rs index 6608996f325a..61b0ab2bba41 100644 --- a/compiler/rustc_ty_utils/src/instance.rs +++ b/compiler/rustc_ty_utils/src/instance.rs @@ -217,7 +217,7 @@ fn resolve_associated_item<'tcx>( if trait_item_id != leaf_def.item.def_id && let Some(leaf_def_item) = leaf_def.item.def_id.as_local() { - tcx.compare_impl_item((leaf_def_item, trait_item_id))?; + tcx.ensure().compare_impl_item((leaf_def_item, trait_item_id))?; } Some(ty::Instance::new(leaf_def.item.def_id, args))