Struct rustc::infer::resolve::OpportunisticTypeResolver
[−]
[src]
pub struct OpportunisticTypeResolver<'a, 'gcx: 'a + 'tcx, 'tcx: 'a> { /* fields omitted */ }
🔬 This is a nightly-only experimental API. (
rustc_private
)The opportunistic type resolver can be used at any time. It simply replaces
type variables that have been unified with the things they have
been unified with (similar to shallow_resolve
, but deep). This is
useful for printing messages etc but also required at various
points for correctness.
Methods
impl<'a, 'gcx, 'tcx> OpportunisticTypeResolver<'a, 'gcx, 'tcx>
[src]
fn new(infcx: &'a InferCtxt<'a, 'gcx, 'tcx>) -> Self
🔬 This is a nightly-only experimental API. (
rustc_private
)Trait Implementations
impl<'a, 'gcx, 'tcx> TypeFolder<'gcx, 'tcx> for OpportunisticTypeResolver<'a, 'gcx, 'tcx>
[src]
fn tcx<'b>(&'b self) -> TyCtxt<'b, 'gcx, 'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn fold_ty(&mut self, t: Ty<'tcx>) -> Ty<'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn fold_binder<T>(&mut self, t: &Binder<T>) -> Binder<T> where T: TypeFoldable<'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn fold_mt(&mut self, t: &TypeAndMut<'tcx>) -> TypeAndMut<'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn fold_impl_header(&mut self, imp: &ImplHeader<'tcx>) -> ImplHeader<'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn fold_substs(&mut self, substs: &'tcx Substs<'tcx>) -> &'tcx Substs<'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn fold_fn_sig(&mut self, sig: &FnSig<'tcx>) -> FnSig<'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)fn fold_region(&mut self, r: &'tcx Region) -> &'tcx Region
🔬 This is a nightly-only experimental API. (
rustc_private
)fn fold_autoref(&mut self, ar: &AutoBorrow<'tcx>) -> AutoBorrow<'tcx>
🔬 This is a nightly-only experimental API. (
rustc_private
)