use ich::Fingerprint;
use ty::{TyCtxt, Instance, InstanceDef};
use ty::fast_reject::SimplifiedType;
-use ty::subst::Substs;
use rustc_data_structures::stable_hasher::{StableHasher, HashStable};
use ich::StableHashingContext;
use std::fmt;
match *self {
$(
DepKind :: $variant => {
+ $(return !anon_attr_to_bool!($anon);)*
+
// tuple args
$({
return <( $($tuple_arg,)* ) as DepNodeParams>
// struct args
$({
+
return <( $($struct_arg_ty,)* ) as DepNodeParams>
::CAN_RECONSTRUCT_QUERY_KEY;
})*
[] TypeckBodiesKrate,
[] TypeckTables(DefId),
[] HasTypeckTables(DefId),
- [] ConstEval { def_id: DefId, substs: &'tcx Substs<'tcx> },
+ [anon] ConstEval,
[] SymbolName(DefId),
[] InstanceSymbolName { instance: Instance<'tcx> },
[] SpecializationGraph(DefId),
[] ObjectSafety(DefId),
- [anon] IsCopy(DefId),
- [anon] IsSized(DefId),
- [anon] IsFreeze(DefId),
- [anon] NeedsDrop(DefId),
- [anon] Layout(DefId),
+ [anon] IsCopy,
+ [anon] IsSized,
+ [anon] IsFreeze,
+ [anon] NeedsDrop,
+ [anon] Layout,
// The set of impls for a given trait.
[] TraitImpls(DefId),
// except according to those terms.
use dep_graph::{DepConstructor, DepNode, DepNodeIndex};
-use hir::def_id::{CrateNum, CRATE_DEF_INDEX, DefId, LOCAL_CRATE};
+use hir::def_id::{CrateNum, DefId, LOCAL_CRATE};
use hir::def::Def;
use hir;
use middle::const_val;
DepConstructor::TypeckBodiesKrate
}
-fn const_eval_dep_node<'tcx>(key: ty::ParamEnvAnd<'tcx, (DefId, &'tcx Substs<'tcx>)>)
+fn const_eval_dep_node<'tcx>(_: ty::ParamEnvAnd<'tcx, (DefId, &'tcx Substs<'tcx>)>)
-> DepConstructor<'tcx> {
- let (def_id, substs) = key.value;
- DepConstructor::ConstEval { def_id, substs }
+ DepConstructor::ConstEval
}
fn mir_keys<'tcx>(_: CrateNum) -> DepConstructor<'tcx> {
DepConstructor::RelevantTraitImpls(def_id, t)
}
-fn is_copy_dep_node<'tcx>(key: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> DepConstructor<'tcx> {
- let def_id = ty::item_path::characteristic_def_id_of_type(key.value)
- .unwrap_or(DefId::local(CRATE_DEF_INDEX));
- DepConstructor::IsCopy(def_id)
+fn is_copy_dep_node<'tcx>(_: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> DepConstructor<'tcx> {
+ DepConstructor::IsCopy
}
-fn is_sized_dep_node<'tcx>(key: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> DepConstructor<'tcx> {
- let def_id = ty::item_path::characteristic_def_id_of_type(key.value)
- .unwrap_or(DefId::local(CRATE_DEF_INDEX));
- DepConstructor::IsSized(def_id)
+fn is_sized_dep_node<'tcx>(_: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> DepConstructor<'tcx> {
+ DepConstructor::IsSized
}
-fn is_freeze_dep_node<'tcx>(key: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> DepConstructor<'tcx> {
- let def_id = ty::item_path::characteristic_def_id_of_type(key.value)
- .unwrap_or(DefId::local(CRATE_DEF_INDEX));
- DepConstructor::IsFreeze(def_id)
+fn is_freeze_dep_node<'tcx>(_: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> DepConstructor<'tcx> {
+ DepConstructor::IsFreeze
}
-fn needs_drop_dep_node<'tcx>(key: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> DepConstructor<'tcx> {
- let def_id = ty::item_path::characteristic_def_id_of_type(key.value)
- .unwrap_or(DefId::local(CRATE_DEF_INDEX));
- DepConstructor::NeedsDrop(def_id)
+fn needs_drop_dep_node<'tcx>(_: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> DepConstructor<'tcx> {
+ DepConstructor::NeedsDrop
}
-fn layout_dep_node<'tcx>(key: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> DepConstructor<'tcx> {
- let def_id = ty::item_path::characteristic_def_id_of_type(key.value)
- .unwrap_or(DefId::local(CRATE_DEF_INDEX));
- DepConstructor::Layout(def_id)
+fn layout_dep_node<'tcx>(_: ty::ParamEnvAnd<'tcx, Ty<'tcx>>) -> DepConstructor<'tcx> {
+ DepConstructor::Layout
}