Handle RTTIBaseClassArray

This commit is contained in:
Jeff Muizelaar
2018-05-22 10:16:46 -04:00
parent f2ec54ee5c
commit 737d2f1f06
+11
View File
@@ -193,6 +193,7 @@ pub enum Operator<'a> {
LiteralOperatorName,
RTTITypeDescriptor(StorageClass, Box<Type<'a>>),
RTTIBaseClassArray,
}
#[derive(Clone, Debug, PartialEq)]
@@ -800,6 +801,9 @@ impl<'a> ParserState<'a> {
let t = self.read_var_type(storage_class)?;
Operator::RTTITypeDescriptor(storage_class, Box::new(t))
}
b'2' => {
Operator::RTTIBaseClassArray
}
_ => panic!("unknown RTTI Operator Name"),
}
}
@@ -1759,6 +1763,9 @@ impl<'a> Serializer<'a> {
write!(self.w, "::`RTTI Type Descriptor'")?;
return Ok(());
},
&Operator::RTTIBaseClassArray => {
"`RTTI Base Class Array'"
}
};
write!(self.w, "{}", s)?;
Ok(())
@@ -2097,6 +2104,10 @@ mod tests {
"??_R0?AV?$KxTree@V?$KxSpe@DI@@I@@@8",
"class KxTree<class KxSpe<char,unsigned int>,unsigned int>::`RTTI Type Descriptor'",
);
expect(
"??_R2A@@8",
"A::`RTTI Base Class Array'"
);
}
#[test]