Small refactoring: coalesce record field collection loop

This commit is contained in:
ayazhafiz 2021-12-21 19:23:07 -06:00
parent 576f1293fd
commit e451c3a1f9

View file

@ -1669,20 +1669,16 @@ fn sort_record_fields_help<'a>(
let mut sorted_fields = Vec::with_capacity_in(fields_map.size_hint().0, env.arena); let mut sorted_fields = Vec::with_capacity_in(fields_map.size_hint().0, env.arena);
for (label, field) in fields_map { for (label, field) in fields_map {
// TODO: make prettier by pulling out Ok/Err match field {
let var = match field { RecordField::Demanded(v) | RecordField::Required(v) => {
RecordField::Demanded(v) => v, let layout = Layout::from_var(env, v)?;
RecordField::Required(v) => v, sorted_fields.push((label, v, Ok(layout)));
}
RecordField::Optional(v) => { RecordField::Optional(v) => {
let layout = Layout::from_var(env, v)?; let layout = Layout::from_var(env, v)?;
sorted_fields.push((label, v, Err(layout))); sorted_fields.push((label, v, Err(layout)));
continue;
} }
}; };
let layout = Layout::from_var(env, var)?;
sorted_fields.push((label, var, Ok(layout)));
} }
sorted_fields.sort_by( sorted_fields.sort_by(