From bee6f85a51319df127b53266b0d02419995800be Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Sun, 22 May 2022 12:52:30 +0200 Subject: [PATCH 1/2] Updated cppast ref --- thirdparty/cppast | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/thirdparty/cppast b/thirdparty/cppast index 6db9daf5..40c78194 160000 --- a/thirdparty/cppast +++ b/thirdparty/cppast @@ -1 +1 @@ -Subproject commit 6db9daf5d2fa161855f70ad3deea0873f53e195f +Subproject commit 40c7819463c403a6d6047c33652179c7fc068c72 From 3bd0f46b5c898219d89328335bae96ba3f930b33 Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Sun, 22 May 2022 13:05:46 +0200 Subject: [PATCH 2/2] Fixed parsing non-template aliases to template instantiations --- .../visitor/translation_unit_visitor.cc | 4 ---- tests/t00014/test_case.h | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/class_diagram/visitor/translation_unit_visitor.cc b/src/class_diagram/visitor/translation_unit_visitor.cc index 97259946..d2a0eb82 100644 --- a/src/class_diagram/visitor/translation_unit_visitor.cc +++ b/src/class_diagram/visitor/translation_unit_visitor.cc @@ -1867,10 +1867,6 @@ void translation_unit_visitor:: static_cast( 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)); diff --git a/tests/t00014/test_case.h b/tests/t00014/test_case.h index e7dc0533..7c24ace2 100644 --- a/tests/t00014/test_case.h +++ b/tests/t00014/test_case.h @@ -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("bapair", "PairPairBA")); + REQUIRE_THAT(puml, IsField("abool", "APtr")); + REQUIRE_THAT(puml, IsField("aboolfloat", "AAPtr")); + REQUIRE_THAT(puml, IsField("afloat", "ASharedPtr")); + REQUIRE_THAT(puml, IsField("boolstring", "A")); + REQUIRE_THAT(puml, IsField("floatstring", "AStringPtr")); + REQUIRE_THAT(puml, IsField("intstring", "AIntString")); + REQUIRE_THAT(puml, IsField("stringstring", "AStringString")); + REQUIRE_THAT(puml, IsField("bstringstring", "BStringString")); + + REQUIRE_THAT(puml, IsField("bs", "BVector")); + + REQUIRE_THAT(puml, IsField("cb", "GeneralCallback")); + REQUIRE_THAT(puml, IsField("vcb", "VoidCallback")); + REQUIRE_THAT( puml, !IsClassTemplate("std::std::function", "void(T...,int),int)"));