Expand description
This module contains the code to instantiate a “query result”, and in particular to extract out the resulting region obligations and encode them therein.
For an overview of what canonicalization is and how it fits into rustc, check out the chapter in the rustc dev guide.
Re-exports§
use std::fmt::Debug;🔒use std::fmt::Debug;🔒use std::iter;🔒use rustc_index::Idx;🔒use rustc_index::IndexVec;🔒use rustc_middle::arena::ArenaAllocatable;🔒use rustc_middle::infer::canonical::CanonicalVarKind;🔒use rustc_middle::infer::canonical::QueryRegionConstraint;🔒use rustc_middle::ty;🔒use rustc_middle::ty::BoundVar;🔒use rustc_middle::ty::GenericArg;🔒use rustc_middle::ty::GenericArgKind;🔒use rustc_middle::ty::Ty;🔒use rustc_middle::ty::TyCtxt;🔒use rustc_middle::ty::TypeFoldable;🔒use rustc_span::bug;🔒use tracing::debug;🔒use tracing::instrument;🔒use tracing::instrument;🔒use crate::infer::canonical::instantiate::CanonicalExt;🔒use crate::infer::canonical::instantiate::instantiate_value;🔒use crate::infer::canonical::Canonical;🔒use crate::infer::canonical::CanonicalQueryResponse;🔒use crate::infer::canonical::CanonicalVarValues;🔒use crate::infer::canonical::Certainty;🔒use crate::infer::canonical::OriginalQueryValues;🔒use crate::infer::canonical::QueryRegionConstraints;🔒use crate::infer::canonical::QueryResponse;🔒use crate::infer::region_constraints::ConstraintKind;🔒use crate::infer::region_constraints::RegionConstraintData;🔒use crate::infer::DefineOpaqueTypes;🔒use crate::infer::InferCtxt;🔒use crate::infer::InferOk;🔒use crate::infer::InferResult;🔒use crate::infer::OpaqueTypeStorageEntries;🔒use crate::infer::SubregionOrigin;🔒use crate::infer::TypeOutlivesConstraint;🔒use crate::traits::query::NoSolution;🔒use crate::traits::ObligationCause;🔒use crate::traits::PredicateObligations;🔒use crate::traits::ScrubbedTraitError;🔒use crate::traits::TraitEngine;🔒use crate::traits::TraitErrors;🔒
Functions§
- make_
query_ region_ constraints - Given the region obligations and constraints scraped from the infcx, creates query region constraints.