diff --git a/src/librustc/traits/engine.rs b/src/librustc/traits/engine.rs index c2d7a0cdd288..8eee6f35ab95 100644 --- a/src/librustc/traits/engine.rs +++ b/src/librustc/traits/engine.rs @@ -15,7 +15,7 @@ use hir::def_id::DefId; use super::{FulfillmentContext, FulfillmentError}; use super::{ObligationCause, PendingPredicateObligation, PredicateObligation}; -pub trait TraitEngine<'tcx> { +pub trait TraitEngine<'tcx>: 'tcx { fn normalize_projection_type<'a, 'gcx>( &mut self, infcx: &InferCtxt<'a, 'gcx, 'tcx>, @@ -52,7 +52,7 @@ pub trait TraitEngine<'tcx> { fn pending_obligations(&self) -> Vec>; } -impl<'a, 'gcx, 'tcx> TraitEngine<'tcx> + 'tcx { +impl<'a, 'gcx, 'tcx> dyn TraitEngine<'tcx> { pub fn new(_tcx: TyCtxt<'_, '_, 'tcx>) -> Box { Box::new(FulfillmentContext::new()) }