diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2018-11-16 08:25:46 -0500 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2018-11-16 09:37:32 -0500 |
| commit | 0d744ec6eca622aa63bb89f02e819e4270fa5794 (patch) | |
| tree | 4d8236405b2a038940fb706fd91ae883a1df4b67 | |
| parent | 6b9b97bd9b704f85f0184f7a213cc4d62bd9654c (diff) | |
| download | rust-0d744ec6eca622aa63bb89f02e819e4270fa5794.tar.gz rust-0d744ec6eca622aa63bb89f02e819e4270fa5794.zip | |
improve debug output related to bound calculation
| -rw-r--r-- | src/librustc/traits/mod.rs | 7 | ||||
| -rw-r--r-- | src/librustc_typeck/collect.rs | 11 | ||||
| -rw-r--r-- | src/librustc_typeck/outlives/implicit_infer.rs | 17 | ||||
| -rw-r--r-- | src/librustc_typeck/outlives/mod.rs | 3 |
4 files changed, 33 insertions, 5 deletions
diff --git a/src/librustc/traits/mod.rs b/src/librustc/traits/mod.rs index 33b689c60a1..8c3cd5e6612 100644 --- a/src/librustc/traits/mod.rs +++ b/src/librustc/traits/mod.rs @@ -700,7 +700,12 @@ fn do_normalize_predicates<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, predicates: Vec<ty::Predicate<'tcx>>) -> Result<Vec<ty::Predicate<'tcx>>, ErrorReported> { - debug!("do_normalize_predicates({:?})", predicates); + debug!( + "do_normalize_predicates(predicates={:?}, region_context={:?}, cause={:?})", + predicates, + region_context, + cause, + ); let span = cause.span; tcx.infer_ctxt().enter(|infcx| { // FIXME. We should really... do something with these region diff --git a/src/librustc_typeck/collect.rs b/src/librustc_typeck/collect.rs index 6ef09d96fd1..f3c570e8400 100644 --- a/src/librustc_typeck/collect.rs +++ b/src/librustc_typeck/collect.rs @@ -1608,10 +1608,21 @@ fn predicates_defined_on<'a, 'tcx>( tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId, ) -> Lrc<ty::GenericPredicates<'tcx>> { + debug!("predicates_defined_on({:?})", def_id); let mut result = tcx.explicit_predicates_of(def_id); + debug!( + "predicates_defined_on: explicit_predicates_of({:?}) = {:?}", + def_id, + result, + ); let inferred_outlives = tcx.inferred_outlives_of(def_id); if !inferred_outlives.is_empty() { let span = tcx.def_span(def_id); + debug!( + "predicates_defined_on: inferred_outlives_of({:?}) = {:?}", + def_id, + inferred_outlives, + ); Lrc::make_mut(&mut result) .predicates .extend(inferred_outlives.iter().map(|&p| (p, span))); diff --git a/src/librustc_typeck/outlives/implicit_infer.rs b/src/librustc_typeck/outlives/implicit_infer.rs index 132da8f5cea..101edac04c7 100644 --- a/src/librustc_typeck/outlives/implicit_infer.rs +++ b/src/librustc_typeck/outlives/implicit_infer.rs @@ -245,6 +245,7 @@ fn insert_required_predicates_to_be_wf<'tcx>( } } +#[derive(Debug)] pub struct IgnoreSelfTy(bool); /// We also have to check the explicit predicates @@ -270,10 +271,18 @@ pub fn check_explicit_predicates<'tcx>( explicit_map: &mut ExplicitPredicatesMap<'tcx>, ignore_self_ty: IgnoreSelfTy, ) { - debug!("def_id = {:?}", &def_id); - debug!("substs = {:?}", &substs); - debug!("explicit_map = {:?}", explicit_map); - debug!("required_predicates = {:?}", required_predicates); + debug!( + "check_explicit_predicates(def_id={:?}, \ + substs={:?}, \ + explicit_map={:?}, \ + required_predicates={:?}, \ + ignore_self_ty={:?})", + def_id, + substs, + explicit_map, + required_predicates, + ignore_self_ty, + ); let explicit_predicates = explicit_map.explicit_predicates_of(tcx, *def_id); for outlives_predicate in explicit_predicates.iter() { diff --git a/src/librustc_typeck/outlives/mod.rs b/src/librustc_typeck/outlives/mod.rs index cca77b20d9b..1eb53ffc730 100644 --- a/src/librustc_typeck/outlives/mod.rs +++ b/src/librustc_typeck/outlives/mod.rs @@ -67,6 +67,9 @@ fn inferred_outlives_of<'a, 'tcx>( } err.emit(); } + + debug!("inferred_outlives_of({:?}) = {:?}", item_def_id, predicates); + predicates } |
