From da7870f50f138689510a477fe3c147192b36a05e Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Tue, 2 Jan 2024 23:17:32 +0100 Subject: [PATCH] Fixed clang-tidy warnings --- .clang-tidy | 4 ++ Makefile | 2 +- src/class_diagram/model/diagram.cc | 8 ++-- src/class_diagram/model/diagram.h | 11 ++--- src/class_diagram/visitor/template_builder.cc | 4 +- src/class_diagram/visitor/template_builder.h | 5 +- .../visitor/translation_unit_visitor.cc | 4 +- .../visitor/translation_unit_visitor.h | 2 +- src/cli/cli_handler.cc | 11 ++--- src/common/generators/generators.cc | 4 +- src/common/model/diagram.h | 7 +-- src/common/model/diagram_element.cc | 6 +-- src/common/model/diagram_element.h | 8 ++-- src/common/model/diagram_filter.cc | 4 +- src/common/model/element_view.h | 3 +- src/common/model/path.cc | 3 ++ src/common/visitor/ast_id_mapper.h | 2 +- .../visitor/translation_unit_visitor.cc | 4 +- src/common/visitor/translation_unit_visitor.h | 8 ++-- src/config/config.h | 1 - src/include_diagram/model/diagram.cc | 2 +- src/include_diagram/model/diagram.h | 7 ++- src/package_diagram/model/diagram.cc | 5 +- src/package_diagram/model/diagram.h | 12 ++--- .../visitor/translation_unit_visitor.cc | 14 +++--- .../visitor/translation_unit_visitor.h | 10 ++-- .../json/sequence_diagram_generator.cc | 46 +++++++++---------- .../json/sequence_diagram_generator.h | 6 +-- .../mermaid/sequence_diagram_generator.cc | 21 ++++----- .../mermaid/sequence_diagram_generator.h | 3 +- .../plantuml/sequence_diagram_generator.cc | 21 ++++----- .../plantuml/sequence_diagram_generator.h | 3 +- src/sequence_diagram/model/activity.cc | 4 +- src/sequence_diagram/model/activity.h | 6 +-- src/sequence_diagram/model/diagram.cc | 44 +++++++----------- src/sequence_diagram/model/diagram.h | 41 +++++++---------- src/sequence_diagram/model/message.cc | 11 ++--- src/sequence_diagram/model/message.h | 15 +++--- src/sequence_diagram/model/participant.cc | 4 +- src/sequence_diagram/model/participant.h | 6 +-- .../visitor/translation_unit_visitor.cc | 12 ++--- .../visitor/translation_unit_visitor.h | 16 +++---- src/util/query_driver_output_extractor.h | 4 +- 43 files changed, 188 insertions(+), 226 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index fb5be52a..9274a133 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -8,6 +8,7 @@ Checks: >- -bugprone-branch-clone, -bugprone-exception-escape, -bugprone-easily-swappable-parameters, + -bugprone-empty-catch, -clang-analyzer-alpha.*, -clang-analyzer-core.StackAddressEscape, -cppcoreguidelines-pro-bounds-array-to-pointer-decay, @@ -16,6 +17,8 @@ Checks: >- -cppcoreguidelines-special-member-functions, -cppcoreguidelines-avoid-magic-numbers, -cppcoreguidelines-non-private-member-variables-in-classes, + -cppcoreguidelines-missing-std-forward, + -cppcoreguidelines-avoid-const-or-ref-data-members, -cert-env33-c, -cert-err58-cpp, -cert-dcl58-cpp, @@ -34,6 +37,7 @@ Checks: >- -misc-no-recursion, -misc-non-private-member-variables-in-classes, -misc-const-correctness, + -misc-include-cleaner, -modernize-use-nodiscard, -modernize-use-trailing-return-type, -modernize-concat-nested-namespaces, diff --git a/Makefile b/Makefile index 3ab0d8f9..119b0cbf 100644 --- a/Makefile +++ b/Makefile @@ -155,7 +155,7 @@ format: .PHONY: debug_tidy tidy: debug_tidy - run-clang-tidy-15 -j $(NUMPROC) -p debug_tidy ./src + run-clang-tidy-15 -extra-arg=-Wno-unknown-warning-option -j $(NUMPROC) -p debug_tidy ./src .PHONY: check-formatting check-formatting: diff --git a/src/class_diagram/model/diagram.cc b/src/class_diagram/model/diagram.cc index 0831b830..58045da4 100644 --- a/src/class_diagram/model/diagram.cc +++ b/src/class_diagram/model/diagram.cc @@ -74,7 +74,7 @@ common::optional_ref diagram::get( } common::optional_ref diagram::get( - const clanguml::common::model::diagram_element::id_t id) const + const clanguml::common::id_t id) const { common::optional_ref res; @@ -149,8 +149,7 @@ void diagram::get_parents( } } -bool diagram::has_element( - clanguml::common::model::diagram_element::id_t id) const +bool diagram::has_element(clanguml::common::id_t id) const { const auto has_class = std::any_of(classes().begin(), classes().end(), [id](const auto &c) { return c.get().id() == id; }); @@ -168,8 +167,7 @@ bool diagram::has_element( [id](const auto &c) { return c.get().id() == id; }); } -std::string diagram::to_alias( - clanguml::common::model::diagram_element::id_t id) const +std::string diagram::to_alias(clanguml::common::id_t id) const { LOG_DBG("Looking for alias for {}", id); diff --git a/src/class_diagram/model/diagram.h b/src/class_diagram/model/diagram.h index 12906916..fb3f1f21 100644 --- a/src/class_diagram/model/diagram.h +++ b/src/class_diagram/model/diagram.h @@ -103,7 +103,7 @@ public: * @param id Element id. * @return Optional reference to a diagram element. */ - opt_ref get(diagram_element::id_t id) const override; + opt_ref get(common::id_t id) const override; /** * @brief Get list of references to classes in the diagram model. @@ -172,8 +172,7 @@ public: * @param id Id of the element * @return Optional reference to a diagram element */ - template - opt_ref find(diagram_element::id_t id) const; + template opt_ref find(common::id_t id) const; /** * @brief Get reference to vector of elements of specific type @@ -219,7 +218,7 @@ public: * @param id Id of the diagram element. * @return PlantUML alias. */ - std::string to_alias(diagram_element::id_t id) const; + std::string to_alias(common::id_t id) const; /** * @brief Given an initial set of classes, add all their parents to the @@ -236,7 +235,7 @@ public: * @param id Id of the element. * @return True, if diagram contains an element with a specific id. */ - bool has_element(diagram_element::id_t id) const override; + bool has_element(common::id_t id) const override; /** * @brief Remove redundant dependency relationships @@ -421,7 +420,7 @@ std::vector> diagram::find( } template -opt_ref diagram::find(diagram_element::id_t id) const +opt_ref diagram::find(common::id_t id) const { for (const auto &element : element_view::view()) { if (element.get().id() == id) { diff --git a/src/class_diagram/visitor/template_builder.cc b/src/class_diagram/visitor/template_builder.cc index 02de4b8c..51045b28 100644 --- a/src/class_diagram/visitor/template_builder.cc +++ b/src/class_diagram/visitor/template_builder.cc @@ -216,7 +216,7 @@ std::unique_ptr template_builder::build(const clang::NamedDecl *cls, std::string best_match_full_name{}; auto full_template_name = template_instantiation.full_name(false); int best_match{}; - common::model::diagram_element::id_t best_match_id{0}; + common::id_t best_match_id{0}; for (const auto templ : diagram().classes()) { if (templ.get() == template_instantiation) @@ -318,7 +318,7 @@ template_builder::build_from_class_template_specialization( std::string best_match_full_name{}; auto full_template_name = template_instantiation.full_name(false); int best_match{}; - common::model::diagram_element::id_t best_match_id{0}; + common::id_t best_match_id{0}; for (const auto templ : diagram().classes()) { if (templ.get() == template_instantiation) diff --git a/src/class_diagram/visitor/template_builder.h b/src/class_diagram/visitor/template_builder.h index 0ea8612b..5448e01a 100644 --- a/src/class_diagram/visitor/template_builder.h +++ b/src/class_diagram/visitor/template_builder.h @@ -30,9 +30,8 @@ using common::model::namespace_; using common::model::relationship_t; using common::model::template_parameter; -using found_relationships_t = - std::vector>; +using found_relationships_t = std::vector< + std::pair>; class translation_unit_visitor; diff --git a/src/class_diagram/visitor/translation_unit_visitor.cc b/src/class_diagram/visitor/translation_unit_visitor.cc index 907c742f..eb169f9e 100644 --- a/src/class_diagram/visitor/translation_unit_visitor.cc +++ b/src/class_diagram/visitor/translation_unit_visitor.cc @@ -116,7 +116,7 @@ bool translation_unit_visitor::VisitEnumDecl(clang::EnumDecl *enm) const auto *parent = enm->getParent(); - std::optional id_opt; + std::optional id_opt; if (parent != nullptr) { const auto *parent_record_decl = @@ -863,7 +863,7 @@ void translation_unit_visitor::process_record_parent( { const auto *parent = cls->getParent(); - std::optional id_opt; + std::optional id_opt; auto parent_ns = ns; if (parent != nullptr) { diff --git a/src/class_diagram/visitor/translation_unit_visitor.h b/src/class_diagram/visitor/translation_unit_visitor.h index addbe3ed..59be4f94 100644 --- a/src/class_diagram/visitor/translation_unit_visitor.h +++ b/src/class_diagram/visitor/translation_unit_visitor.h @@ -477,7 +477,7 @@ private: template_builder template_builder_; - std::map> forward_declarations_; diff --git a/src/cli/cli_handler.cc b/src/cli/cli_handler.cc index 7d65df61..2e671e39 100644 --- a/src/cli/cli_handler.cc +++ b/src/cli/cli_handler.cc @@ -384,14 +384,13 @@ runtime_config cli_handler::get_runtime_config() const cli_flow_t cli_handler::print_version() { - ostr_ << "clang-uml " << clanguml::version::CLANG_UML_VERSION << std::endl; - ostr_ << "Copyright (C) 2021-2023 Bartek Kryza " - << std::endl; - ostr_ << util::get_os_name() << std::endl; + ostr_ << "clang-uml " << clanguml::version::CLANG_UML_VERSION << '\n'; + ostr_ << "Copyright (C) 2021-2023 Bartek Kryza " << '\n'; + ostr_ << util::get_os_name() << '\n'; ostr_ << "Built against LLVM/Clang libraries version: " - << LLVM_VERSION_STRING << std::endl; + << LLVM_VERSION_STRING << '\n'; ostr_ << "Using LLVM/Clang libraries version: " - << clang::getClangFullVersion() << std::endl; + << clang::getClangFullVersion() << '\n'; return cli_flow_t::kExit; } diff --git a/src/common/generators/generators.cc b/src/common/generators/generators.cc index 657a3c98..b6ecd648 100644 --- a/src/common/generators/generators.cc +++ b/src/common/generators/generators.cc @@ -127,7 +127,7 @@ void generate_diagram_impl(const std::string &name, auto from_values = model->list_from_values(); for (const auto &from : from_values) { - std::cout << from << std::endl; + std::cout << from << '\n'; } return; @@ -136,7 +136,7 @@ void generate_diagram_impl(const std::string &name, auto to_values = model->list_to_values(); for (const auto &to : to_values) { - std::cout << "|" << to << "|" << std::endl; + std::cout << "|" << to << "|" << '\n'; } return; diff --git a/src/common/model/diagram.h b/src/common/model/diagram.h index 61b10bde..44015f93 100644 --- a/src/common/model/diagram.h +++ b/src/common/model/diagram.h @@ -65,7 +65,7 @@ public: * @return Optional reference to a diagram element. */ virtual common::optional_ref get( - diagram_element::id_t id) const = 0; + common::id_t id) const = 0; /** * Return optional reference to a diagram_element by name and namespace. @@ -152,10 +152,7 @@ public: // Disallow std::string overload bool should_include(const std::string &s) const = delete; - virtual bool has_element(const diagram_element::id_t /*id*/) const - { - return false; - } + virtual bool has_element(const common::id_t /*id*/) const { return false; } virtual bool should_include( const namespace_ &ns, const std::string &name) const; diff --git a/src/common/model/diagram_element.cc b/src/common/model/diagram_element.cc index 429dc2f2..96f603da 100644 --- a/src/common/model/diagram_element.cc +++ b/src/common/model/diagram_element.cc @@ -26,16 +26,16 @@ namespace clanguml::common::model { diagram_element::diagram_element() = default; -diagram_element::id_t diagram_element::id() const { return id_; } +common::id_t diagram_element::id() const { return id_; } -void diagram_element::set_id(diagram_element::id_t id) { id_ = id; } +void diagram_element::set_id(common::id_t id) { id_ = id; } std::optional diagram_element::parent_element_id() const { return parent_element_id_; } -void diagram_element::set_parent_element_id(diagram_element::id_t id) +void diagram_element::set_parent_element_id(common::id_t id) { parent_element_id_ = id; } diff --git a/src/common/model/diagram_element.h b/src/common/model/diagram_element.h index 179b6f0d..f3bb07ef 100644 --- a/src/common/model/diagram_element.h +++ b/src/common/model/diagram_element.h @@ -39,8 +39,6 @@ namespace clanguml::common::model { */ class diagram_element : public decorated_element, public source_location { public: - using id_t = int64_t; - diagram_element(); ~diagram_element() override = default; @@ -55,14 +53,14 @@ public: * * @return Elements id. */ - id_t id() const; + common::id_t id() const; /** * Set elements id. * * @param id Elements id. */ - void set_id(id_t id); + void set_id(common::id_t id); /** * Get elements parent package id. @@ -76,7 +74,7 @@ public: * * @param id Id of parent package. */ - void set_parent_element_id(diagram_element::id_t id); + void set_parent_element_id(id_t id); /** * @brief Return elements' diagram alias. diff --git a/src/common/model/diagram_filter.cc b/src/common/model/diagram_filter.cc index 3c0c9fd8..2104a2ed 100644 --- a/src/common/model/diagram_filter.cc +++ b/src/common/model/diagram_filter.cc @@ -595,8 +595,8 @@ tvl::value_t module_access_filter::match( access_.begin(), access_.end(), [&e](const auto &access) { if (access == module_access_t::kPublic) return !e.module_private(); - else - return e.module_private(); + + return e.module_private(); }); } diff --git a/src/common/model/element_view.h b/src/common/model/element_view.h index 8d34f0a4..0c2a6b5a 100644 --- a/src/common/model/element_view.h +++ b/src/common/model/element_view.h @@ -58,8 +58,7 @@ public: * * @return */ - common::optional_ref get( - clanguml::common::model::diagram_element::id_t id) const + common::optional_ref get(clanguml::common::id_t id) const { for (const auto &e : elements_) { if (e.get().id() == id) { diff --git a/src/common/model/path.cc b/src/common/model/path.cc index fd642da0..6738d3e4 100644 --- a/src/common/model/path.cc +++ b/src/common/model/path.cc @@ -29,6 +29,9 @@ std::string to_string(const path_type pt) return "namespace"; case path_type::kFilesystem: return "directory"; + default: + assert(false); + return ""; } } diff --git a/src/common/visitor/ast_id_mapper.h b/src/common/visitor/ast_id_mapper.h index 033c064a..cb5e1374 100644 --- a/src/common/visitor/ast_id_mapper.h +++ b/src/common/visitor/ast_id_mapper.h @@ -40,7 +40,7 @@ namespace clanguml::common::visitor { */ class ast_id_mapper { public: - using id_t = common::model::diagram_element::id_t; + using id_t = common::id_t; ast_id_mapper() = default; diff --git a/src/common/visitor/translation_unit_visitor.cc b/src/common/visitor/translation_unit_visitor.cc index 8c4212e7..6bde7023 100644 --- a/src/common/visitor/translation_unit_visitor.cc +++ b/src/common/visitor/translation_unit_visitor.cc @@ -20,8 +20,10 @@ #include "comment/clang_visitor.h" #include "comment/plain_visitor.h" +#include "common/clang_utils.h" -#include "clang/Basic/Module.h" +#include +#include namespace clanguml::common::visitor { diff --git a/src/common/visitor/translation_unit_visitor.h b/src/common/visitor/translation_unit_visitor.h index 9021dc95..b8e834f2 100644 --- a/src/common/visitor/translation_unit_visitor.h +++ b/src/common/visitor/translation_unit_visitor.h @@ -18,9 +18,12 @@ #pragma once #include "comment/comment_visitor.h" +#include "common/model/element.h" +#include "common/model/source_location.h" #include "config/config.h" #include +#include #include #include @@ -31,9 +34,8 @@ namespace clanguml::common::visitor { -using found_relationships_t = - std::vector>; +using found_relationships_t = std::vector< + std::pair>; /** * @brief Diagram translation unit visitor base class diff --git a/src/config/config.h b/src/config/config.h index 22a1da17..32c13194 100644 --- a/src/config/config.h +++ b/src/config/config.h @@ -17,7 +17,6 @@ */ #pragma once -#include "class_diagram/model/diagram.h" #include "common/model/enums.h" #include "common/types.h" #include "option.h" diff --git a/src/include_diagram/model/diagram.cc b/src/include_diagram/model/diagram.cc index d21a9f56..8be81e5d 100644 --- a/src/include_diagram/model/diagram.cc +++ b/src/include_diagram/model/diagram.cc @@ -35,7 +35,7 @@ common::optional_ref diagram::get( } common::optional_ref diagram::get( - const common::model::diagram_element::id_t id) const + const common::id_t id) const { return find(id); } diff --git a/src/include_diagram/model/diagram.h b/src/include_diagram/model/diagram.h index 44bbc996..0874c217 100644 --- a/src/include_diagram/model/diagram.h +++ b/src/include_diagram/model/diagram.h @@ -68,7 +68,7 @@ public: * @param id Element id. * @return Optional reference to a diagram element. */ - opt_ref get(diagram_element::id_t id) const override; + opt_ref get(common::id_t id) const override; /** * @brief Add include diagram element, an include file. @@ -100,8 +100,7 @@ public: * @param id Id of the element * @return Optional reference to a diagram element */ - template - opt_ref find(diagram_element::id_t id) const; + template opt_ref find(common::id_t id) const; /** * @brief Convert element id to PlantUML alias. @@ -153,7 +152,7 @@ opt_ref diagram::find(const std::string &name) const } template -opt_ref diagram::find(diagram_element::id_t id) const +opt_ref diagram::find(common::id_t id) const { for (const auto &element : element_view::view()) { if (element.get().id() == id) { diff --git a/src/package_diagram/model/diagram.cc b/src/package_diagram/model/diagram.cc index f6e2d45c..8dec8b17 100644 --- a/src/package_diagram/model/diagram.cc +++ b/src/package_diagram/model/diagram.cc @@ -41,13 +41,12 @@ common::optional_ref diagram::get( } common::optional_ref diagram::get( - const clanguml::common::model::diagram_element::id_t id) const + const clanguml::common::id_t id) const { return find(id); } -std::string diagram::to_alias( - const clanguml::common::model::diagram_element::id_t id) const +std::string diagram::to_alias(const clanguml::common::id_t id) const { LOG_DBG("Looking for alias for {}", id); diff --git a/src/package_diagram/model/diagram.h b/src/package_diagram/model/diagram.h index 0215ae56..5851139c 100644 --- a/src/package_diagram/model/diagram.h +++ b/src/package_diagram/model/diagram.h @@ -75,7 +75,7 @@ public: * @param id Element id. * @return Optional reference to a diagram element. */ - opt_ref get(diagram_element::id_t id) const override; + opt_ref get(common::id_t id) const override; /** * @brief Find an element in the diagram by name. @@ -100,8 +100,7 @@ public: * @param id Id of the element * @return Optional reference to a diagram element */ - template - opt_ref find(diagram_element::id_t id) const; + template opt_ref find(common::id_t id) const; /** * @brief Find elements in the diagram by regex pattern. @@ -135,7 +134,8 @@ public: if (parent_path.type() == common::model::path_type::kNamespace) { return add_with_namespace_path(std::move(e)); } - else if (parent_path.type() == common::model::path_type::kModule) { + + if (parent_path.type() == common::model::path_type::kModule) { return add_with_module_path(parent_path, std::move(e)); } @@ -148,7 +148,7 @@ public: * @param id Id of a package in the diagram * @return PlantUML alias of the element */ - std::string to_alias(diagram_element::id_t id) const; + std::string to_alias(common::id_t id) const; /** * @brief Return the elements JSON context for inja templates. @@ -207,7 +207,7 @@ opt_ref diagram::find(const std::string &name) const } template -opt_ref diagram::find(diagram_element::id_t id) const +opt_ref diagram::find(common::id_t id) const { for (const auto &element : element_view::view()) { if (element.get().id() == id) { diff --git a/src/package_diagram/visitor/translation_unit_visitor.cc b/src/package_diagram/visitor/translation_unit_visitor.cc index 9d00d7ca..c2a68883 100644 --- a/src/package_diagram/visitor/translation_unit_visitor.cc +++ b/src/package_diagram/visitor/translation_unit_visitor.cc @@ -287,7 +287,7 @@ void translation_unit_visitor::add_relationships( auto current_package = diagram().get(current_package_id); if (current_package) { - std::vector parent_ids = + std::vector parent_ids = get_parent_package_ids(current_package_id); for (const auto &dependency : relationships) { @@ -310,8 +310,7 @@ void translation_unit_visitor::add_relationships( } } -common::model::diagram_element::id_t translation_unit_visitor::get_package_id( - const clang::Decl *cls) +common::id_t translation_unit_visitor::get_package_id(const clang::Decl *cls) { if (config().package_type() == config::package_type_t::kNamespace) { const auto *namespace_context = @@ -680,12 +679,11 @@ translation_unit_visitor::config() const void translation_unit_visitor::finalize() { } -std::vector -translation_unit_visitor::get_parent_package_ids( - common::model::diagram_element::id_t id) +std::vector translation_unit_visitor::get_parent_package_ids( + common::id_t id) { - std::vector parent_ids; - std::optional parent_id = id; + std::vector parent_ids; + std::optional parent_id = id; while (parent_id.has_value()) { parent_ids.push_back(parent_id.value()); diff --git a/src/package_diagram/visitor/translation_unit_visitor.h b/src/package_diagram/visitor/translation_unit_visitor.h index 239ae924..ec671a85 100644 --- a/src/package_diagram/visitor/translation_unit_visitor.h +++ b/src/package_diagram/visitor/translation_unit_visitor.h @@ -33,9 +33,8 @@ namespace clanguml::package_diagram::visitor { -using found_relationships_t = - std::vector>; +using found_relationships_t = std::vector< + std::pair>; /** * @brief Package diagram translation unit visitor @@ -109,7 +108,7 @@ private: * @param cls C++ entity declaration * @return Id of the package containing that declaration */ - common::model::diagram_element::id_t get_package_id(const clang::Decl *cls); + common::id_t get_package_id(const clang::Decl *cls); /** * @brief Process class declaration @@ -214,8 +213,7 @@ private: void add_relationships( clang::Decl *cls, found_relationships_t &relationships); - std::vector get_parent_package_ids( - common::model::diagram_element::id_t id); + std::vector get_parent_package_ids(common::id_t id); // Reference to the output diagram model clanguml::package_diagram::model::diagram &diagram_; diff --git a/src/sequence_diagram/generators/json/sequence_diagram_generator.cc b/src/sequence_diagram/generators/json/sequence_diagram_generator.cc index 642cc98b..39c05f75 100644 --- a/src/sequence_diagram/generators/json/sequence_diagram_generator.cc +++ b/src/sequence_diagram/generators/json/sequence_diagram_generator.cc @@ -170,8 +170,8 @@ void generator::generate_call(const message &m, nlohmann::json &parent) const m.from(), to, m.to()); } -void generator::generate_activity(const activity &a, - std::vector &visited) const +void generator::generate_activity( + const activity &a, std::vector &visited) const { // Generate calls from this activity to other activities for (const auto &m : a.messages()) { @@ -247,8 +247,8 @@ nlohmann::json &generator::current_block_statement() const return block_statements_stack_.back().get(); } -void generator::process_call_message(const model::message &m, - std::vector &visited) const +void generator::process_call_message( + const model::message &m, std::vector &visited) const { visited.push_back(m.from()); @@ -523,7 +523,7 @@ void generator::generate_participant( } common::id_t generator::generate_participant( - nlohmann::json &parent, common::id_t id, bool force) const + nlohmann::json & /*parent*/, common::id_t id, bool force) const { common::id_t participant_id{0}; @@ -570,14 +570,13 @@ common::id_t generator::generate_participant( return class_participant_id; } - else { - if (!is_participant_generated(participant_id)) { - for (auto &p : json_["participants"]) { - if (p.at("id") == std::to_string(class_participant_id)) { - generated_participants_.emplace(participant_id); - p["activities"].push_back(participant); - return class_participant_id; - } + + if (!is_participant_generated(participant_id)) { + for (auto &p : json_["participants"]) { + if (p.at("id") == std::to_string(class_participant_id)) { + generated_participants_.emplace(participant_id); + p["activities"].push_back(participant); + return class_participant_id; } } } @@ -619,17 +618,17 @@ common::id_t generator::generate_participant( return file_participant_id; } - else { - if (!is_participant_generated(participant_id)) { - for (auto &p : json_["participants"]) { - if (p.at("id") == std::to_string(file_participant_id)) { - generated_participants_.emplace(participant_id); - p["activities"].push_back(participant); - } + + if (!is_participant_generated(participant_id)) { + for (auto &p : json_["participants"]) { + if (p.at("id") == std::to_string(file_participant_id)) { + generated_participants_.emplace(participant_id); + p["activities"].push_back(participant); } } - return file_participant_id; } + + return file_participant_id; } else { json_["participants"].push_back(participant); @@ -745,7 +744,7 @@ void generator::generate_diagram(nlohmann::json &parent) const for (const auto &sf : config().from()) { if (sf.location_type == location_t::function) { - common::model::diagram_element::id_t start_from{0}; + common::id_t start_from{0}; std::string start_from_str; for (const auto &[k, v] : model().sequences()) { const auto &caller = *model().participants().at(v.from()); @@ -765,8 +764,7 @@ void generator::generate_diagram(nlohmann::json &parent) const } // Use this to break out of recurrent loops - std::vector - visited_participants; + std::vector visited_participants; const auto &from = model().get_participant(start_from); diff --git a/src/sequence_diagram/generators/json/sequence_diagram_generator.h b/src/sequence_diagram/generators/json/sequence_diagram_generator.h index ff90f721..e787c572 100644 --- a/src/sequence_diagram/generators/json/sequence_diagram_generator.h +++ b/src/sequence_diagram/generators/json/sequence_diagram_generator.h @@ -99,7 +99,7 @@ public: * for breaking infinite recursion on recursive calls */ void generate_activity(const sequence_diagram::model::activity &a, - std::vector &visited) const; + std::vector &visited) const; /** * @brief Get reference to the current block statement. @@ -126,8 +126,8 @@ private: * @param m Message model * @param visited List of already visited participants */ - void process_call_message(const model::message &m, - std::vector &visited) const; + void process_call_message( + const model::message &m, std::vector &visited) const; /** * @brief Process `if` statement message diff --git a/src/sequence_diagram/generators/mermaid/sequence_diagram_generator.cc b/src/sequence_diagram/generators/mermaid/sequence_diagram_generator.cc index 059fa526..a2f25ee3 100644 --- a/src/sequence_diagram/generators/mermaid/sequence_diagram_generator.cc +++ b/src/sequence_diagram/generators/mermaid/sequence_diagram_generator.cc @@ -180,7 +180,7 @@ void generator::generate_return(const message &m, std::ostream &ostr) const } void generator::generate_activity(const activity &a, std::ostream &ostr, - std::vector &visited) const + std::vector &visited) const { for (const auto &m : a.messages()) { if (m.in_static_declaration_context()) { @@ -202,7 +202,7 @@ void generator::generate_activity(const activity &a, std::ostream &ostr, std::string to_alias = generate_alias(to.value()); - ostr << indent(1) << "activate " << to_alias << std::endl; + ostr << indent(1) << "activate " << to_alias << '\n'; if (model().sequences().find(m.to()) != model().sequences().end()) { if (std::find(visited.begin(), visited.end(), m.to()) == @@ -220,7 +220,7 @@ void generator::generate_activity(const activity &a, std::ostream &ostr, generate_return(m, ostr); - ostr << indent(1) << "deactivate " << to_alias << std::endl; + ostr << indent(1) << "deactivate " << to_alias << '\n'; visited.pop_back(); } @@ -495,7 +495,7 @@ void generator::generate_diagram(std::ostream &ostr) const << " " << generate_alias(from.value()) << " : " << from.value().message_name( select_method_arguments_render_mode()) - << std::endl; + << '\n'; } for (const auto &m : mc) { @@ -528,7 +528,7 @@ void generator::generate_diagram(std::ostream &ostr) const << " " << generate_alias(from.value()) << " : " << from.value().message_name( select_method_arguments_render_mode()) - << std::endl; + << '\n'; } for (const auto &m : mc) { @@ -539,7 +539,7 @@ void generator::generate_diagram(std::ostream &ostr) const for (const auto &sf : config().from()) { if (sf.location_type == location_t::function) { - common::model::diagram_element::id_t start_from{0}; + common::id_t start_from{0}; for (const auto &[k, v] : model().sequences()) { const auto &caller = *model().participants().at(v.from()); std::string vfrom = caller.full_name(false); @@ -558,8 +558,7 @@ void generator::generate_diagram(std::ostream &ostr) const } // Use this to break out of recurrent loops - std::vector - visited_participants; + std::vector visited_participants; const auto &from = model().get_participant(start_from); @@ -588,10 +587,10 @@ void generator::generate_diagram(std::ostream &ostr) const << common::generators::mermaid::to_mermaid( message_t::kCall) << " " << from_alias << " : " - << from.value().message_name(render_mode) << std::endl; + << from.value().message_name(render_mode) << '\n'; } - ostr << indent(1) << "activate " << from_alias << std::endl; + ostr << indent(1) << "activate " << from_alias << '\n'; generate_activity( model().get_activity(start_from), ostr, visited_participants); @@ -613,7 +612,7 @@ void generator::generate_diagram(std::ostream &ostr) const } } - ostr << indent(1) << "deactivate " << from_alias << std::endl; + ostr << indent(1) << "deactivate " << from_alias << '\n'; } else { // TODO: Add support for other sequence start location types diff --git a/src/sequence_diagram/generators/mermaid/sequence_diagram_generator.h b/src/sequence_diagram/generators/mermaid/sequence_diagram_generator.h index ef7f60f3..6aaef53e 100644 --- a/src/sequence_diagram/generators/mermaid/sequence_diagram_generator.h +++ b/src/sequence_diagram/generators/mermaid/sequence_diagram_generator.h @@ -117,8 +117,7 @@ public: * for breaking infinite recursion on recursive calls */ void generate_activity(const clanguml::sequence_diagram::model::activity &a, - std::ostream &ostr, - std::vector &visited) const; + std::ostream &ostr, std::vector &visited) const; private: /** diff --git a/src/sequence_diagram/generators/plantuml/sequence_diagram_generator.cc b/src/sequence_diagram/generators/plantuml/sequence_diagram_generator.cc index 30b28d85..20623b22 100644 --- a/src/sequence_diagram/generators/plantuml/sequence_diagram_generator.cc +++ b/src/sequence_diagram/generators/plantuml/sequence_diagram_generator.cc @@ -134,7 +134,7 @@ void generator::generate_return(const message &m, std::ostream &ostr) const } void generator::generate_activity(const activity &a, std::ostream &ostr, - std::vector &visited) const + std::vector &visited) const { for (const auto &m : a.messages()) { if (m.in_static_declaration_context()) { @@ -156,7 +156,7 @@ void generator::generate_activity(const activity &a, std::ostream &ostr, std::string to_alias = generate_alias(to.value()); - ostr << "activate " << to_alias << std::endl; + ostr << "activate " << to_alias << '\n'; if (model().sequences().find(m.to()) != model().sequences().end()) { if (std::find(visited.begin(), visited.end(), m.to()) == @@ -174,7 +174,7 @@ void generator::generate_activity(const activity &a, std::ostream &ostr, generate_return(m, ostr); - ostr << "deactivate " << to_alias << std::endl; + ostr << "deactivate " << to_alias << '\n'; visited.pop_back(); } @@ -498,7 +498,7 @@ void generator::generate_diagram(std::ostream &ostr) const << " " << generate_alias(from.value()) << " : " << from.value().message_name( select_method_arguments_render_mode()) - << std::endl; + << '\n'; } for (const auto &m : mc) { @@ -535,7 +535,7 @@ void generator::generate_diagram(std::ostream &ostr) const << " " << generate_alias(from.value()) << " : " << from.value().message_name( select_method_arguments_render_mode()) - << std::endl; + << '\n'; } for (const auto &m : mc) { @@ -546,7 +546,7 @@ void generator::generate_diagram(std::ostream &ostr) const for (const auto &sf : config().from()) { if (sf.location_type == location_t::function) { - common::model::diagram_element::id_t start_from{0}; + common::id_t start_from{0}; for (const auto &[k, v] : model().sequences()) { const auto &caller = *model().participants().at(v.from()); std::string vfrom = caller.full_name(false); @@ -565,8 +565,7 @@ void generator::generate_diagram(std::ostream &ostr) const } // Use this to break out of recurrent loops - std::vector - visited_participants; + std::vector visited_participants; const auto &from = model().get_participant(start_from); @@ -593,10 +592,10 @@ void generator::generate_diagram(std::ostream &ostr) const config().combine_free_functions_into_file_participants()) { ostr << "[->" << " " << from_alias << " : " - << from.value().message_name(render_mode) << std::endl; + << from.value().message_name(render_mode) << '\n'; } - ostr << "activate " << from_alias << std::endl; + ostr << "activate " << from_alias << '\n'; generate_activity( model().get_activity(start_from), ostr, visited_participants); @@ -615,7 +614,7 @@ void generator::generate_diagram(std::ostream &ostr) const } } - ostr << "deactivate " << from_alias << std::endl; + ostr << "deactivate " << from_alias << '\n'; } else { // TODO: Add support for other sequence start location types diff --git a/src/sequence_diagram/generators/plantuml/sequence_diagram_generator.h b/src/sequence_diagram/generators/plantuml/sequence_diagram_generator.h index 35dc31ba..6adfb14d 100644 --- a/src/sequence_diagram/generators/plantuml/sequence_diagram_generator.h +++ b/src/sequence_diagram/generators/plantuml/sequence_diagram_generator.h @@ -111,8 +111,7 @@ public: * for breaking infinite recursion on recursive calls */ void generate_activity(const clanguml::sequence_diagram::model::activity &a, - std::ostream &ostr, - std::vector &visited) const; + std::ostream &ostr, std::vector &visited) const; private: /** diff --git a/src/sequence_diagram/model/activity.cc b/src/sequence_diagram/model/activity.cc index 31313e84..a5cbcdca 100644 --- a/src/sequence_diagram/model/activity.cc +++ b/src/sequence_diagram/model/activity.cc @@ -20,7 +20,7 @@ namespace clanguml::sequence_diagram::model { -activity::activity(common::model::diagram_element::id_t id) +activity::activity(common::id_t id) : from_{id} { } @@ -31,6 +31,6 @@ std::vector &activity::messages() { return messages_; } const std::vector &activity::messages() const { return messages_; } -common::model::diagram_element::id_t activity::from() const { return from_; } +common::id_t activity::from() const { return from_; } } // namespace clanguml::sequence_diagram::model diff --git a/src/sequence_diagram/model/activity.h b/src/sequence_diagram/model/activity.h index 404b09b4..241b929a 100644 --- a/src/sequence_diagram/model/activity.h +++ b/src/sequence_diagram/model/activity.h @@ -35,7 +35,7 @@ public: * * @param id Id of the participant parent for the activity */ - activity(common::model::diagram_element::id_t id); + activity(common::id_t id); /** * @brief Add a message call to the activity @@ -63,10 +63,10 @@ public: * * @return Id of activity participant */ - common::model::diagram_element::id_t from() const; + common::id_t from() const; private: - common::model::diagram_element::id_t from_; + common::id_t from_; std::vector messages_; }; diff --git a/src/sequence_diagram/model/diagram.cc b/src/sequence_diagram/model/diagram.cc index 26215680..c6dd17c2 100644 --- a/src/sequence_diagram/model/diagram.cc +++ b/src/sequence_diagram/model/diagram.cc @@ -42,7 +42,7 @@ common::optional_ref diagram::get( } common::optional_ref diagram::get( - const common::model::diagram_element::id_t id) const + const common::id_t id) const { if (participants_.find(id) != participants_.end()) return {*participants_.at(id)}; @@ -88,21 +88,17 @@ void diagram::add_participant(std::unique_ptr p) } } -void diagram::add_active_participant(common::model::diagram_element::id_t id) +void diagram::add_active_participant(common::id_t id) { active_participants_.emplace(id); } -const activity &diagram::get_activity( - common::model::diagram_element::id_t id) const +const activity &diagram::get_activity(common::id_t id) const { return sequences_.at(id); } -activity &diagram::get_activity(common::model::diagram_element::id_t id) -{ - return sequences_.at(id); -} +activity &diagram::get_activity(common::id_t id) { return sequences_.at(id); } void diagram::add_message(model::message &&message) { @@ -150,37 +146,30 @@ void diagram::add_case_stmt_message(model::message &&m) } } -std::map &diagram::sequences() +std::map &diagram::sequences() { return sequences_; } + +const std::map &diagram::sequences() const { return sequences_; } -const std::map & -diagram::sequences() const -{ - return sequences_; -} - -std::map> & -diagram::participants() +std::map> &diagram::participants() { return participants_; } -const std::map> & +const std::map> & diagram::participants() const { return participants_; } -std::set &diagram::active_participants() +std::set &diagram::active_participants() { return active_participants_; } -const std::set & -diagram::active_participants() const +const std::set &diagram::active_participants() const { return active_participants_; } @@ -232,10 +221,10 @@ std::vector diagram::list_to_values() const return result; } -common::model::diagram_element::id_t diagram::get_to_activity_id( +common::id_t diagram::get_to_activity_id( const config::source_location &to_location) const { - common::model::diagram_element::id_t to_activity{0}; + common::id_t to_activity{0}; for (const auto &[k, v] : sequences()) { for (const auto &m : v.messages()) { @@ -261,10 +250,10 @@ common::model::diagram_element::id_t diagram::get_to_activity_id( return to_activity; } -common::model::diagram_element::id_t diagram::get_from_activity_id( +common::id_t diagram::get_from_activity_id( const config::source_location &from_location) const { - common::model::diagram_element::id_t from_activity{0}; + common::id_t from_activity{0}; for (const auto &[k, v] : sequences()) { const auto &caller = *participants().at(v.from()); @@ -286,8 +275,7 @@ common::model::diagram_element::id_t diagram::get_from_activity_id( } std::vector diagram::get_all_from_to_message_chains( - const common::model::diagram_element::id_t from_activity, - const common::model::diagram_element::id_t to_activity) const + const common::id_t from_activity, const common::id_t to_activity) const { std::vector message_chains_unique{}; diff --git a/src/sequence_diagram/model/diagram.h b/src/sequence_diagram/model/diagram.h index 4c58e5e1..13192809 100644 --- a/src/sequence_diagram/model/diagram.h +++ b/src/sequence_diagram/model/diagram.h @@ -67,7 +67,7 @@ public: * @return Optional reference to a diagram element. */ common::optional_ref get( - common::model::diagram_element::id_t id) const override; + common::id_t id) const override; /** * @brief Get participant by id @@ -76,8 +76,7 @@ public: * @return Optional reference to a diagram element. */ template - common::optional_ref get_participant( - common::model::diagram_element::id_t id) const + common::optional_ref get_participant(common::id_t id) const { if (participants_.find(id) == participants_.end()) { return {}; @@ -99,7 +98,7 @@ public: * * @param id Id of participant to activate */ - void add_active_participant(common::model::diagram_element::id_t id); + void add_active_participant(common::id_t id); /** * @brief Get reference to current activity of a participant @@ -107,7 +106,7 @@ public: * @param id Participant id * @return */ - const activity &get_activity(common::model::diagram_element::id_t id) const; + const activity &get_activity(common::id_t id) const; /** * @brief Get reference to current activity of a participant @@ -115,7 +114,7 @@ public: * @param id Participant id * @return */ - activity &get_activity(common::model::diagram_element::id_t id); + activity &get_activity(common::id_t id); /** * @brief Add message to current activity @@ -156,31 +155,28 @@ public: * * @return Map of sequences in the diagram */ - std::map &sequences(); + std::map &sequences(); /** * @brief Get all sequences in the diagram * * @return Map of sequences in the diagram */ - const std::map & - sequences() const; + const std::map &sequences() const; /** * @brief Get map of all participants in the diagram * * @return Map of participants in the diagram */ - std::map> - &participants(); + std::map> &participants(); /** * @brief Get map of all participants in the diagram * * @return Map of participants in the diagram */ - const std::map> & + const std::map> & participants() const; /** @@ -188,15 +184,14 @@ public: * * @return Set of all active participant ids */ - std::set &active_participants(); + std::set &active_participants(); /** * @brief Get all active participants in the diagram * * @return Set of all active participant ids */ - const std::set & - active_participants() const; + const std::set &active_participants() const; /** * @brief Convert element full name to PlantUML alias. @@ -256,8 +251,7 @@ public: * @return List of message chains */ std::vector get_all_from_to_message_chains( - common::model::diagram_element::id_t from_activity, - common::model::diagram_element::id_t to_activity) const; + common::id_t from_activity, common::id_t to_activity) const; /** * @brief Get id of a 'to' activity @@ -265,7 +259,7 @@ public: * @param to_location Target activity * @return Activity id */ - common::model::diagram_element::id_t get_to_activity_id( + common::id_t get_to_activity_id( const config::source_location &to_location) const; /** @@ -274,7 +268,7 @@ public: * @param from_location Source activity * @return Activity id */ - common::model::diagram_element::id_t get_from_activity_id( + common::id_t get_from_activity_id( const config::source_location &from_location) const; /** @@ -328,12 +322,11 @@ private: return block_end_types.count(mt) > 0; }; - std::map sequences_; + std::map sequences_; - std::map> - participants_; + std::map> participants_; - std::set active_participants_; + std::set active_participants_; }; } // namespace clanguml::sequence_diagram::model diff --git a/src/sequence_diagram/model/message.cc b/src/sequence_diagram/model/message.cc index 54c7235c..0ec92fec 100644 --- a/src/sequence_diagram/model/message.cc +++ b/src/sequence_diagram/model/message.cc @@ -20,8 +20,7 @@ namespace clanguml::sequence_diagram::model { -message::message( - common::model::message_t type, common::model::diagram_element::id_t from) +message::message(common::model::message_t type, common::id_t from) : type_{type} , from_{from} { @@ -39,13 +38,13 @@ void message::set_type(common::model::message_t t) { type_ = t; } common::model::message_t message::type() const { return type_; } -void message::set_from(common::model::diagram_element::id_t f) { from_ = f; } +void message::set_from(common::id_t f) { from_ = f; } -common::model::diagram_element::id_t message::from() const { return from_; } +common::id_t message::from() const { return from_; } -void message::set_to(common::model::diagram_element::id_t t) { to_ = t; } +void message::set_to(common::id_t t) { to_ = t; } -common::model::diagram_element::id_t message::to() const { return to_; } +common::id_t message::to() const { return to_; } void message::set_message_name(std::string name) { diff --git a/src/sequence_diagram/model/message.h b/src/sequence_diagram/model/message.h index 1ca7a145..c59563a4 100644 --- a/src/sequence_diagram/model/message.h +++ b/src/sequence_diagram/model/message.h @@ -38,8 +38,7 @@ public: * @param type Message type * @param from Id of originating sequence */ - message(common::model::message_t type, - common::model::diagram_element::id_t from); + message(common::model::message_t type, common::id_t from); /** * @brief Equality operator @@ -68,28 +67,28 @@ public: * * @param f Id of the participant from which message originates */ - void set_from(common::model::diagram_element::id_t f); + void set_from(common::id_t f); /** * @brief Get the id of source of message * * @return */ - common::model::diagram_element::id_t from() const; + common::id_t from() const; /** * @brief Set the id of the message target * * @param t Id of the message target */ - void set_to(common::model::diagram_element::id_t t); + void set_to(common::id_t t); /** * @brief Get the id of the message target * * @return Id of the message target */ - common::model::diagram_element::id_t to() const; + common::id_t to() const; /** * @brief Set the message label @@ -163,9 +162,9 @@ public: private: common::model::message_t type_{common::model::message_t::kNone}; - common::model::diagram_element::id_t from_{}; + common::id_t from_{}; - common::model::diagram_element::id_t to_{}; + common::id_t to_{}; common::model::message_scope_t scope_{ common::model::message_scope_t::kNormal}; diff --git a/src/sequence_diagram/model/participant.cc b/src/sequence_diagram/model/participant.cc index 6024fb75..6807d34e 100644 --- a/src/sequence_diagram/model/participant.cc +++ b/src/sequence_diagram/model/participant.cc @@ -189,7 +189,7 @@ void method::is_assignment(bool a) { is_assignment_ = a; } void method::set_method_name(const std::string &name) { method_name_ = name; } -void method::set_class_id(diagram_element::id_t id) { class_id_ = id; } +void method::set_class_id(common::id_t id) { class_id_ = id; } void method::set_class_full_name(const std::string &name) { @@ -230,7 +230,7 @@ std::string method::message_name(message_render_mode mode) const fmt::join(parameters(), ","), is_const() ? " const" : "", style); } -class_::diagram_element::id_t method::class_id() const { return class_id_; } +common::id_t method::class_id() const { return class_id_; } std::string method::to_string() const { diff --git a/src/sequence_diagram/model/participant.h b/src/sequence_diagram/model/participant.h index c738068d..c26bd3c4 100644 --- a/src/sequence_diagram/model/participant.h +++ b/src/sequence_diagram/model/participant.h @@ -384,7 +384,7 @@ struct method : public function { * * @param id Id of the class to which this method belongs to */ - void set_class_id(diagram_element::id_t id); + void set_class_id(common::id_t id); /** * @brief Set full qualified name of the class @@ -414,7 +414,7 @@ struct method : public function { * * @return Class id */ - diagram_element::id_t class_id() const; + common::id_t class_id() const; /** * @brief Create a string representation of the participant @@ -466,7 +466,7 @@ struct method : public function { void is_assignment(bool a); private: - diagram_element::id_t class_id_{}; + common::id_t class_id_{}; std::string method_name_; std::string class_full_name_; bool is_constructor_{false}; diff --git a/src/sequence_diagram/visitor/translation_unit_visitor.cc b/src/sequence_diagram/visitor/translation_unit_visitor.cc index 0a82c0c8..9f1e7a77 100644 --- a/src/sequence_diagram/visitor/translation_unit_visitor.cc +++ b/src/sequence_diagram/visitor/translation_unit_visitor.cc @@ -1454,7 +1454,7 @@ translation_unit_visitor::create_class_model(clang::CXXRecordDecl *cls) // Here we have 2 options, either: // - the parent is a regular C++ class/struct // - the parent is a class template declaration/specialization - std::optional id_opt; + std::optional id_opt; const auto *parent_record_decl = clang::dyn_cast(parent); @@ -1626,15 +1626,15 @@ bool translation_unit_visitor::process_template_parameters( } void translation_unit_visitor::set_unique_id( - int64_t local_id, common::model::diagram_element::id_t global_id) + int64_t local_id, common::id_t global_id) { LOG_TRACE("Setting local element mapping {} --> {}", local_id, global_id); local_ast_id_map_[local_id] = global_id; } -std::optional -translation_unit_visitor::get_unique_id(int64_t local_id) const +std::optional translation_unit_visitor::get_unique_id( + int64_t local_id) const { if (local_ast_id_map_.find(local_id) == local_ast_id_map_.end()) return {}; @@ -2228,7 +2228,7 @@ translation_unit_visitor::build_template_instantiation( std::string best_match_full_name{}; auto full_template_name = template_instantiation.full_name(false); int best_match{}; - common::model::diagram_element::id_t best_match_id{0}; + common::id_t best_match_id{0}; for (const auto &[id, c] : diagram().participants()) { const auto *participant_as_class = @@ -2378,7 +2378,7 @@ void translation_unit_visitor::pop_message_to_diagram( void translation_unit_visitor::finalize() { - std::set active_participants_unique; + std::set active_participants_unique; // Change all active participants AST local ids to diagram global ids for (auto id : diagram().active_participants()) { diff --git a/src/sequence_diagram/visitor/translation_unit_visitor.h b/src/sequence_diagram/visitor/translation_unit_visitor.h index 1f0c688b..8369c871 100644 --- a/src/sequence_diagram/visitor/translation_unit_visitor.h +++ b/src/sequence_diagram/visitor/translation_unit_visitor.h @@ -204,8 +204,7 @@ public: * @return Optional reference to participant diagram element */ template - common::optional_ref get_participant( - const common::model::diagram_element::id_t id) + common::optional_ref get_participant(const common::id_t id) { if (diagram().participants().find(id) == diagram().participants().end()) return {}; @@ -222,8 +221,7 @@ public: * @return Optional reference to participant diagram element */ template - common::optional_ref get_participant( - common::model::diagram_element::id_t id) const + common::optional_ref get_participant(common::id_t id) const { if (diagram().participants().find(id) == diagram().participants().end()) return {}; @@ -241,8 +239,7 @@ public: * @param local_id Local AST element id * @param global_id Globa diagram element id */ - void set_unique_id( - int64_t local_id, common::model::diagram_element::id_t global_id); + void set_unique_id(int64_t local_id, common::id_t global_id); /** * @brief Retrieve the global `clang-uml` entity id based on the Clang @@ -250,8 +247,7 @@ public: * @param local_id AST local element id * @return Global diagram element id */ - std::optional get_unique_id( - int64_t local_id) const; + std::optional get_unique_id(int64_t local_id) const; /** * @brief Finalize diagram model for this translation unit @@ -531,7 +527,7 @@ private: std::map construct_expr_message_map_; - std::map> forward_declarations_; @@ -539,7 +535,7 @@ private: * @todo Refactor to @ref ast_id_mapper */ std::mapgetID() */ int64_t, - /* global ID based on full name */ common::model::diagram_element::id_t> + /* global ID based on full name */ common::id_t> local_ast_id_map_; std::map &system_include_paths() const; private: - const std::string command_; - const std::string language_; + std::string command_; + std::string language_; std::string target_; std::vector system_include_paths_; };