summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/parser.rs3
-rw-r--r--tests/headers/class_nested.hpp9
2 files changed, 12 insertions, 0 deletions
diff --git a/src/parser.rs b/src/parser.rs
index e6e60bab..9fef18f2 100644
--- a/src/parser.rs
+++ b/src/parser.rs
@@ -626,6 +626,9 @@ fn visit_composite(cursor: &Cursor, parent: &Cursor,
visit_composite(c, p, ctx_, &mut ci_)
});
+ // Propagate template types to inner structs
+ ci2.borrow_mut().args.extend(ci.args.clone().into_iter());
+
ci.members.push(CompMember::Comp(decl.compinfo()));
// Anonymous structs are legal in both C++ and C11
diff --git a/tests/headers/class_nested.hpp b/tests/headers/class_nested.hpp
index 05a775b8..670d418f 100644
--- a/tests/headers/class_nested.hpp
+++ b/tests/headers/class_nested.hpp
@@ -11,3 +11,12 @@ A::B var;
class D {
A::B member;
};
+
+template<typename T>
+class Templated {
+ T member;
+
+ class Templated_inner {
+ T* member_ptr;
+ };
+};