Fixed initial function template specialization sequence diagram test case

This commit is contained in:
Bartek Kryza
2022-11-05 13:52:54 +01:00
parent c94d1dea3f
commit 1dfade12f0
5 changed files with 155 additions and 79 deletions

View File

@@ -131,6 +131,38 @@ std::vector<std::string> diagram::get_translation_units(
return translation_units;
}
void diagram::initialize_type_aliases()
{
if (!type_aliases().count("std::basic_string<char>")) {
type_aliases().insert({"std::basic_string<char>", "std::string"});
}
if (!type_aliases().count("std::basic_string<char,std::char_traits<"
"char>,std::allocator<char>>")) {
type_aliases().insert({"std::basic_string<char,std::char_traits<"
"char>,std::allocator<char>>",
"std::string"});
}
if (!type_aliases().count("std::basic_string<wchar_t>")) {
type_aliases().insert({"std::basic_string<wchar_t>", "std::wstring"});
}
if (!type_aliases().count("std::basic_string<char16_t>")) {
type_aliases().insert(
{"std::basic_string<char16_t>", "std::u16string"});
}
if (!type_aliases().count("std::basic_string<char32_t>")) {
type_aliases().insert(
{"std::basic_string<char32_t>", "std::u32string"});
}
if (!type_aliases().count("std::integral_constant<bool,true>")) {
type_aliases().insert(
{"std::integral_constant<bool,true>", "std::true_type"});
}
if (!type_aliases().count("std::integral_constant<bool,false>")) {
type_aliases().insert(
{"std::integral_constant<bool,false>", "std::false_type"});
}
}
common::model::diagram_t class_diagram::type() const
{
return common::model::diagram_t::kClass;
@@ -179,38 +211,6 @@ void class_diagram::initialize_relationship_hints()
}
}
void class_diagram::initialize_type_aliases()
{
if (!type_aliases().count("std::basic_string<char>")) {
type_aliases().insert({"std::basic_string<char>", "std::string"});
}
if (!type_aliases().count("std::basic_string<char,std::char_traits<"
"char>,std::allocator<char>>")) {
type_aliases().insert({"std::basic_string<char,std::char_traits<"
"char>,std::allocator<char>>",
"std::string"});
}
if (!type_aliases().count("std::basic_string<wchar_t>")) {
type_aliases().insert({"std::basic_string<wchar_t>", "std::wstring"});
}
if (!type_aliases().count("std::basic_string<char16_t>")) {
type_aliases().insert(
{"std::basic_string<char16_t>", "std::u16string"});
}
if (!type_aliases().count("std::basic_string<char32_t>")) {
type_aliases().insert(
{"std::basic_string<char32_t>", "std::u32string"});
}
if (!type_aliases().count("std::integral_constant<bool,true>")) {
type_aliases().insert(
{"std::integral_constant<bool,true>", "std::true_type"});
}
if (!type_aliases().count("std::integral_constant<bool,false>")) {
type_aliases().insert(
{"std::integral_constant<bool,false>", "std::false_type"});
}
}
template <> void append_value<plantuml>(plantuml &l, const plantuml &r)
{
l.append(r);
@@ -590,6 +590,8 @@ template <> struct convert<sequence_diagram> {
get_option(node, rhs.start_from);
rhs.initialize_type_aliases();
return true;
}
};

View File

@@ -156,6 +156,8 @@ struct diagram : public inheritable_diagram_options {
std::vector<std::string> get_translation_units(
const std::filesystem::path &root_directory) const;
void initialize_type_aliases();
std::string name;
};
@@ -174,8 +176,6 @@ struct class_diagram : public diagram {
option<layout_hints> layout{"layout"};
void initialize_relationship_hints();
void initialize_type_aliases();
};
struct sequence_diagram : public diagram {