StructsΒ§
- Normalizer π
- Sort
Normalizer π - TVar
Subst π
EnumsΒ§
TraitsΒ§
FunctionsΒ§
- get_
impl_ πdata_ for_ alias_ reft - normalize_
alias_ πreft - Normalizes an
AliasReft
. This uses the trait solver to find theImplSourceUserDefinedData
and uses theargs
there, which we map back to Flux via refining. This loses refinements, but thatβs fine becauseAliasReft
should not rely on refinements for trait solving. - normalize_
projection_ πty_ with_ rustc - Normalize an
rty::AliasTy
by converting it to rustc, normalizing it using rustc api, and then mapping the result back torty
. This will lose refinements and it should only be used to normalize sorts because they should only contain unrefined types. However, we are also using it as a hack to normalize types in cases where we fail to collect a candidate, this is unsound and should be removed. - structurally_
normalize_ expr - Do one step of normalization, unfolding associated refinements if they are concrete.