From 737d2f1f063a89cb0c72ab3fe8ceaefd1be6c8d1 Mon Sep 17 00:00:00 2001 From: Jeff Muizelaar Date: Mon, 21 May 2018 17:00:09 -0400 Subject: [PATCH] Handle RTTIBaseClassArray --- src/lib.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 1355b26..7d28fa5 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -193,6 +193,7 @@ pub enum Operator<'a> { LiteralOperatorName, RTTITypeDescriptor(StorageClass, Box>), + 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,unsigned int>::`RTTI Type Descriptor'", ); + expect( + "??_R2A@@8", + "A::`RTTI Base Class Array'" + ); } #[test]