Re-exportsΒ§
use rustc_hir::def::DefKind;πuse rustc_hir::def_id::LocalDefId;πuse rustc_infer::infer::TyCtxtInferExt;πuse rustc_infer::traits::ObligationCause;πuse rustc_infer::traits::query::MirBorrowckImpliedOutlivesBounds;πuse rustc_middle::infer::canonical::Canonical;πuse rustc_middle::infer::canonical::QueryResponse;πuse rustc_middle::ty;πuse rustc_middle::ty::CanonicalVarValues;πuse rustc_middle::ty::GenericArg;πuse rustc_middle::ty::Ty;πuse rustc_middle::ty::TyCtxt;πuse rustc_middle::ty::TypeVisitableExt;πuse rustc_middle::ty::TypingEnv;πuse rustc_middle::ty::fold_regions;πuse rustc_span::DUMMY_SP;πuse rustc_trait_selection::solve::NoSolution;πuse rustc_trait_selection::traits::ObligationCtxt;πuse rustc_trait_selection::traits::implied_outlives_bounds::compute_implied_outlives_bounds_inner;πuse rustc_trait_selection::traits::implied_outlives_bounds::consider_implied_bounds_hack_for_ty;πuse smallvec::SmallVec;πuse tracing::instrument;πuse tracing::instrument;πuse crate::universal_regions::DefiningTy;π
FunctionsΒ§
- implied_
bounds_ πquery_ var_ values - This computes the
var_valuesused by themir_borrowck_implied_outlives_boundsquery. The old solver canonicalization does not replace early and late bound parameters, so the onlyvar_valueswe need are external regions from the signature of the nested body as we donβt have a shared representation between this query and MIR borrowck. - mir_
borrowck_ πimplied_ outlives_ bounds - Computes the implied bounds for
body_def_id. This is a separate query as it must not reveal the hidden type of opaques defined bybody_def_idfor typeck roots. - replace_
erased_ πregions_ with_ placeholders - This replaces all external regions in the signature of the current item with a unique placeholder to collect its implied bounds. This mirrors the way MIR borrowck replaces all of them with unique NLL vars.