Retire is_foreign_item query.
This commit is contained in:
parent
6c64870fa6
commit
37209dcddd
5 changed files with 7 additions and 20 deletions
|
@ -73,7 +73,6 @@ pub fn provide(providers: &mut Providers) {
|
||||||
fn_sig,
|
fn_sig,
|
||||||
impl_trait_ref,
|
impl_trait_ref,
|
||||||
impl_polarity,
|
impl_polarity,
|
||||||
is_foreign_item,
|
|
||||||
generator_kind,
|
generator_kind,
|
||||||
collect_mod_item_types,
|
collect_mod_item_types,
|
||||||
is_type_alias_impl_trait,
|
is_type_alias_impl_trait,
|
||||||
|
@ -1466,10 +1465,6 @@ fn compute_sig_of_foreign_fn_decl<'tcx>(
|
||||||
fty
|
fty
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_foreign_item(tcx: TyCtxt<'_>, def_id: LocalDefId) -> bool {
|
|
||||||
matches!(tcx.hir().get_by_def_id(def_id), Node::ForeignItem(..))
|
|
||||||
}
|
|
||||||
|
|
||||||
fn generator_kind(tcx: TyCtxt<'_>, def_id: LocalDefId) -> Option<hir::GeneratorKind> {
|
fn generator_kind(tcx: TyCtxt<'_>, def_id: LocalDefId) -> Option<hir::GeneratorKind> {
|
||||||
match tcx.hir().get_by_def_id(def_id) {
|
match tcx.hir().get_by_def_id(def_id) {
|
||||||
Node::Expr(&rustc_hir::Expr {
|
Node::Expr(&rustc_hir::Expr {
|
||||||
|
|
|
@ -1254,14 +1254,6 @@ impl<'a, 'tcx> CrateMetadataRef<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_foreign_item(self, id: DefIndex) -> bool {
|
|
||||||
if let Some(parent) = self.def_key(id).parent {
|
|
||||||
matches!(self.def_kind(parent), DefKind::ForeignMod)
|
|
||||||
} else {
|
|
||||||
false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn def_key(self, index: DefIndex) -> DefKey {
|
fn def_key(self, index: DefIndex) -> DefKey {
|
||||||
*self
|
*self
|
||||||
|
|
|
@ -280,7 +280,6 @@ provide! { tcx, def_id, other, cdata,
|
||||||
}
|
}
|
||||||
associated_item => { cdata.get_associated_item(def_id.index, tcx.sess) }
|
associated_item => { cdata.get_associated_item(def_id.index, tcx.sess) }
|
||||||
inherent_impls => { cdata.get_inherent_implementations_for_type(tcx, def_id.index) }
|
inherent_impls => { cdata.get_inherent_implementations_for_type(tcx, def_id.index) }
|
||||||
is_foreign_item => { cdata.is_foreign_item(def_id.index) }
|
|
||||||
item_attrs => { tcx.arena.alloc_from_iter(cdata.get_item_attrs(def_id.index, tcx.sess)) }
|
item_attrs => { tcx.arena.alloc_from_iter(cdata.get_item_attrs(def_id.index, tcx.sess)) }
|
||||||
is_mir_available => { cdata.is_item_mir_available(def_id.index) }
|
is_mir_available => { cdata.is_item_mir_available(def_id.index) }
|
||||||
is_ctfe_mir_available => { cdata.is_ctfe_mir_available(def_id.index) }
|
is_ctfe_mir_available => { cdata.is_ctfe_mir_available(def_id.index) }
|
||||||
|
|
|
@ -10,6 +10,7 @@ use crate::query::Providers;
|
||||||
use crate::ty::{EarlyBinder, ImplSubject, TyCtxt};
|
use crate::ty::{EarlyBinder, ImplSubject, TyCtxt};
|
||||||
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
|
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
|
||||||
use rustc_data_structures::sync::{par_for_each_in, DynSend, DynSync};
|
use rustc_data_structures::sync::{par_for_each_in, DynSend, DynSync};
|
||||||
|
use rustc_hir::def::DefKind;
|
||||||
use rustc_hir::def_id::{DefId, LocalDefId};
|
use rustc_hir::def_id::{DefId, LocalDefId};
|
||||||
use rustc_hir::*;
|
use rustc_hir::*;
|
||||||
use rustc_query_system::ich::StableHashingContext;
|
use rustc_query_system::ich::StableHashingContext;
|
||||||
|
@ -110,6 +111,12 @@ impl<'tcx> TyCtxt<'tcx> {
|
||||||
None => self.type_of(def_id).map_bound(ImplSubject::Inherent),
|
None => self.type_of(def_id).map_bound(ImplSubject::Inherent),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Returns `true` if this is a foreign item (i.e., linked via `extern { ... }`).
|
||||||
|
pub fn is_foreign_item(self, def_id: impl Into<DefId>) -> bool {
|
||||||
|
self.opt_parent(def_id.into())
|
||||||
|
.map_or(false, |parent| matches!(self.def_kind(parent), DefKind::ForeignMod))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn provide(providers: &mut Providers) {
|
pub fn provide(providers: &mut Providers) {
|
||||||
|
|
|
@ -726,12 +726,6 @@ rustc_queries! {
|
||||||
desc { |tcx| "checking if item is promotable: `{}`", tcx.def_path_str(key) }
|
desc { |tcx| "checking if item is promotable: `{}`", tcx.def_path_str(key) }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns `true` if this is a foreign item (i.e., linked via `extern { ... }`).
|
|
||||||
query is_foreign_item(key: DefId) -> bool {
|
|
||||||
desc { |tcx| "checking if `{}` is a foreign item", tcx.def_path_str(key) }
|
|
||||||
separate_provide_extern
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Returns `Some(generator_kind)` if the node pointed to by `def_id` is a generator.
|
/// Returns `Some(generator_kind)` if the node pointed to by `def_id` is a generator.
|
||||||
query generator_kind(def_id: DefId) -> Option<hir::GeneratorKind> {
|
query generator_kind(def_id: DefId) -> Option<hir::GeneratorKind> {
|
||||||
desc { |tcx| "looking up generator kind of `{}`", tcx.def_path_str(def_id) }
|
desc { |tcx| "looking up generator kind of `{}`", tcx.def_path_str(def_id) }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue