Skip to main content

Module instantiate

Module instantiate 

Source
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ยง

CanonicalInstantiator ๐Ÿ”’
Replaces the bound vars in a canonical binder with var values.

Traitsยง

CanonicalExt
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_values into value. var_values must be values for the set of canonical variables that appear in value.