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_assertslead 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 Traitto vtable function pointer calls.