Handle RTTIClassHierarchyDescriptor

This commit is contained in:
Jeff Muizelaar
2018-05-22 11:48:31 -04:00
parent 737d2f1f06
commit e25ee5e18f
+11
View File
@@ -194,6 +194,7 @@ pub enum Operator<'a> {
RTTITypeDescriptor(StorageClass, Box<Type<'a>>),
RTTIBaseClassArray,
RTTIClassHierarchyDescriptor
}
#[derive(Clone, Debug, PartialEq)]
@@ -804,6 +805,9 @@ impl<'a> ParserState<'a> {
b'2' => {
Operator::RTTIBaseClassArray
}
b'3' => {
Operator::RTTIClassHierarchyDescriptor
}
_ => panic!("unknown RTTI Operator Name"),
}
}
@@ -1766,6 +1770,9 @@ impl<'a> Serializer<'a> {
&Operator::RTTIBaseClassArray => {
"`RTTI Base Class Array'"
}
&Operator::RTTIClassHierarchyDescriptor => {
"`RTTI Class Hierarchy Descriptor'"
}
};
write!(self.w, "{}", s)?;
Ok(())
@@ -2108,6 +2115,10 @@ mod tests {
"??_R2A@@8",
"A::`RTTI Base Class Array'"
);
expect(
"??_R3UO@i@@8",
"i::UO::`RTTI Class Hierarchy Descriptor'"
);
}
#[test]