From b4d691539cb2f9c13e4885c7a2ff9575bcadbc7f Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Mon, 7 Mar 2022 22:32:46 +0100 Subject: [PATCH] Added to_string function for cpp_entity_kind for logging --- .../visitor/translation_unit_visitor.cc | 8 +--- src/cx/util.cc | 41 +++++++++++++++++++ src/cx/util.h | 2 + .../visitor/translation_unit_visitor.cc | 4 +- 4 files changed, 46 insertions(+), 9 deletions(-) diff --git a/src/class_diagram/visitor/translation_unit_visitor.cc b/src/class_diagram/visitor/translation_unit_visitor.cc index 4fc7ce58..e4d41c67 100644 --- a/src/class_diagram/visitor/translation_unit_visitor.cc +++ b/src/class_diagram/visitor/translation_unit_visitor.cc @@ -728,10 +728,8 @@ void translation_unit_visitor::process_field( auto tr_declaration = cppast::to_string(tr); -#ifndef __APPLE__ LOG_DBG("Processing field {} with unreferenced type of kind {}", mv.name(), - tr.kind()); -#endif + cx::to_string(tr.kind())); if (tr.kind() == cppast::cpp_type_kind::builtin_t) { LOG_DBG("Builtin type found for field: {}", m.name()); @@ -1214,10 +1212,8 @@ bool translation_unit_visitor::find_relationships(const cppast::cpp_type &t_, const auto fn = cx::util::full_name(cppast::remove_cv(t_), ctx.entity_index(), false); -#ifndef __APPLE__ LOG_DBG("Finding relationships for type {}, {}, {}", cppast::to_string(t_), - t_.kind(), fn); -#endif + cx::to_string(t_.kind()), fn); relationship_t relationship_type = relationship_hint; const auto &t = cppast::remove_cv(cx::util::unreferenced(t_)); diff --git a/src/cx/util.cc b/src/cx/util.cc index 7c780a6a..67c7ddcc 100644 --- a/src/cx/util.cc +++ b/src/cx/util.cc @@ -38,6 +38,47 @@ std::string to_string(CXString &&cxs) return r; } +std::string to_string(cppast::cpp_type_kind t) +{ + using namespace cppast; + switch (t) { + case cpp_type_kind::builtin_t: + return "builtin"; + case cpp_type_kind::user_defined_t: + return "user_defined"; + case cpp_type_kind::auto_t: + return "auto"; + case cpp_type_kind::decltype_t: + return "decltype"; + case cpp_type_kind::decltype_auto_t: + return "decltype_auto"; + case cpp_type_kind::cv_qualified_t: + return "cv_qualified"; + case cpp_type_kind::pointer_t: + return "pointer"; + case cpp_type_kind::reference_t: + return "reference"; + case cpp_type_kind::array_t: + return "array"; + case cpp_type_kind::function_t: + return "function"; + case cpp_type_kind::member_function_t: + return "member_function"; + case cpp_type_kind::member_object_t: + return "member_object"; + case cpp_type_kind::template_parameter_t: + return "template_parameter"; + case cpp_type_kind::template_instantiation_t: + return "template_instantiation"; + case cpp_type_kind::dependent_t: + return "dependent"; + case cpp_type_kind::unexposed_t: + return "unexposed"; + default: + return "invalid"; + } +} + std::string full_name( const common::model::namespace_ ¤t_ns, const cppast::cpp_entity &e) { diff --git a/src/cx/util.h b/src/cx/util.h index 139d1490..182c8486 100644 --- a/src/cx/util.h +++ b/src/cx/util.h @@ -42,6 +42,8 @@ namespace util { */ std::string to_string(CXString &&cxs); +std::string to_string(cppast::cpp_type_kind t); + std::string full_name( const common::model::namespace_ ¤t_ns, const cppast::cpp_entity &e); diff --git a/src/package_diagram/visitor/translation_unit_visitor.cc b/src/package_diagram/visitor/translation_unit_visitor.cc index 043729cc..f3c61e6b 100644 --- a/src/package_diagram/visitor/translation_unit_visitor.cc +++ b/src/package_diagram/visitor/translation_unit_visitor.cc @@ -379,10 +379,8 @@ bool translation_unit_visitor::find_relationships(const cppast::cpp_type &t_, const auto fn_ns = cx::util::ns(cppast::remove_cv(t_), ctx.entity_index()); -#ifndef __APPLE__ LOG_DBG("Finding relationships for type {}, {}, {}", cppast::to_string(t_), - t_.kind(), fn); -#endif + cx::to_string(t_.kind()), fn); relationship_t relationship_type = relationship_hint; const auto &t = cppast::remove_cv(cx::util::unreferenced(t_));