From 7abada2f6bcdde6ddde583275eb746e6c1b1f20d Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Thu, 17 Mar 2022 00:55:19 +0100 Subject: [PATCH] Fixed namespace namespace resolution --- src/class_diagram/visitor/translation_unit_visitor.cc | 5 +++-- src/cx/util.cc | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/class_diagram/visitor/translation_unit_visitor.cc b/src/class_diagram/visitor/translation_unit_visitor.cc index bb58e44d..c76616a4 100644 --- a/src/class_diagram/visitor/translation_unit_visitor.cc +++ b/src/class_diagram/visitor/translation_unit_visitor.cc @@ -549,8 +549,9 @@ void translation_unit_visitor::process_class_bases( class_parent cp; 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()); + base_ns = base_ns | common::model::namespace_{base.name()}.name(); + cp.set_name( + base_ns.relative_to(ctx.config().using_namespace()).to_string()); cp.is_virtual(base.is_virtual()); switch (base.access_specifier()) { diff --git a/src/cx/util.cc b/src/cx/util.cc index 157eee80..f43859a0 100644 --- a/src/cx/util.cc +++ b/src/cx/util.cc @@ -125,7 +125,9 @@ std::string ns(const cppast::cpp_entity &e) auto it = e.parent(); while (it) { if (it.value().kind() == cppast::cpp_entity_kind::namespace_t) { - if (!it.value().name().empty()) + const auto &ns = + static_cast(it.value()); + if (!ns.name().empty() && !ns.is_inline()) res.push_back(it.value().name()); } it = it.value().parent();