Skip to main content

Module verify

Module verify 

Source

Re-exportsΒ§

use std::assert_matches; πŸ”’
use rustc_middle::ty::outlives::Component; πŸ”’
use rustc_middle::ty::outlives::compute_alias_components_recursive; πŸ”’
use rustc_middle::ty; πŸ”’
use rustc_middle::ty::OutlivesClause; πŸ”’
use rustc_middle::ty::Ty; πŸ”’
use rustc_middle::ty::TyCtxt; πŸ”’
use smallvec::smallvec; πŸ”’
use tracing::debug; πŸ”’
use tracing::instrument; πŸ”’
use tracing::instrument; πŸ”’
use crate::infer::outlives::env::RegionBoundPairs; πŸ”’
use crate::infer::region_constraints::VerifyIfEq; πŸ”’
use crate::infer::GenericKind; πŸ”’
use crate::infer::VerifyBound; πŸ”’

StructsΒ§

VerifyBoundCx πŸ”’
The TypeOutlives struct has the job of β€œlowering” a T: 'a obligation into a series of 'a: 'b constraints and β€œverifys”, as described on the module comment. The final constraints are emitted via a β€œdelegate” of type D – this is usually the infcx, which accrues them into the region_obligations code, but for NLL we use something else.