charon_lib::transform::ullbc_to_llbc

Function translate_block

source
fn translate_block(
    info: &mut BlockInfo<'_>,
    parent_loops: &Vec<BlockId>,
    switch_exit_blocks: &HashSet<BlockId>,
    block_id: BlockId,
) -> Block
Expand description

Remark: some values are boxed (here, the returned statement) so that they are allocated on the heap. This reduces stack usage (we had problems with stack overflows in the past). A more efficient solution would be to use loops to make this code constant space, but that would require a serious rewriting.