pub fn generate_unit<'a>(
unit: &Unit,
name: UnitName,
types: &mut TypeState,
symtab: &mut FrozenSymtab,
idtracker: &mut ExprIdTracker,
item_list: &ItemList,
unit_generic_list: &Option<GenericListToken>,
name_map: &mut BTreeMap<NameID, NameID>,
mono_state: &mut MonoState,
diag_handler: &mut DiagHandler,
name_source_map: &mut NameSourceMap,
self_mono_item: Option<MonoItem>,
opt_passes: &[&dyn MirPass],
) -> Result<Entity>