Module normalize

Source
Expand description

Passes that effect some kind of normalization on the crate.

Modules§

expand_associated_types
Change trait associated types to be type parameters instead. E.g.
filter_unreachable_blocks
Some passes like crate::transform::resugar::reconstruct_asserts lead to the apparition of “dangling” blocks, which are referenced nowhere and thus become unreachable. This pass filters those out.
partial_monomorphization
This module implements partial monomorphization, which allows specializing generic items on some specific instanciation patterns. This is used by Aeneas to avoid nested mutable borrows: we transform Iter<'a, &'b mut T> to {Iter::<_, &mut U>}<'a, 'b, T>, where
skip_trait_refs_when_known
transform_dyn_trait_calls
Transform method calls on &dyn Trait to vtable function pointer calls.