From e681d1a3cc16c0bcaae58b8e2ebf87657f95e47b Mon Sep 17 00:00:00 2001 From: Bartek Kryza Date: Fri, 2 Jun 2023 21:08:19 +0200 Subject: [PATCH] Added custom method type destructor filter --- src/common/model/diagram_filter.cc | 4 +++- src/config/config.cc | 2 ++ src/config/config.h | 1 + src/config/yaml_decoders.cc | 2 ++ tests/t00067/.clang-uml | 1 + 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/common/model/diagram_filter.cc b/src/common/model/diagram_filter.cc index 896f003d..7926ce03 100644 --- a/src/common/model/diagram_filter.cc +++ b/src/common/model/diagram_filter.cc @@ -262,7 +262,9 @@ tvl::value_t method_type_filter::match( method_types_.begin(), method_types_.end(), [&m](auto mt) { switch (mt) { case config::method_type::constructor: - return m.is_constructor() || m.is_destructor(); + return m.is_constructor(); + case config::method_type::destructor: + return m.is_destructor(); case config::method_type::assignment: return m.is_copy_assignment() || m.is_move_assignment(); case config::method_type::operator_: diff --git a/src/config/config.cc b/src/config/config.cc index 9ee2ef75..95bd25bd 100644 --- a/src/config/config.cc +++ b/src/config/config.cc @@ -67,6 +67,8 @@ std::string to_string(method_type mt) switch (mt) { case method_type::constructor: return "constructor"; + case method_type::destructor: + return "destructor"; case method_type::assignment: return "assignment"; case method_type::operator_: diff --git a/src/config/config.h b/src/config/config.h index b786f5fd..03fa5689 100644 --- a/src/config/config.h +++ b/src/config/config.h @@ -39,6 +39,7 @@ enum class method_arguments { full, abbreviated, none }; enum class method_type { constructor, + destructor, assignment, operator_, defaulted, diff --git a/src/config/yaml_decoders.cc b/src/config/yaml_decoders.cc index 9c4d86e6..2ecbd1b1 100644 --- a/src/config/yaml_decoders.cc +++ b/src/config/yaml_decoders.cc @@ -231,6 +231,8 @@ template <> struct convert { const auto &val = node.as(); if (val == to_string(method_type::constructor)) rhs = method_type::constructor; + else if (val == to_string(method_type::destructor)) + rhs = method_type::destructor; else if (val == to_string(method_type::assignment)) rhs = method_type::assignment; else if (val == to_string(method_type::operator_)) diff --git a/tests/t00067/.clang-uml b/tests/t00067/.clang-uml index 212d8b02..d2b5cc5b 100644 --- a/tests/t00067/.clang-uml +++ b/tests/t00067/.clang-uml @@ -11,6 +11,7 @@ diagrams: exclude: method_types: - constructor + - destructor - operator - assignment - static