pub fn query_ensure<'tcx, Cache>(
    tcx: TyCtxt<'tcx>,
    execute_query: fn(_: TyCtxt<'tcx>, _: Span, _: Cache::Key, _: QueryMode) -> Option<Cache::Value>,
    query_cache: &Cache,
    key: Cache::Key,
    check_cache: bool
)where
    Cache: QueryCache,