//! A set of traits that define a stable interface to rustc's internals. //! //! These traits are primarily used to clarify the behavior of different //! functions that share the same name across various contexts. use rustc_middle::ty; pub(crate) trait ExistentialProjectionHelpers<'tcx> { fn new_from_args( &self, def_id: rustc_span::def_id::DefId, args: ty::GenericArgsRef<'tcx>, term: ty::Term<'tcx>, ) -> ty::ExistentialProjection<'tcx>; } pub(crate) trait ExistentialTraitRefHelpers<'tcx> { fn new_from_args( &self, trait_def_id: rustc_span::def_id::DefId, args: ty::GenericArgsRef<'tcx>, ) -> ty::ExistentialTraitRef<'tcx>; } pub(crate) trait TraitRefHelpers<'tcx> { fn new_from_args( &self, trait_def_id: rustc_span::def_id::DefId, args: ty::GenericArgsRef<'tcx>, ) -> ty::TraitRef<'tcx>; }