use existing functions for parsing property

- this means not being able to resolve the type of the field is a hard error
This commit is contained in:
Janis 2023-06-17 16:51:21 +02:00
parent 46a5b9bb0e
commit b3608b2968

View file

@ -105,26 +105,8 @@ impl ClassMethod {
AnyField::Property(prop) => Some(prop), AnyField::Property(prop) => Some(prop),
_ => None, _ => None,
}) })
.map(|prop| -> anyhow::Result<Option<ClassField>> { .map(|prop| ClassField::from_uprop(prop))
let param = ClassField { .collect::<anyhow::Result<Vec<_>>>()?;
offset: *prop.offset() as u32,
size: *prop.element_size() as u32,
name: prop.get_name().context("failed to get property name")?,
flags: *prop.property_flags(),
ty: if let Ok(ty) = resolve_type(prop) {
ty
} else {
log::warn!("skipping field {} with offset 0x{:x}", prop, prop.offset());
return Ok(None);
},
};
Ok(Some(param))
})
.fold_ok(Vec::new(), |mut acc, field| {
acc.extend(field);
acc
})?;
Ok(ClassMethod { Ok(ClassMethod {
name, name,