Fixed link generation for template specializations

This commit is contained in:
Bartek Kryza
2023-12-10 11:54:52 +01:00
parent 85ffe2cdee
commit cea427e32d
12 changed files with 59 additions and 35 deletions

View File

@@ -33,7 +33,7 @@ generator::generator(diagram_config &config, diagram_model &model)
void generator::generate_link(
std::ostream &ostr, const class_diagram::model::class_element &e) const
{
if (e.file().empty())
if (e.file_relative().empty())
return;
auto context = element_context(e);

View File

@@ -269,10 +269,7 @@ std::unique_ptr<class_> template_builder::build(const clang::NamedDecl *cls,
template_instantiation.set_id(
common::to_id(template_instantiation_ptr->full_name(false)));
visitor_.set_source_location(*template_decl, template_instantiation);
LOG_DBG("**** {} -> {}", template_instantiation.full_name(false),
template_instantiation.file());
visitor_.set_source_location(*cls, template_instantiation);
return template_instantiation_ptr;
}
@@ -361,6 +358,8 @@ template_builder::build_from_class_template_specialization(
template_instantiation_ptr->full_name(false), templated_decl_id);
}
visitor_.set_source_location(*template_decl, template_instantiation);
return template_instantiation_ptr;
}
@@ -1064,8 +1063,7 @@ template_builder::try_as_template_specialization_type(
if (diagram().should_include(
namespace_{nested_template_instantiation_full_name})) {
visitor_.set_source_location(
*template_decl, *nested_template_instantiation);
visitor_.set_source_location(*cls, *nested_template_instantiation);
visitor_.add_class(std::move(nested_template_instantiation));
}

View File

@@ -264,6 +264,8 @@ bool translation_unit_visitor::VisitTypeAliasTemplateDecl(
LOG_DBG("Adding class {} with id {}", name, id);
set_source_location(*cls, *template_specialization_ptr);
add_class(std::move(template_specialization_ptr));
}