Fixed dependency generation for template parameters
This commit is contained in:
@@ -10,3 +10,4 @@ diagrams:
|
||||
include:
|
||||
namespaces:
|
||||
- clanguml::t00013
|
||||
- ABCD
|
||||
|
||||
@@ -4,6 +4,11 @@
|
||||
#include <string>
|
||||
#include <variant>
|
||||
|
||||
namespace ABCD {
|
||||
template <typename T> struct F {
|
||||
T f;
|
||||
};
|
||||
}
|
||||
namespace clanguml {
|
||||
namespace t00013 {
|
||||
|
||||
@@ -26,15 +31,25 @@ struct D {
|
||||
void print(R *r) {}
|
||||
};
|
||||
|
||||
template <typename T> struct E {
|
||||
T e;
|
||||
};
|
||||
|
||||
using namespace ABCD;
|
||||
class R {
|
||||
public:
|
||||
int get_a(A *a) { return a->a; }
|
||||
int get_b(B &b) { return b.b; }
|
||||
// TODO: int get_b(const B &b) { return b.b; }
|
||||
// TODO: int get_const_b(const B &b) { return b.b; }
|
||||
int get_c(C c) { return c.c; }
|
||||
int get_d(D &&d) { return d.d; }
|
||||
// Dependency relationship should be rendered only once
|
||||
int get_d2(D &&d) { return d.d; }
|
||||
|
||||
template <typename T> T get_e(E<T> &e) { return e.e; }
|
||||
int get_int_e(E<int> &e) { return e.e; }
|
||||
|
||||
template <typename T> T get_f(const F<T> &f) { return f.f; }
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,6 @@ TEST_CASE("t00013", "[test-case][class]")
|
||||
|
||||
REQUIRE(diagram->name == "t00013_class");
|
||||
|
||||
REQUIRE(diagram->include.namespaces.size() == 1);
|
||||
REQUIRE_THAT(diagram->include.namespaces,
|
||||
VectorContains(std::string{"clanguml::t00013"}));
|
||||
|
||||
@@ -32,6 +31,7 @@ TEST_CASE("t00013", "[test-case][class]")
|
||||
|
||||
REQUIRE(diagram->should_include("clanguml::t00013::A"));
|
||||
REQUIRE(diagram->should_include("clanguml::t00013::B"));
|
||||
REQUIRE(diagram->should_include("ABCD::F"));
|
||||
|
||||
auto model = generate_class_diagram(db, diagram);
|
||||
|
||||
@@ -50,6 +50,8 @@ TEST_CASE("t00013", "[test-case][class]")
|
||||
REQUIRE_THAT(puml, IsDependency(_A("R"), _A("B")));
|
||||
REQUIRE_THAT(puml, IsDependency(_A("R"), _A("C")));
|
||||
REQUIRE_THAT(puml, IsDependency(_A("R"), _A("D")));
|
||||
REQUIRE_THAT(puml, IsDependency(_A("R"), _A("E<T>")));
|
||||
REQUIRE_THAT(puml, IsDependency(_A("R"), _A("ABCD::F<T>")));
|
||||
REQUIRE_THAT(puml, IsDependency(_A("D"), _A("R")));
|
||||
|
||||
save_puml(
|
||||
|
||||
Reference in New Issue
Block a user