Skip to content

Commit 9f59d0d

Browse files
authored
Support storage classes in function types (#46)
1 parent 619e5e6 commit 9f59d0d

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/lib.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -849,7 +849,15 @@ impl<'a> ParserState<'a> {
849849

850850
fn read_func_type(&mut self) -> Result<Type<'a>> {
851851
let calling_conv = self.read_calling_conv()?;
852-
let return_type = self.read_var_type(StorageClass::empty())?;
852+
// this might have to be conditional on template context. For now
853+
// this does not cause issues. For more information see
854+
// https://github.com/mstange/msvc-demangler-rust/issues/21
855+
let sc = if self.consume(b"?") {
856+
self.read_storage_class()
857+
} else {
858+
StorageClass::empty()
859+
};
860+
let return_type = self.read_var_type(sc)?;
853861
let params = self.read_func_params()?;
854862
Ok(Type::NonMemberFunction(
855863
calling_conv,

0 commit comments

Comments
 (0)