fn_arg_names
This commit is contained in:
parent
a12a55f519
commit
c72a16b8e2
@ -158,6 +158,7 @@ pub enum DepNode<D: Clone + Debug> {
|
||||
ConstIsRvaluePromotableToStatic(D),
|
||||
IsMirAvailable(D),
|
||||
ItemAttrs(D),
|
||||
FnArgNames(D),
|
||||
}
|
||||
|
||||
impl<D: Clone + Debug> DepNode<D> {
|
||||
@ -269,6 +270,7 @@ impl<D: Clone + Debug> DepNode<D> {
|
||||
Stability(ref d) => op(d).map(Stability),
|
||||
Deprecation(ref d) => op(d).map(Deprecation),
|
||||
ItemAttrs(ref d) => op(d).map(ItemAttrs),
|
||||
FnArgNames(ref d) => op(d).map(FnArgNames),
|
||||
ItemBodyNestedBodies(ref d) => op(d).map(ItemBodyNestedBodies),
|
||||
ConstIsRvaluePromotableToStatic(ref d) => op(d).map(ConstIsRvaluePromotableToStatic),
|
||||
IsMirAvailable(ref d) => op(d).map(IsMirAvailable),
|
||||
|
@ -182,7 +182,6 @@ pub trait CrateStore {
|
||||
fn visibility(&self, def: DefId) -> ty::Visibility;
|
||||
fn visible_parent_map<'a>(&'a self) -> ::std::cell::Ref<'a, DefIdMap<DefId>>;
|
||||
fn item_generics_cloned(&self, def: DefId) -> ty::Generics;
|
||||
fn fn_arg_names(&self, did: DefId) -> Vec<ast::Name>;
|
||||
|
||||
// trait info
|
||||
fn implementations_of_trait(&self, filter: Option<DefId>) -> Vec<DefId>;
|
||||
@ -308,7 +307,6 @@ impl CrateStore for DummyCrateStore {
|
||||
}
|
||||
fn item_generics_cloned(&self, def: DefId) -> ty::Generics
|
||||
{ bug!("item_generics_cloned") }
|
||||
fn fn_arg_names(&self, did: DefId) -> Vec<ast::Name> { bug!("fn_arg_names") }
|
||||
|
||||
// trait info
|
||||
fn implementations_of_trait(&self, filter: Option<DefId>) -> Vec<DefId> { vec![] }
|
||||
|
@ -341,6 +341,12 @@ impl<'tcx> QueryDescription for queries::item_attrs<'tcx> {
|
||||
}
|
||||
}
|
||||
|
||||
impl<'tcx> QueryDescription for queries::fn_arg_names<'tcx> {
|
||||
fn describe(_: TyCtxt, _: DefId) -> String {
|
||||
bug!("fn_arg_names")
|
||||
}
|
||||
}
|
||||
|
||||
impl<'tcx> QueryDescription for queries::item_body_nested_bodies<'tcx> {
|
||||
fn describe(tcx: TyCtxt, def_id: DefId) -> String {
|
||||
format!("nested item bodies of `{}`", tcx.item_path_str(def_id))
|
||||
@ -791,6 +797,7 @@ define_maps! { <'tcx>
|
||||
[] stability: Stability(DefId) -> Option<attr::Stability>,
|
||||
[] deprecation: Deprecation(DefId) -> Option<attr::Deprecation>,
|
||||
[] item_attrs: ItemAttrs(DefId) -> Rc<[ast::Attribute]>,
|
||||
[] fn_arg_names: FnArgNames(DefId) -> Vec<ast::Name>,
|
||||
[] item_body_nested_bodies: ItemBodyNestedBodies(DefId) -> Rc<BTreeMap<hir::BodyId, hir::Body>>,
|
||||
[] const_is_rvalue_promotable_to_static: ConstIsRvaluePromotableToStatic(DefId) -> bool,
|
||||
[] is_mir_available: IsMirAvailable(DefId) -> bool,
|
||||
|
@ -114,6 +114,11 @@ provide! { <'tcx> tcx, def_id, cdata
|
||||
stability => { cdata.get_stability(def_id.index) }
|
||||
deprecation => { cdata.get_deprecation(def_id.index) }
|
||||
item_attrs => { cdata.get_item_attrs(def_id.index) }
|
||||
// FIXME(#38501) We've skipped a `read` on the `HirBody` of
|
||||
// a `fn` when encoding, so the dep-tracking wouldn't work.
|
||||
// This is only used by rustdoc anyway, which shouldn't have
|
||||
// incremental recompilation ever enabled.
|
||||
fn_arg_names => { cdata.get_fn_arg_names(def_id.index) }
|
||||
item_body_nested_bodies => {
|
||||
let map: BTreeMap<_, _> = cdata.entry(def_id.index).ast.into_iter().flat_map(|ast| {
|
||||
ast.decode(cdata).nested_bodies.decode(cdata).map(|body| (body.id(), body))
|
||||
@ -146,16 +151,6 @@ impl CrateStore for cstore::CStore {
|
||||
self.get_crate_data(def.krate).get_generics(def.index)
|
||||
}
|
||||
|
||||
fn fn_arg_names(&self, did: DefId) -> Vec<ast::Name>
|
||||
{
|
||||
// FIXME(#38501) We've skipped a `read` on the `HirBody` of
|
||||
// a `fn` when encoding, so the dep-tracking wouldn't work.
|
||||
// This is only used by rustdoc anyway, which shouldn't have
|
||||
// incremental recompilation ever enabled.
|
||||
assert!(!self.dep_graph.is_fully_enabled());
|
||||
self.get_crate_data(did.krate).get_fn_arg_names(did.index)
|
||||
}
|
||||
|
||||
fn implementations_of_trait(&self, filter: Option<DefId>) -> Vec<DefId>
|
||||
{
|
||||
if let Some(def_id) = filter {
|
||||
|
@ -1179,7 +1179,7 @@ impl<'a, 'tcx> Clean<FnDecl> for (DefId, ty::PolyFnSig<'tcx>) {
|
||||
let mut names = if cx.tcx.hir.as_local_node_id(did).is_some() {
|
||||
vec![].into_iter()
|
||||
} else {
|
||||
cx.tcx.sess.cstore.fn_arg_names(did).into_iter()
|
||||
cx.tcx.fn_arg_names(did).into_iter()
|
||||
}.peekable();
|
||||
FnDecl {
|
||||
output: Return(sig.skip_binder().output().clean(cx)),
|
||||
|
Loading…
Reference in New Issue
Block a user