From 14128374efec65701d93d2af3985fc5c5be944ad Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Wed, 21 Dec 2022 18:05:45 +0100 Subject: [PATCH] Applying bugprone-narrowing-conversions clang-tidy fixes --- .clang-tidy | 1 + .../generators/plantuml/class_diagram_generator.cc | 10 +++++++--- src/class_diagram/visitor/translation_unit_visitor.cc | 5 +++-- src/common/clang_utils.cc | 2 +- src/common/visitor/comment/clang_visitor.cc | 2 +- 5 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index fb9397d6..e997c9f1 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -34,6 +34,7 @@ Checks: >- -readability-inconsistent-declaration-parameter-name, -readability-identifier-naming, -readability-redundant-smartptr-get, + -readability-convert-member-functions-to-static, -darwin*, -zircon* WarningsAsErrors: '*' diff --git a/src/class_diagram/generators/plantuml/class_diagram_generator.cc b/src/class_diagram/generators/plantuml/class_diagram_generator.cc index abd3b854..997f2d20 100644 --- a/src/class_diagram/generators/plantuml/class_diagram_generator.cc +++ b/src/class_diagram/generators/plantuml/class_diagram_generator.cc @@ -194,10 +194,14 @@ void generator::generate(const class_ &c, std::ostream &ostr) const std::string destination; try { - destination = r.destination(); + auto target_element = m_model.get(r.destination()); + if (!target_element.has_value()) + throw error::uml_alias_missing{ + fmt::format("Missing element in the model for ID: {}", + r.destination())}; + + destination = target_element.value().full_name(false); - // TODO: Refactor destination to a namespace qualified entity - // name if (util::starts_with(destination, std::string{"::"})) destination = destination.substr(2, destination.size()); diff --git a/src/class_diagram/visitor/translation_unit_visitor.cc b/src/class_diagram/visitor/translation_unit_visitor.cc index 7fa2712c..040775f8 100644 --- a/src/class_diagram/visitor/translation_unit_visitor.cc +++ b/src/class_diagram/visitor/translation_unit_visitor.cc @@ -1409,7 +1409,8 @@ std::unique_ptr translation_unit_visitor:: template_instantiation.set_name(template_decl->getNameAsString()); template_instantiation.set_namespace(ns); template_instantiation.set_id(template_decl->getID() + - (std::hash{}(full_template_specialization_name) >> 4)); + static_cast( + std::hash{}(full_template_specialization_name) >> 4u)); build_template_instantiation_process_template_arguments(parent, template_base_params, @@ -1661,7 +1662,7 @@ void translation_unit_visitor:: const std::string &full_template_specialization_name, const clang::TemplateDecl *template_decl) { - auto arg_index = 0U; + auto arg_index = 0; for (const auto &arg : template_args) { const auto argument_kind = arg.getKind(); template_parameter argument; diff --git a/src/common/clang_utils.cc b/src/common/clang_utils.cc index eeaebf16..0e2c1e81 100644 --- a/src/common/clang_utils.cc +++ b/src/common/clang_utils.cc @@ -244,7 +244,7 @@ bool is_subexpr_of(const clang::Stmt *parent_stmt, const clang::Stmt *sub_stmt) template <> id_t to_id(const std::string &full_name) { - return std::hash{}(full_name) >> 3; + return static_cast(std::hash{}(full_name) >> 3u); } template <> id_t to_id(const clang::NamespaceDecl &declaration) diff --git a/src/common/visitor/comment/clang_visitor.cc b/src/common/visitor/comment/clang_visitor.cc index 92c30ad9..d4a994eb 100644 --- a/src/common/visitor/comment/clang_visitor.cc +++ b/src/common/visitor/comment/clang_visitor.cc @@ -91,7 +91,7 @@ void clang_visitor::visit( const auto *command_info = traits.getCommandInfo(command->getCommandID()); - if (command_info->IsBlockCommand && command_info->NumArgs == 0) { + if (command_info->IsBlockCommand && command_info->NumArgs == 0u) { // Visit block command with a single text argument, e.g.: // \brief text // \todo text