Added rendering of template specialization members
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
# CHANGELOG
|
||||
|
||||
* Added rendering of template specialization fields and methods (#128)
|
||||
* Improved template specialization/instantiation matching based on deduced
|
||||
context
|
||||
|
||||
|
||||
@@ -206,10 +206,14 @@ bool translation_unit_visitor::VisitClassTemplateSpecializationDecl(
|
||||
process_template_specialization_children(cls, template_specialization);
|
||||
}
|
||||
|
||||
if (cls->hasDefinition())
|
||||
if (cls->hasDefinition()) {
|
||||
// Process template specialization bases
|
||||
process_class_bases(cls, template_specialization);
|
||||
|
||||
// Process class child entities
|
||||
process_class_children(cls, template_specialization);
|
||||
}
|
||||
|
||||
if (!template_specialization.template_specialization_found()) {
|
||||
// Only do this if we haven't found a bettern specialization during
|
||||
// construction of the template specialization
|
||||
|
||||
@@ -55,6 +55,14 @@ TEST_CASE("t00062", "[test-case][class]")
|
||||
REQUIRE_THAT(puml, IsClassTemplate("A", "C<T>"));
|
||||
REQUIRE_THAT(puml, IsClassTemplate("A", "C<T,Args...>"));
|
||||
|
||||
REQUIRE_THAT(puml, (IsField<Public>("u", "U &")));
|
||||
REQUIRE_THAT(puml, (IsField<Public>("u", "U **")));
|
||||
REQUIRE_THAT(puml, (IsField<Public>("u", "U ***")));
|
||||
REQUIRE_THAT(puml, (IsField<Public>("u", "U &&")));
|
||||
REQUIRE_THAT(puml, (IsField<Public>("u", "const U &")));
|
||||
REQUIRE_THAT(puml, (IsField<Public>("c", "C &")));
|
||||
REQUIRE_THAT(puml, (IsField<Public>("m", "M C::*")));
|
||||
|
||||
REQUIRE_THAT(puml, IsInstantiation(_A("A<T>"), _A("A<U &>")));
|
||||
REQUIRE_THAT(puml, IsInstantiation(_A("A<T>"), _A("A<U &&>")));
|
||||
REQUIRE_THAT(puml, IsInstantiation(_A("A<T>"), _A("A<M C::*>")));
|
||||
|
||||
Reference in New Issue
Block a user