Fixed handling of nested classes in relative namespaces
This commit is contained in:
@@ -70,7 +70,7 @@ public:
|
||||
|
||||
std::string full_name(bool relative = true) const override;
|
||||
|
||||
std::string full_name_no_ns() const;
|
||||
std::string full_name_no_ns() const override;
|
||||
|
||||
bool is_abstract() const;
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ bool translation_unit_visitor::VisitEnumDecl(clang::EnumDecl *enm)
|
||||
assert(parent_class);
|
||||
|
||||
e.set_namespace(ns);
|
||||
e.set_name(parent_class.value().full_name(true) + "##" +
|
||||
e.set_name(parent_class.value().full_name_no_ns() + "##" +
|
||||
enm->getNameAsString());
|
||||
e.set_id(common::to_id(e.full_name(false)));
|
||||
e.add_relationship({relationship_t::kContainment, *id_opt});
|
||||
@@ -462,19 +462,19 @@ std::unique_ptr<class_> translation_unit_visitor::create_class_declaration(
|
||||
const auto &[label, hint, access] =
|
||||
anonymous_struct_relationships_[cls->getID()];
|
||||
|
||||
c.set_name(parent_class.value().full_name(true) + "##" +
|
||||
c.set_name(parent_class.value().full_name_no_ns() + "##" +
|
||||
fmt::format("({})", label));
|
||||
|
||||
parent_class.value().add_relationship(
|
||||
{hint, common::to_id(c.full_name(false)), access, label});
|
||||
}
|
||||
else
|
||||
c.set_name(parent_class.value().full_name(true) + "##" +
|
||||
c.set_name(parent_class.value().full_name_no_ns() + "##" +
|
||||
fmt::format(
|
||||
"(anonymous_{})", std::to_string(cls->getID())));
|
||||
}
|
||||
else {
|
||||
c.set_name(parent_class.value().full_name(true) + "##" +
|
||||
c.set_name(parent_class.value().full_name_no_ns() + "##" +
|
||||
cls->getNameAsString());
|
||||
}
|
||||
|
||||
|
||||
@@ -60,6 +60,8 @@ public:
|
||||
return name_and_ns();
|
||||
}
|
||||
|
||||
virtual std::string full_name_no_ns() const { return name(); }
|
||||
|
||||
void set_using_namespaces(const namespace_ &un);
|
||||
|
||||
const namespace_ &using_namespace() const;
|
||||
|
||||
Reference in New Issue
Block a user