Fixed parsing non-template aliases to template instantiations

This commit is contained in:
Bartek Kryza
2022-05-22 13:05:46 +02:00
parent bee6f85a51
commit 3bd0f46b5c
2 changed files with 15 additions and 4 deletions

View File

@@ -1867,10 +1867,6 @@ void translation_unit_visitor::
static_cast<const cppast::cpp_template_instantiation_type &>(
targ.type().value());
std::string nnn{"empty"};
if (parent)
nnn = (*parent)->name();
auto [tinst_ns, tinst_name] =
cx::util::split_ns(tinst.full_name(false));

View File

@@ -47,6 +47,21 @@ TEST_CASE("t00014", "[test-case][class]")
REQUIRE_THAT(puml, IsClassTemplate("A", "bool,std::string"));
REQUIRE_THAT(puml, IsClass(_A("B")));
REQUIRE_THAT(puml, IsField<Private>("bapair", "PairPairBA<bool>"));
REQUIRE_THAT(puml, IsField<Private>("abool", "APtr<bool>"));
REQUIRE_THAT(puml, IsField<Private>("aboolfloat", "AAPtr<bool,float>"));
REQUIRE_THAT(puml, IsField<Private>("afloat", "ASharedPtr<float>"));
REQUIRE_THAT(puml, IsField<Private>("boolstring", "A<bool,std::string>"));
REQUIRE_THAT(puml, IsField<Private>("floatstring", "AStringPtr<float>"));
REQUIRE_THAT(puml, IsField<Private>("intstring", "AIntString"));
REQUIRE_THAT(puml, IsField<Private>("stringstring", "AStringString"));
REQUIRE_THAT(puml, IsField<Private>("bstringstring", "BStringString"));
REQUIRE_THAT(puml, IsField<Protected>("bs", "BVector"));
REQUIRE_THAT(puml, IsField<Public>("cb", "GeneralCallback<AIntString>"));
REQUIRE_THAT(puml, IsField<Public>("vcb", "VoidCallback"));
REQUIRE_THAT(
puml, !IsClassTemplate("std::std::function", "void(T...,int),int)"));