Fixed t00044

This commit is contained in:
Bartek Kryza
2023-04-05 00:22:29 +02:00
parent 75eaef3662
commit 425a13ec5b
7 changed files with 235 additions and 88 deletions

View File

@@ -124,17 +124,7 @@ bool class_::is_abstract() const
int class_::calculate_template_specialization_match(
const class_ &other, const std::string &full_name) const
{
int res{};
LOG_DBG("### Comparing {} with {}", this->full_name(false),
other.full_name(false));
if (this->full_name(false) ==
"clanguml::t00044::signal_handler<Ret(Args...),A>" &&
other.full_name(false) ==
"clanguml::t00044::signal_handler<void(int),bool>") {
LOG_DBG("AAAAAAAAA");
}
int res{0};
const std::string left = name_and_ns();
// TODO: handle variadic templates
@@ -143,27 +133,7 @@ int class_::calculate_template_specialization_match(
return res;
}
// Iterate over all template arguments
for (auto i = 0U; i < other.templates().size(); i++) {
const auto &template_arg = templates().at(i);
const auto &other_template_arg = other.templates().at(i);
if (template_arg == other_template_arg) {
res++;
}
else if (other_template_arg.is_specialization_of(template_arg)) {
if (template_arg.is_function_template() &&
other_template_arg.is_function_template()) {
res++;
}
continue;
}
else {
res = 0;
break;
}
}
return res;
return template_trait::calculate_template_specialization_match(
other, full_name);
}
} // namespace clanguml::class_diagram::model