Added option to enable rendering return types in sequence diagrams (fixes #93)

This commit is contained in:
Bartek Kryza
2023-07-04 00:38:42 +02:00
parent d944a2cead
commit 2104d930a8
19 changed files with 274 additions and 29 deletions

View File

@@ -972,13 +972,6 @@ bool translation_unit_visitor::VisitCallExpr(clang::CallExpr *expr)
}
}
//
// This crashes on LLVM <= 12, for now just return empty type
//
// const auto &return_type =
// function_call_expr->getCallReturnType(current_ast_context);
// m.return_type = return_type.getAsString();
if (m.from() > 0 && m.to() > 0) {
if (diagram().sequences().find(m.from()) ==
diagram().sequences().end()) {
@@ -1550,6 +1543,10 @@ translation_unit_visitor::build_function_template(
process_template_parameters(declaration, *function_template_model_ptr);
function_template_model_ptr->return_type(
common::to_string(declaration.getAsFunction()->getReturnType(),
declaration.getASTContext()));
for (const auto *param : declaration.getTemplatedDecl()->parameters()) {
function_template_model_ptr->add_parameter(
simplify_system_template(common::to_string(
@@ -1612,6 +1609,9 @@ std::unique_ptr<model::function> translation_unit_visitor::build_function_model(
ns.pop_back();
function_model_ptr->set_namespace(ns);
function_model_ptr->return_type(common::to_string(
declaration.getReturnType(), declaration.getASTContext()));
for (const auto *param : declaration.parameters()) {
function_model_ptr->add_parameter(
simplify_system_template(common::to_string(
@@ -2337,6 +2337,9 @@ translation_unit_visitor::create_method_model(clang::CXXMethodDecl *declaration)
"::" + declaration->getNameAsString());
method_model_ptr->is_static(declaration->isStatic());
method_model_ptr->return_type(common::to_string(
declaration->getReturnType(), declaration->getASTContext()));
for (const auto *param : declaration->parameters()) {
method_model_ptr->add_parameter(config().using_namespace().relative(
simplify_system_template(common::to_string(