From 513e326f5b87a671540ab7959d9205f0cb743491 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20K=C3=A5re=20Alsaker?= Date: Thu, 6 Feb 2020 12:16:51 +0100 Subject: [PATCH] Add a `hir_krate` query --- src/librustc/hir/mod.rs | 1 + src/librustc/query/mod.rs | 6 ++++++ src/librustc/ty/query/mod.rs | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/librustc/hir/mod.rs b/src/librustc/hir/mod.rs index 4a4d9cb8145..3a53c0cb282 100644 --- a/src/librustc/hir/mod.rs +++ b/src/librustc/hir/mod.rs @@ -41,5 +41,6 @@ impl<'tcx> TyCtxt<'tcx> { } pub fn provide(providers: &mut Providers<'_>) { + providers.hir_crate = |tcx, _| tcx.hir_map.forest.untracked_krate(); map::provide(providers); } diff --git a/src/librustc/query/mod.rs b/src/librustc/query/mod.rs index 37d5e23535b..f0ea9ee7b19 100644 --- a/src/librustc/query/mod.rs +++ b/src/librustc/query/mod.rs @@ -43,6 +43,12 @@ rustc_queries! { } Other { + query hir_crate(key: CrateNum) -> &'tcx Crate<'tcx> { + eval_always + no_hash + desc { "get the crate HIR" } + } + /// Records the type of every item. query type_of(key: DefId) -> Ty<'tcx> { cache_on_disk_if { key.is_local() } diff --git a/src/librustc/ty/query/mod.rs b/src/librustc/ty/query/mod.rs index 973cd810146..e7b95af103c 100644 --- a/src/librustc/ty/query/mod.rs +++ b/src/librustc/ty/query/mod.rs @@ -45,7 +45,7 @@ use rustc_data_structures::sync::Lrc; use rustc_hir as hir; use rustc_hir::def::DefKind; use rustc_hir::def_id::{CrateNum, DefId, DefIdMap, DefIdSet, DefIndex}; -use rustc_hir::{HirIdSet, ItemLocalId, TraitCandidate}; +use rustc_hir::{Crate, HirIdSet, ItemLocalId, TraitCandidate}; use rustc_index::vec::IndexVec; use rustc_target::spec::PanicStrategy;