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:
parent
46a5b9bb0e
commit
b3608b2968
|
@ -105,26 +105,8 @@ impl ClassMethod {
|
|||
AnyField::Property(prop) => Some(prop),
|
||||
_ => None,
|
||||
})
|
||||
.map(|prop| -> anyhow::Result<Option<ClassField>> {
|
||||
let param = ClassField {
|
||||
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
|
||||
})?;
|
||||
.map(|prop| ClassField::from_uprop(prop))
|
||||
.collect::<anyhow::Result<Vec<_>>>()?;
|
||||
|
||||
Ok(ClassMethod {
|
||||
name,
|
||||
|
|
Loading…
Reference in a new issue