Expand description
This module contains code to instantiate new values into a
Canonical<'tcx, T>.
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 rustc_macros::extension;๐use rustc_middle::ty;๐use rustc_middle::ty::DelayedMap;๐use rustc_middle::ty::Ty;๐use rustc_middle::ty::TyCtxt;๐use rustc_middle::ty::TypeFlags;๐use rustc_middle::ty::TypeFoldable;๐use rustc_middle::ty::TypeFolder;๐use rustc_middle::ty::TypeSuperFoldable;๐use rustc_middle::ty::TypeSuperVisitable;๐use rustc_middle::ty::TypeVisitable;๐use rustc_middle::ty::TypeVisitableExt;๐use rustc_middle::ty::TypeVisitor;๐use rustc_type_ir::PredicateProxy;๐use crate::infer::canonical::Canonical;๐use crate::infer::canonical::CanonicalVarValues;๐
Structsยง
- Canonical
Instantiator ๐ - Replaces the bound vars in a canonical binder with var values.
Traitsยง
- Canonical
Ext - FIXME(-Znext-solver): This or public because it is shared with the new trait solver implementation. We should deduplicate canonicalization.
Functionsยง
- highest_
var_ ๐in_ clauses - instantiate_
value ๐ - Instantiate the values from
var_valuesintovalue.var_valuesmust be values for the set of canonical variables that appear invalue.