Added sequence diagram model cleanup step to remove empty block statements

This commit is contained in:
Bartek Kryza
2023-07-02 17:56:15 +02:00
parent 9ada158828
commit ed88fcd39d
15 changed files with 160 additions and 46 deletions

View File

@@ -330,6 +330,8 @@ bool translation_unit_visitor::VisitFunctionDecl(
function_model_ptr->is_void(declaration->getReturnType()->isVoidType());
function_model_ptr->is_operator(declaration->isOverloadedOperator());
context().update(declaration);
context().set_caller_id(function_model_ptr->id());
@@ -373,6 +375,9 @@ bool translation_unit_visitor::VisitFunctionTemplateDecl(
function_template_model->set_id(
common::to_id(function_template_model->full_name(false)));
function_template_model->is_operator(
declaration->getAsFunction()->isOverloadedOperator());
context().update(declaration);
context().set_caller_id(function_template_model->id());
@@ -2260,6 +2265,7 @@ void translation_unit_visitor::finalize()
{
std::set<common::model::diagram_element::id_t> active_participants_unique;
// Change all active participants AST local ids to diagram global ids
for (auto id : diagram().active_participants()) {
if (local_ast_id_map_.find(id) != local_ast_id_map_.end()) {
active_participants_unique.emplace(local_ast_id_map_.at(id));
@@ -2271,6 +2277,7 @@ void translation_unit_visitor::finalize()
diagram().active_participants() = std::move(active_participants_unique);
// Change all message callees AST local ids to diagram global ids
for (auto &[id, activity] : diagram().sequences()) {
for (auto &m : activity.messages()) {
if (local_ast_id_map_.find(m.to()) != local_ast_id_map_.end()) {

View File

@@ -252,7 +252,7 @@ public:
int64_t local_id) const;
/**
* @brief Finalize diagram model
* @brief Finalize diagram model for this translation unit
*/
void finalize();