From 331f3310ce1261f110b44ae8d2445f58749546cf Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Thu, 17 Mar 2022 00:14:48 +0100 Subject: [PATCH] Fixed namespace resolution of base classes --- src/class_diagram/visitor/translation_unit_visitor.cc | 5 ++++- tests/t00038/test_case.h | 8 +++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/class_diagram/visitor/translation_unit_visitor.cc b/src/class_diagram/visitor/translation_unit_visitor.cc index 03debefb..bb58e44d 100644 --- a/src/class_diagram/visitor/translation_unit_visitor.cc +++ b/src/class_diagram/visitor/translation_unit_visitor.cc @@ -547,7 +547,10 @@ void translation_unit_visitor::process_class_bases( { for (auto &base : cls.bases()) { class_parent cp; - cp.set_name(cx::util::fully_prefixed(ctx.get_namespace(), base)); + auto base_ns = common::model::namespace_{ + cx::util::ns(base.type(), ctx.entity_index())}; + base_ns = base_ns | base.name(); + cp.set_name(base_ns.to_string()); cp.is_virtual(base.is_virtual()); switch (base.access_specifier()) { diff --git a/tests/t00038/test_case.h b/tests/t00038/test_case.h index 512f1a39..8ca2b260 100644 --- a/tests/t00038/test_case.h +++ b/tests/t00038/test_case.h @@ -60,9 +60,6 @@ TEST_CASE("t00038", "[test-case][class]") _A("map>>>"))); - // TODO: Add parsing of unexposed template arguments to infer - // additional relationships - REQUIRE_THAT(puml, IsDependency(_A("map>"), @@ -89,6 +86,11 @@ TEST_CASE("t00038", "[test-case][class]") "thirdparty::ns1::color_t::red>>"), _A("thirdparty::ns1::color_t"))); + REQUIRE_THAT(puml, + IsBaseClass(_A("thirdparty::ns1::E"), + _A("map>"))); + save_puml( "./" + config.output_directory() + "/" + diagram->name + ".puml", puml); }