Skip to main content

Module engine

Module engine 

Source

Re-exportsยง

use std::cell::RefCell; ๐Ÿ”’
use std::fmt::Debug; ๐Ÿ”’
use std::fmt::Debug; ๐Ÿ”’
use rustc_data_structures::fx::FxIndexSet; ๐Ÿ”’
use rustc_errors::ErrorGuaranteed; ๐Ÿ”’
use rustc_hir::def_id::DefId; ๐Ÿ”’
use rustc_hir::def_id::LocalDefId; ๐Ÿ”’
use rustc_infer::infer::at::ToTrace; ๐Ÿ”’
use rustc_infer::infer::canonical::Canonical; ๐Ÿ”’
use rustc_infer::infer::canonical::CanonicalQueryResponse; ๐Ÿ”’
use rustc_infer::infer::canonical::CanonicalVarValues; ๐Ÿ”’
use rustc_infer::infer::canonical::QueryResponse; ๐Ÿ”’
use rustc_infer::infer::DefineOpaqueTypes; ๐Ÿ”’
use rustc_infer::infer::InferCtxt; ๐Ÿ”’
use rustc_infer::infer::InferOk; ๐Ÿ”’
use rustc_infer::infer::RegionResolutionError; ๐Ÿ”’
use rustc_infer::infer::TypeTrace; ๐Ÿ”’
use rustc_infer::traits::PredicateObligations; ๐Ÿ”’
use rustc_infer::traits::TraitErrors; ๐Ÿ”’
use rustc_middle::arena::ArenaAllocatable; ๐Ÿ”’
use rustc_middle::traits::query::NoSolution; ๐Ÿ”’
use rustc_middle::ty::error::TypeError; ๐Ÿ”’
use rustc_middle::ty::relate::Relate; ๐Ÿ”’
use rustc_middle::ty; ๐Ÿ”’
use rustc_middle::ty::Ty; ๐Ÿ”’
use rustc_middle::ty::TyCtxt; ๐Ÿ”’
use rustc_middle::ty::TypeFoldable; ๐Ÿ”’
use rustc_middle::ty::Unnormalized; ๐Ÿ”’
use rustc_middle::ty::Upcast; ๐Ÿ”’
use rustc_middle::ty::Variance; ๐Ÿ”’
use thin_vec::ThinVec; ๐Ÿ”’
use super::FromSolverError; ๐Ÿ”’
use super::FulfillmentContext; ๐Ÿ”’
use super::ScrubbedTraitError; ๐Ÿ”’
use super::TraitEngine; ๐Ÿ”’
use crate::error_reporting::InferCtxtErrorExt; ๐Ÿ”’
use crate::regions::InferCtxtRegionExt; ๐Ÿ”’
use crate::solve::FulfillmentCtxt as NextFulfillmentCtxt; ๐Ÿ”’
use crate::solve::NextSolverError; ๐Ÿ”’
use crate::traits::fulfill::OldSolverError; ๐Ÿ”’
use crate::traits::FulfillmentError; ๐Ÿ”’
use crate::traits::NormalizeExt; ๐Ÿ”’
use crate::traits::Obligation; ๐Ÿ”’
use crate::traits::ObligationCause; ๐Ÿ”’
use crate::traits::PredicateObligation; ๐Ÿ”’
use crate::traits::StructurallyNormalizeExt; ๐Ÿ”’

Structsยง

ObligationCtxt
Used if you want to have pleasant experience when dealing with obligations outside of hir or mir typeck.

Enumsยง

FulfillmentEngine
A fulfillment engine, stored inline rather than boxed as a dyn TraitEngine because some of its holders (e.g. ObligationCtxt) are created very often (once per candidate probe during method resolution), so the heap allocation would be expensive.