Fixed namespace resolution of base classes
This commit is contained in:
@@ -547,7 +547,10 @@ void translation_unit_visitor::process_class_bases(
|
|||||||
{
|
{
|
||||||
for (auto &base : cls.bases()) {
|
for (auto &base : cls.bases()) {
|
||||||
class_parent cp;
|
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());
|
cp.is_virtual(base.is_virtual());
|
||||||
|
|
||||||
switch (base.access_specifier()) {
|
switch (base.access_specifier()) {
|
||||||
|
|||||||
@@ -60,9 +60,6 @@ TEST_CASE("t00038", "[test-case][class]")
|
|||||||
_A("map<std::map<key_t,std::vector<std::integral_constant<property_"
|
_A("map<std::map<key_t,std::vector<std::integral_constant<property_"
|
||||||
"t,property_t::property_c>>>>")));
|
"t,property_t::property_c>>>>")));
|
||||||
|
|
||||||
// TODO: Add parsing of unexposed template arguments to infer
|
|
||||||
// additional relationships
|
|
||||||
|
|
||||||
REQUIRE_THAT(puml,
|
REQUIRE_THAT(puml,
|
||||||
IsDependency(_A("map<std::integral_constant<property_t,property_t::"
|
IsDependency(_A("map<std::integral_constant<property_t,property_t::"
|
||||||
"property_a>>"),
|
"property_a>>"),
|
||||||
@@ -89,6 +86,11 @@ TEST_CASE("t00038", "[test-case][class]")
|
|||||||
"thirdparty::ns1::color_t::red>>"),
|
"thirdparty::ns1::color_t::red>>"),
|
||||||
_A("thirdparty::ns1::color_t")));
|
_A("thirdparty::ns1::color_t")));
|
||||||
|
|
||||||
|
REQUIRE_THAT(puml,
|
||||||
|
IsBaseClass(_A("thirdparty::ns1::E"),
|
||||||
|
_A("map<std::integral_constant<thirdparty::ns1::color_t,"
|
||||||
|
"thirdparty::ns1::color_t::red>>")));
|
||||||
|
|
||||||
save_puml(
|
save_puml(
|
||||||
"./" + config.output_directory() + "/" + diagram->name + ".puml", puml);
|
"./" + config.output_directory() + "/" + diagram->name + ".puml", puml);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user