fn lower_fields<Field: HasAttrs + HasVisibility>(
db: &dyn SourceDatabase,
module: ModuleId,
fields: InFile<impl Iterator<Item = (Option<Type>, Field)>>,
field_name: impl FnMut(usize, &Field) -> Name,
override_visibility: Option<Option<Visibility>>,
) -> Option<(Arena<FieldData>, ExpressionStore, ExpressionStoreSourceMap)>