Function rustc::traits::normalize_projection_type
[−]
[src]
pub fn normalize_projection_type<'a, 'b, 'gcx, 'tcx>(selcx: &'a mut SelectionContext<'b, 'gcx, 'tcx>,
projection_ty: ProjectionTy<'tcx>,
cause: ObligationCause<'tcx>,
depth: usize)
-> Normalized<'tcx, Ty<'tcx>>
🔬 This is a nightly-only experimental API. (
rustc_private
)The guts of normalize
: normalize a specific projection like <T as Trait>::Item
. The result is always a type (and possibly
additional obligations). If ambiguity arises, which implies that
there are unresolved type variables in the projection, we will
substitute a fresh type variable $X
and generate a new
obligation <T as Trait>::Item == $X
for later.