Make sure sequence diagram messages generated during static variable initialization are rendered only once

This commit is contained in:
Bartek Kryza
2023-10-08 16:55:25 +02:00
parent 9d08942a62
commit 4ab0d29252
15 changed files with 222 additions and 2 deletions

View File

@@ -68,6 +68,8 @@ public:
bool TraverseCallExpr(clang::CallExpr *expr);
bool TraverseVarDecl(clang::VarDecl *VD);
bool TraverseCXXMemberCallExpr(clang::CXXMemberCallExpr *expr);
bool TraverseCXXOperatorCallExpr(clang::CXXOperatorCallExpr *expr);
@@ -540,5 +542,9 @@ private:
std::tuple<std::string /* field name */, common::model::relationship_t,
common::model::access_t>>
anonymous_struct_relationships_;
mutable unsigned within_static_variable_declaration_{0};
mutable std::set<const clang::Expr *>
already_visited_in_static_declaration_{};
};
} // namespace clanguml::sequence_diagram::visitor