From b257e0e5ae01c2dd0641514e544a4fb460ede7e4 Mon Sep 17 00:00:00 2001 From: Igor Matuszewski Date: Tue, 17 Nov 2020 18:30:31 +0100 Subject: [PATCH] WIP: Fix breakage due to rust-lang/rust#74113 See https://github.com/rust-lang/rust/pull/74113 --- rust-toolchain | 2 +- src/translate.rs | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/rust-toolchain b/rust-toolchain index 54654b2c..3e0f3c66 100644 --- a/rust-toolchain +++ b/rust-toolchain @@ -1 +1 @@ -nightly-2020-07-15 +nightly-2020-07-23 diff --git a/src/translate.rs b/src/translate.rs index dbf7f892..7564eba2 100644 --- a/src/translate.rs +++ b/src/translate.rs @@ -366,7 +366,7 @@ impl<'a, 'tcx> TranslationContext<'a, 'tcx> { ) -> Option> { use rustc_middle::ty::{ Binder, OutlivesPredicate, PredicateKind, ProjectionPredicate, ProjectionTy, - SubtypePredicate, ToPredicate, TraitPredicate, + SubtypePredicate, ToPredicate, TraitPredicate, WithOptConstParam, }; Some(match predicate.kind() { @@ -450,11 +450,14 @@ impl<'a, 'tcx> TranslationContext<'a, 'tcx> { })) .to_predicate(self.tcx) } - PredicateKind::ConstEvaluatable(orig_did, orig_substs) => { + PredicateKind::ConstEvaluatable(param, orig_substs) => { if let Some((target_def_id, target_substs)) = - self.translate_orig_substs(index_map, *orig_did, orig_substs) + self.translate_orig_substs(index_map, param.did, orig_substs) { - PredicateKind::ConstEvaluatable(target_def_id, target_substs) + // TODO: We could probably use translated version for + // `WithOptConstParam::const_param_did` + let const_param = WithOptConstParam::unknown(target_def_id); + PredicateKind::ConstEvaluatable(const_param, target_substs) .to_predicate(self.tcx) } else { return None;