allow maps to be made private or public
Didn't get around to removing all public access.
This commit is contained in:
parent
d26a7a48fe
commit
1ac7eb8649
@ -274,11 +274,11 @@ fn describe(_: TyCtxt, _: DefId) -> String {
|
||||
macro_rules! define_maps {
|
||||
(<$tcx:tt>
|
||||
$($(#[$attr:meta])*
|
||||
pub $name:ident: $node:ident($K:ty) -> $V:ty),*) => {
|
||||
[$($pub:tt)*] $name:ident: $node:ident($K:ty) -> $V:ty),*) => {
|
||||
pub struct Maps<$tcx> {
|
||||
providers: IndexVec<CrateNum, Providers<$tcx>>,
|
||||
query_stack: RefCell<Vec<(Span, Query<$tcx>)>>,
|
||||
$($(#[$attr])* pub $name: RefCell<DepTrackingMap<queries::$name<$tcx>>>),*
|
||||
$($(#[$attr])* $($pub)* $name: RefCell<DepTrackingMap<queries::$name<$tcx>>>),*
|
||||
}
|
||||
|
||||
impl<$tcx> Maps<$tcx> {
|
||||
@ -441,12 +441,12 @@ fn default() -> Self {
|
||||
// the driver creates (using several `rustc_*` crates).
|
||||
define_maps! { <'tcx>
|
||||
/// Records the type of every item.
|
||||
pub type_of: ItemSignature(DefId) -> Ty<'tcx>,
|
||||
[pub] type_of: ItemSignature(DefId) -> Ty<'tcx>,
|
||||
|
||||
/// Maps from the def-id of an item (trait/struct/enum/fn) to its
|
||||
/// associated generics and predicates.
|
||||
pub generics_of: ItemSignature(DefId) -> &'tcx ty::Generics,
|
||||
pub predicates_of: ItemSignature(DefId) -> ty::GenericPredicates<'tcx>,
|
||||
[] generics_of: ItemSignature(DefId) -> &'tcx ty::Generics,
|
||||
[] predicates_of: ItemSignature(DefId) -> ty::GenericPredicates<'tcx>,
|
||||
|
||||
/// Maps from the def-id of a trait to the list of
|
||||
/// super-predicates. This is a subset of the full list of
|
||||
@ -454,39 +454,39 @@ fn default() -> Self {
|
||||
/// evaluate them even during type conversion, often before the
|
||||
/// full predicates are available (note that supertraits have
|
||||
/// additional acyclicity requirements).
|
||||
pub super_predicates_of: ItemSignature(DefId) -> ty::GenericPredicates<'tcx>,
|
||||
[] super_predicates_of: ItemSignature(DefId) -> ty::GenericPredicates<'tcx>,
|
||||
|
||||
/// To avoid cycles within the predicates of a single item we compute
|
||||
/// per-type-parameter predicates for resolving `T::AssocTy`.
|
||||
pub type_param_predicates: TypeParamPredicates((DefId, DefId))
|
||||
[] type_param_predicates: TypeParamPredicates((DefId, DefId))
|
||||
-> ty::GenericPredicates<'tcx>,
|
||||
|
||||
pub trait_def: ItemSignature(DefId) -> &'tcx ty::TraitDef,
|
||||
pub adt_def: ItemSignature(DefId) -> &'tcx ty::AdtDef,
|
||||
pub adt_destructor: AdtDestructor(DefId) -> Option<ty::Destructor>,
|
||||
pub adt_sized_constraint: SizedConstraint(DefId) -> &'tcx [Ty<'tcx>],
|
||||
pub adt_dtorck_constraint: DtorckConstraint(DefId) -> ty::DtorckConstraint<'tcx>,
|
||||
[] trait_def: ItemSignature(DefId) -> &'tcx ty::TraitDef,
|
||||
[] adt_def: ItemSignature(DefId) -> &'tcx ty::AdtDef,
|
||||
[] adt_destructor: AdtDestructor(DefId) -> Option<ty::Destructor>,
|
||||
[] adt_sized_constraint: SizedConstraint(DefId) -> &'tcx [Ty<'tcx>],
|
||||
[] adt_dtorck_constraint: DtorckConstraint(DefId) -> ty::DtorckConstraint<'tcx>,
|
||||
|
||||
/// True if this is a foreign item (i.e., linked via `extern { ... }`).
|
||||
pub is_foreign_item: IsForeignItem(DefId) -> bool,
|
||||
[] is_foreign_item: IsForeignItem(DefId) -> bool,
|
||||
|
||||
/// Maps from def-id of a type or region parameter to its
|
||||
/// (inferred) variance.
|
||||
pub variances_of: ItemSignature(DefId) -> Rc<Vec<ty::Variance>>,
|
||||
[pub] variances_of: ItemSignature(DefId) -> Rc<Vec<ty::Variance>>,
|
||||
|
||||
/// Maps from an impl/trait def-id to a list of the def-ids of its items
|
||||
pub associated_item_def_ids: AssociatedItemDefIds(DefId) -> Rc<Vec<DefId>>,
|
||||
[] associated_item_def_ids: AssociatedItemDefIds(DefId) -> Rc<Vec<DefId>>,
|
||||
|
||||
/// Maps from a trait item to the trait item "descriptor"
|
||||
pub associated_item: AssociatedItems(DefId) -> ty::AssociatedItem,
|
||||
[] associated_item: AssociatedItems(DefId) -> ty::AssociatedItem,
|
||||
|
||||
pub impl_trait_ref: ItemSignature(DefId) -> Option<ty::TraitRef<'tcx>>,
|
||||
pub impl_polarity: ItemSignature(DefId) -> hir::ImplPolarity,
|
||||
[pub] impl_trait_ref: ItemSignature(DefId) -> Option<ty::TraitRef<'tcx>>,
|
||||
[] impl_polarity: ItemSignature(DefId) -> hir::ImplPolarity,
|
||||
|
||||
/// Maps a DefId of a type to a list of its inherent impls.
|
||||
/// Contains implementations of methods that are inherent to a type.
|
||||
/// Methods in these implementations don't need to be exported.
|
||||
pub inherent_impls: InherentImpls(DefId) -> Rc<Vec<DefId>>,
|
||||
[] inherent_impls: InherentImpls(DefId) -> Rc<Vec<DefId>>,
|
||||
|
||||
/// Maps from the def-id of a function/method or const/static
|
||||
/// to its MIR. Mutation is done at an item granularity to
|
||||
@ -495,59 +495,59 @@ fn default() -> Self {
|
||||
///
|
||||
/// Note that cross-crate MIR appears to be always borrowed
|
||||
/// (in the `RefCell` sense) to prevent accidental mutation.
|
||||
pub mir: Mir(DefId) -> &'tcx RefCell<mir::Mir<'tcx>>,
|
||||
[pub] mir: Mir(DefId) -> &'tcx RefCell<mir::Mir<'tcx>>,
|
||||
|
||||
/// Maps DefId's that have an associated Mir to the result
|
||||
/// of the MIR qualify_consts pass. The actual meaning of
|
||||
/// the value isn't known except to the pass itself.
|
||||
pub mir_const_qualif: Mir(DefId) -> u8,
|
||||
[] mir_const_qualif: Mir(DefId) -> u8,
|
||||
|
||||
/// Records the type of each closure. The def ID is the ID of the
|
||||
/// expression defining the closure.
|
||||
pub closure_kind: ItemSignature(DefId) -> ty::ClosureKind,
|
||||
[] closure_kind: ItemSignature(DefId) -> ty::ClosureKind,
|
||||
|
||||
/// Records the type of each closure. The def ID is the ID of the
|
||||
/// expression defining the closure.
|
||||
pub closure_type: ItemSignature(DefId) -> ty::PolyFnSig<'tcx>,
|
||||
[] closure_type: ItemSignature(DefId) -> ty::PolyFnSig<'tcx>,
|
||||
|
||||
/// Caches CoerceUnsized kinds for impls on custom types.
|
||||
pub coerce_unsized_info: ItemSignature(DefId)
|
||||
[] coerce_unsized_info: ItemSignature(DefId)
|
||||
-> ty::adjustment::CoerceUnsizedInfo,
|
||||
|
||||
pub typeck_item_bodies: typeck_item_bodies_dep_node(CrateNum) -> CompileResult,
|
||||
[] typeck_item_bodies: typeck_item_bodies_dep_node(CrateNum) -> CompileResult,
|
||||
|
||||
pub typeck_tables_of: TypeckTables(DefId) -> &'tcx ty::TypeckTables<'tcx>,
|
||||
[] typeck_tables_of: TypeckTables(DefId) -> &'tcx ty::TypeckTables<'tcx>,
|
||||
|
||||
pub coherent_trait: coherent_trait_dep_node((CrateNum, DefId)) -> (),
|
||||
[] coherent_trait: coherent_trait_dep_node((CrateNum, DefId)) -> (),
|
||||
|
||||
pub borrowck: BorrowCheck(DefId) -> (),
|
||||
[] borrowck: BorrowCheck(DefId) -> (),
|
||||
|
||||
/// Gets a complete map from all types to their inherent impls.
|
||||
/// Not meant to be used directly outside of coherence.
|
||||
/// (Defined only for LOCAL_CRATE)
|
||||
pub crate_inherent_impls: crate_inherent_impls_dep_node(CrateNum) -> CrateInherentImpls,
|
||||
[] crate_inherent_impls: crate_inherent_impls_dep_node(CrateNum) -> CrateInherentImpls,
|
||||
|
||||
/// Checks all types in the krate for overlap in their inherent impls. Reports errors.
|
||||
/// Not meant to be used directly outside of coherence.
|
||||
/// (Defined only for LOCAL_CRATE)
|
||||
pub crate_inherent_impls_overlap_check: crate_inherent_impls_dep_node(CrateNum) -> (),
|
||||
[] crate_inherent_impls_overlap_check: crate_inherent_impls_dep_node(CrateNum) -> (),
|
||||
|
||||
/// Results of evaluating const items or constants embedded in
|
||||
/// other items (such as enum variant explicit discriminants).
|
||||
pub const_eval: const_eval_dep_node((DefId, &'tcx Substs<'tcx>))
|
||||
[] const_eval: const_eval_dep_node((DefId, &'tcx Substs<'tcx>))
|
||||
-> const_val::EvalResult<'tcx>,
|
||||
|
||||
/// Performs the privacy check and computes "access levels".
|
||||
pub privacy_access_levels: PrivacyAccessLevels(CrateNum) -> Rc<AccessLevels>,
|
||||
[] privacy_access_levels: PrivacyAccessLevels(CrateNum) -> Rc<AccessLevels>,
|
||||
|
||||
pub reachable_set: reachability_dep_node(CrateNum) -> Rc<NodeSet>,
|
||||
[] reachable_set: reachability_dep_node(CrateNum) -> Rc<NodeSet>,
|
||||
|
||||
pub mir_shims: mir_shim_dep_node(ty::InstanceDef<'tcx>) -> &'tcx RefCell<mir::Mir<'tcx>>,
|
||||
[] mir_shims: mir_shim_dep_node(ty::InstanceDef<'tcx>) -> &'tcx RefCell<mir::Mir<'tcx>>,
|
||||
|
||||
pub def_symbol_name: SymbolName(DefId) -> ty::SymbolName,
|
||||
pub symbol_name: symbol_name_dep_node(ty::Instance<'tcx>) -> ty::SymbolName,
|
||||
[] def_symbol_name: SymbolName(DefId) -> ty::SymbolName,
|
||||
[] symbol_name: symbol_name_dep_node(ty::Instance<'tcx>) -> ty::SymbolName,
|
||||
|
||||
pub describe_def: meta_data_node(DefId) -> Option<Def>
|
||||
[] describe_def: meta_data_node(DefId) -> Option<Def>
|
||||
}
|
||||
|
||||
fn coherent_trait_dep_node((_, def_id): (CrateNum, DefId)) -> DepNode<DefId> {
|
||||
@ -582,4 +582,4 @@ fn const_eval_dep_node((def_id, _): (DefId, &Substs)) -> DepNode<DefId> {
|
||||
|
||||
fn meta_data_node(def_id: DefId) -> DepNode<DefId> {
|
||||
DepNode::MetaData(def_id)
|
||||
}
|
||||
}
|
||||
|
@ -2146,7 +2146,7 @@ pub fn opt_associated_item(self, def_id: DefId) -> Option<AssociatedItem> {
|
||||
_ => false,
|
||||
}
|
||||
} else {
|
||||
match self.sess.cstore.describe_def(def_id).expect("no def for def-id") {
|
||||
match self.describe_def(def_id).expect("no def for def-id") {
|
||||
Def::AssociatedConst(_) | Def::Method(_) | Def::AssociatedTy(_) => true,
|
||||
_ => false,
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user