diff --git a/docs/test_cases.md b/docs/test_cases.md
index 50318d3a..6873d76e 100644
--- a/docs/test_cases.md
+++ b/docs/test_cases.md
@@ -46,6 +46,7 @@
* [t00045](./test_cases/t00045.md) - Test case for root namespace handling
* [t00046](./test_cases/t00046.md) - Test case for root namespace handling with packages
* [t00047](./test_cases/t00047.md) - Test case for recursive variadic template
+ * [t00048](./test_cases/t00048.md) - Test case for unique entity id with multiple translation units
## Sequence diagrams
* [t20001](./test_cases/t20001.md) - Basic sequence diagram test case
* [t20002](./test_cases/t20002.md) - Free function sequence diagram test case
diff --git a/docs/test_cases/t00002_class.svg b/docs/test_cases/t00002_class.svg
index 1faa9977..ca82e9ff 100644
--- a/docs/test_cases/t00002_class.svg
+++ b/docs/test_cases/t00002_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
A
@@ -21,8 +21,8 @@
foo_c() = 0 : void
-
-
+
+
B
@@ -31,8 +31,8 @@
foo_a() : void
-
-
+
+
C
@@ -41,18 +41,18 @@
foo_c() : void
-
-
+
+
D
-
+
-
+
as : std::vector<A *>
@@ -60,18 +60,18 @@
foo_a() : void
foo_c() : void
-
-
+
+
E
-
+
-
+
as : std::vector<A *>
@@ -79,36 +79,36 @@
foo_a() : void
foo_c() : void
-
+
This is class A
-
+
This is class B
-
+
This is class D
which is a little like B
and a little like C
-
+
-
+
-
+
as
-
+
-
+
-
+
as
-
+
-
+
diff --git a/docs/test_cases/t00003_class.svg b/docs/test_cases/t00003_class.svg
index ce94f5db..2a7344f8 100644
--- a/docs/test_cases/t00003_class.svg
+++ b/docs/test_cases/t00003_class.svg
@@ -1,6 +1,6 @@
-
+
-
+
@@ -9,77 +9,77 @@
-
-
-
-
- A
-
+
+
+
+
+ A
+
-
+
-
+
public_member : int
-
+
-
+
protected_member : int
-
+
-
+
private_member : int
-
+
-
+
a_ : int
-
+
-
+
b_ : int
-
+
-
+
c_ : int
-
+
-
+
static_int : int
-
+
-
+
static_const_int : const int
-
+
-
+
auto_member : const unsigned long
-
+
A() = default : void
@@ -103,20 +103,20 @@
sum(const double a, const double b) : int
- default_int(int i = </home/bartek/devel/clang-uml-libtooling/tests/t00003/t00003.cc:26:30>) : int
+ default_int(int i = 12) : int
- default_string(int i, std::string s = </home/bartek/devel/clang-uml-libtooling/tests/t00003/t00003.cc:27:55>) : std::string
+ default_string(int i, std::string s = "abc") : std::string
create_from_int(int i) : class A
protected_method() : void
private_method() : void
-
+
-
+
compare : std::function<bool (const int)>
diff --git a/docs/test_cases/t00004_class.svg b/docs/test_cases/t00004_class.svg
index 5a684988..1a72b0ad 100644
--- a/docs/test_cases/t00004_class.svg
+++ b/docs/test_cases/t00004_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
A
@@ -21,16 +21,16 @@
foo2() const : void
-
-
+
+
AA
-
-
+
+
Lights
@@ -40,23 +40,23 @@
Red
-
-
+
+
AAA
-
+
-
+
-
+
diff --git a/docs/test_cases/t00005_class.svg b/docs/test_cases/t00005_class.svg
index 3575da4e..88a1d501 100644
--- a/docs/test_cases/t00005_class.svg
+++ b/docs/test_cases/t00005_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,238 +9,238 @@
-
-
+
+
A
-
-
+
+
B
-
-
+
+
C
-
-
+
+
D
-
-
+
+
E
-
-
+
+
F
-
-
+
+
G
-
-
+
+
H
-
-
+
+
I
-
-
+
+
J
-
-
+
+
K
-
-
+
+
R
-
+
-
+
some_int : int
-
+
-
+
some_int_pointer : int *
-
+
-
+
some_int_pointer_pointer : int **
-
+
-
+
some_int_reference : int &
-
+
-
+
a : A
-
+
-
+
b : B *
-
+
-
+
c : C &
-
+
-
+
d : const D *
-
+
-
+
e : const E &
-
+
-
+
f : F &&
-
+
-
+
g : G **
-
+
-
+
h : H ***
-
+
-
+
i : I *&
-
+
-
+
j : volatile J *
-
+
-
+
k : K *
-
+
+a
-
+
+b
-
+
+c
-
+
+d
-
+
+e
-
+
+f
-
+
+g
-
+
+h
-
+
+i
-
+
+j
-
+
+k
diff --git a/docs/test_cases/t00006_class.svg b/docs/test_cases/t00006_class.svg
index cb6186b9..35a3d0dc 100644
--- a/docs/test_cases/t00006_class.svg
+++ b/docs/test_cases/t00006_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,136 +9,136 @@
-
-
+
+
A
-
-
+
+
B
-
-
+
+
C
-
-
+
+
D
-
-
+
+
E
-
-
+
+
F
-
-
+
+
G
-
-
+
+
H
-
-
+
+
I
-
-
+
+
J
-
-
+
+
K
-
-
+
+
L
-
-
+
+
M
-
-
+
+
N
-
-
+
+
NN
-
-
+
+
NNN
-
-
+
+
custom_container
@@ -146,15 +146,15 @@
T
-
+
-
+
data : std::vector<T>
-
+
custom_container
@@ -162,159 +162,159 @@
E
-
-
+
+
R
-
+
-
+
a : std::vector<A>
-
+
-
+
b : std::vector<B *>
-
+
-
+
c : std::map<int,C>
-
+
-
+
d : std::map<int,D *>
-
+
-
+
e : custom_container<E>
-
+
-
+
f : std::vector<std::vector<F>>
-
+
-
+
g : std::map<int,std::vector<G *>>
-
+
-
+
h : std::array<H,10>
-
+
-
+
i : std::array<I *,5>
-
+
-
+
j : J[10]
-
+
-
+
k : K *[20]
-
+
-
+
lm : std::vector<std::pair<L,M>>
-
+
-
+
ns : std::tuple<N,NN,NNN>
-
+
-
+
-
+
+a
-
+
+b
-
+
+c
-
+
+d
-
+
+e
-
+
+f
-
+
+g
-
+
+h
-
+
+i
-
+
+j
-
+
+k
-
+
lm
-
+
lm
-
+
ns
-
+
ns
-
+
ns
diff --git a/docs/test_cases/t00007_class.svg b/docs/test_cases/t00007_class.svg
index 99e4cb3b..3ce9a98b 100644
--- a/docs/test_cases/t00007_class.svg
+++ b/docs/test_cases/t00007_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,66 +9,66 @@
-
-
+
+
A
-
-
+
+
B
-
-
+
+
C
-
-
+
+
R
-
+
-
+
a : std::unique_ptr<A>
-
+
-
+
b : std::shared_ptr<B>
-
+
-
+
c : std::weak_ptr<C>
-
+
+a
-
+
+b
-
+
+c
diff --git a/docs/test_cases/t00008_class.svg b/docs/test_cases/t00008_class.svg
index 84a4104b..31937c0d 100644
--- a/docs/test_cases/t00008_class.svg
+++ b/docs/test_cases/t00008_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
A
@@ -18,51 +18,51 @@
T,P,CMP,int N
-
+
-
+
value : T
-
+
-
+
pointer : T *
-
+
-
+
reference : T &
-
+
-
+
values : std::vector<P>
-
+
-
+
ints : std::array<int,N>
-
+
-
+
comparator : CMP
-
-
+
+
Vector
@@ -70,16 +70,16 @@
T
-
+
-
+
values : std::vector<T>
-
-
+
+
B
@@ -87,15 +87,15 @@
T,C<>
-
+
-
+
template_template : C<T>
-
+
B
@@ -103,18 +103,18 @@
int,Vector
-
-
+
+
D
-
+
-
+
ints : B<int,Vector>
@@ -122,9 +122,9 @@
add(int i) : void
D(std::tuple<Items...> * ) : void
-
+
-
+
ints
diff --git a/docs/test_cases/t00009_class.svg b/docs/test_cases/t00009_class.svg
index d262481b..3de2dca4 100644
--- a/docs/test_cases/t00009_class.svg
+++ b/docs/test_cases/t00009_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
A
@@ -18,15 +18,15 @@
T
-
+
-
+
value : T
-
+
A
@@ -34,7 +34,7 @@
int
-
+
A
@@ -42,7 +42,7 @@
std::string
-
+
A
@@ -50,50 +50,50 @@
std::vector<std::string>
-
-
+
+
B
-
+
-
+
aint : A<int>
-
+
-
+
astring : A<std::string> *
-
+
-
+
avector : A<std::vector<std::string>> &
-
+
-
+
-
+
-
+
aint
-
+
astring
-
+
avector
diff --git a/docs/test_cases/t00010_class.svg b/docs/test_cases/t00010_class.svg
index 86791c6e..b9b819fd 100644
--- a/docs/test_cases/t00010_class.svg
+++ b/docs/test_cases/t00010_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
A
@@ -18,22 +18,22 @@
T,P
-
+
-
+
first : T
-
+
-
+
second : P
-
+
A
@@ -41,8 +41,8 @@
T,std::string
-
-
+
+
B
@@ -50,15 +50,15 @@
T
-
+
-
+
astring : A<T,std::string>
-
+
B
@@ -66,30 +66,30 @@
int
-
-
+
+
C
-
+
-
+
aintstring : B<int>
-
+
-
+
astring
-
+
-
+
aintstring
diff --git a/docs/test_cases/t00011_class.svg b/docs/test_cases/t00011_class.svg
index 3b680e69..6b69641d 100644
--- a/docs/test_cases/t00011_class.svg
+++ b/docs/test_cases/t00011_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
D
@@ -18,16 +18,16 @@
T
-
+
-
+
value : T
-
-
+
+
A
@@ -36,28 +36,28 @@
foo() : void
-
-
+
+
B
-
+
-
+
m_a : A *
foo() : void
-
+
«friend»
-
+
m_a
diff --git a/docs/test_cases/t00012_class.svg b/docs/test_cases/t00012_class.svg
index ca517867..36fafa46 100644
--- a/docs/test_cases/t00012_class.svg
+++ b/docs/test_cases/t00012_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
A
@@ -18,23 +18,23 @@
T,Ts...
-
+
-
+
value : T
-
+
-
+
values : std::variant<Ts...>
-
-
+
+
B
@@ -43,15 +43,15 @@
-
+
-
+
ints : std::array<int,sizeof...(Is)>
-
-
+
+
C
@@ -60,14 +60,14 @@
-
+
-
+
ints : std::array<T,sizeof...(Is)>
-
+
A
@@ -75,7 +75,7 @@
int,std::string,float
-
+
A
@@ -83,7 +83,7 @@
int,std::string,bool
-
+
B
@@ -91,7 +91,7 @@
3,2,1
-
+
B
@@ -99,7 +99,7 @@
1,1,1,1
-
+
C
@@ -107,79 +107,79 @@
std::map<int,std::vector<std::vector<std::vector<std::string>>>>,3,3,3
-
-
+
+
R
-
+
-
+
a1 : A<int,std::string,float>
-
+
-
+
a2 : A<int,std::string,bool>
-
+
-
+
b1 : B<3,2,1>
-
+
-
+
b2 : B<1,1,1,1>
-
+
-
+
c1 : C<std::map<int,std::vector<std::vector<std::vector<std::string>>>>,3,3,3>
-
+
Long template annotation
-
+
-
+
-
+
-
+
-
+
-
+
a1
-
+
a2
-
+
b1
-
+
b2
-
+
c1
diff --git a/docs/test_cases/t00013_class.svg b/docs/test_cases/t00013_class.svg
index 37491693..32a92066 100644
--- a/docs/test_cases/t00013_class.svg
+++ b/docs/test_cases/t00013_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
ABCD::F
@@ -18,15 +18,15 @@
T
-
+
-
+
f : T
-
+
ABCD::F
@@ -34,70 +34,70 @@
int
-
-
+
+
A
-
+
-
+
a : int
-
-
+
+
B
-
+
-
+
b : int
-
-
+
+
C
-
+
-
+
c : int
-
-
+
+
D
-
+
-
+
d : int
print(class R * r) : void
-
-
+
+
E
@@ -105,16 +105,16 @@
T
-
+
-
+
e : T
-
-
+
+
G
@@ -122,22 +122,22 @@
T,Args...
-
+
-
+
g : T
-
+
-
+
args : std::tuple<Args...>
-
+
E
@@ -145,7 +145,7 @@
int
-
+
G
@@ -153,7 +153,7 @@
int,float,std::string
-
+
E
@@ -161,25 +161,25 @@
std::string
-
-
+
+
R
-
+
-
+
gintstring : G<int,float,std::string>
-
+
-
+
estring : E<std::string>
@@ -205,37 +205,37 @@
get_e(E<T> e) : T
get_f(const F<T> & f) : T
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
gintstring
-
+
estring
diff --git a/docs/test_cases/t00014_class.svg b/docs/test_cases/t00014_class.svg
index b36b977b..1eabe139 100644
--- a/docs/test_cases/t00014_class.svg
+++ b/docs/test_cases/t00014_class.svg
@@ -1,6 +1,6 @@
-
+
-
+
@@ -9,341 +9,375 @@
-
-
-
-
- A
-
- T,P
-
+
+
+
+
+ A
+
+ T,P
+
-
-
-
+
+
+
-
- t : T
+
+ t : T
-
-
-
+
+
+
-
- p : P
+
+ p : P
-
-
-
-
-
- B
-
+
+
+
+
+
+ B
+
-
-
-
+
+
+
-
- value : std::string
+
+ value : std::string
-
-
-
-
- A
-
- T,std::string
-
-
-
-
-
- A
-
- T,std::unique_ptr<std::string>
-
-
-
-
-
- A
-
- long,T
-
-
-
-
-
- A
-
- double,T
-
-
-
-
-
- A
-
- long,bool
-
-
-
-
-
- A
-
- double,bool
-
-
-
-
-
- A
-
- long,float
-
-
-
-
-
- A
-
- double,float
-
-
-
-
-
- A
-
- bool,std::string
-
-
-
-
-
- A
-
- float,std::unique_ptr<std::string>
-
-
-
-
-
- A
-
- int,std::string
-
-
-
-
-
- A
-
- std::string,std::string
-
-
-
-
-
-
- R
-
+
+
+
+
+ A
+
+ T,std::string
+
+
+
+
+
+ A
+
+ T,std::unique_ptr<std::string>
+
+
+
+
+
+ A
+
+ long,T
+
+
+
+
+
+ A
+
+ double,T
+
+
+
+
+
+ A
+
+ long,U
+
+
+
+
+
+ A
+
+ long,bool
+
+
+
+
+
+ A
+
+ double,bool
+
+
+
+
+
+ A
+
+ long,float
+
+
+
+
+
+ A
+
+ double,float
+
+
+
+
+
+ A
+
+ bool,std::string
+
+
+
+
+
+ A
+
+ float,std::unique_ptr<std::string>
+
+
+
+
+
+ A
+
+ int,std::string
+
+
+
+
+
+ A
+
+ std::string,std::string
+
+
+
+
+
+ A
+
+ char,std::string
+
+
+
+
+
+ A
+
+ wchar_t,std::string
+
+
+
+
+
+
+ R
+
-
-
-
+
+
+
-
- bapair : PairPairBA<bool>
+
+ bapair : PairPairBA<bool>
-
-
-
+
+
+
-
- abool : APtr<bool>
+
+ abool : APtr<bool>
-
-
-
+
+
+
-
- aboolfloat : AAPtr<bool,float>
+
+ aboolfloat : AAPtr<bool,float>
-
-
-
+
+
+
-
- afloat : ASharedPtr<float>
+
+ afloat : ASharedPtr<float>
-
-
-
+
+
+
-
- boolstring : A<bool,std::string>
+
+ boolstring : A<bool,std::string>
-
-
-
+
+
+
-
- floatstring : AStringPtr<float>
+
+ floatstring : AStringPtr<float>
-
-
-
+
+
+
-
- intstring : AIntString
+
+ intstring : AIntString
-
-
-
+
+
+
-
- stringstring : AStringString
+
+ stringstring : AStringString
-
-
-
+
+
+
-
- bstringstring : BStringString
+
+ bstringstring : BStringString
-
-
-
+
+
+
-
- bs : BVector
+
+ bs : BVector
-
-
-
+
+
+
-
- bs2 : BVector2
+
+ bs2 : BVector2
-
-
-
+
+
+
-
- cb : SimpleCallback<ACharString>
+
+ cb : SimpleCallback<ACharString>
-
-
-
+
+
+
-
- gcb : GenericCallback<R::AWCharString>
+
+ gcb : GenericCallback<R::AWCharString>
-
-
-
+
+
+
-
- vcb : VoidCallback
+
+ vcb : VoidCallback
-
-
-
+
+
+
-
- vps : VectorPtr<B>
+
+ vps : VectorPtr<B>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- bapair
-
-
-
- bapair
-
-
-
- bs
-
-
-
- bs2
-
-
-
- vps
-
-
-
-
-
- abool
-
-
-
- aboolfloat
-
-
-
-
-
- aboolfloat
-
-
-
-
-
- afloat
-
-
-
- boolstring
-
-
-
- floatstring
-
-
-
- intstring
-
-
-
- stringstring
-
-
-
- bstringstring
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bapair
+
+
+
+ bapair
+
+
+
+ bs
+
+
+
+ bs2
+
+
+
+ vps
+
+
+
+
+
+ abool
+
+
+
+ aboolfloat
+
+
+
+
+
+ aboolfloat
+
+
+
+
+
+ afloat
+
+
+
+ boolstring
+
+
+
+ floatstring
+
+
+
+ intstring
+
+
+
+ stringstring
+
+
+
+ bstringstring
+
+
+
+
diff --git a/docs/test_cases/t00015_class.svg b/docs/test_cases/t00015_class.svg
index 8f9456f8..5f24d410 100644
--- a/docs/test_cases/t00015_class.svg
+++ b/docs/test_cases/t00015_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,51 +9,51 @@
-
-
+
+
ns1::A
-
-
+
+
ns1::ns2_v0_9_0::A
-
-
+
+
ns1::Anon
-
-
+
+
ns3::ns1::ns2::Anon
-
-
+
+
ns3::B
-
+
-
+
-
+
diff --git a/docs/test_cases/t00016_class.svg b/docs/test_cases/t00016_class.svg
index d4804d13..a37a3fc3 100644
--- a/docs/test_cases/t00016_class.svg
+++ b/docs/test_cases/t00016_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
is_numeric<>
@@ -19,8 +19,8 @@
value : enum
-
-
+
+
is_numeric
@@ -31,8 +31,8 @@
value : enum
-
-
+
+
is_numeric
@@ -43,8 +43,8 @@
value : enum
-
-
+
+
is_numeric
@@ -55,8 +55,8 @@
value : enum
-
-
+
+
is_numeric
@@ -67,8 +67,8 @@
value : enum
-
-
+
+
is_numeric
@@ -79,15 +79,15 @@
value : enum
-
+
-
+
-
+
-
+
-
+
diff --git a/docs/test_cases/t00017_class.svg b/docs/test_cases/t00017_class.svg
index 9386e419..b0ea6633 100644
--- a/docs/test_cases/t00017_class.svg
+++ b/docs/test_cases/t00017_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,171 +9,171 @@
-
-
+
+
A
-
-
+
+
B
-
-
+
+
C
-
-
+
+
D
-
-
+
+
E
-
-
+
+
F
-
-
+
+
G
-
-
+
+
H
-
-
+
+
I
-
-
+
+
J
-
-
+
+
K
-
-
+
+
R
-
+
-
+
some_int : int
-
+
-
+
some_int_pointer : int *
-
+
-
+
some_int_pointer_pointer : int **
-
+
-
+
some_int_reference : int &
R(int & some_int, class C & cc, const class E & ee, class F && ff, class I *& ii) : void
-
+
-
+
-c
-
+
-
+
-e
-
+
-
+
-f
-
+
-
+
-i
-
+
-a
-
+
-b
-
+
-d
-
+
-g
-
+
-h
-
+
-j
-
+
-k
diff --git a/docs/test_cases/t00018_class.svg b/docs/test_cases/t00018_class.svg
index 656cbf7d..8d5cc662 100644
--- a/docs/test_cases/t00018_class.svg
+++ b/docs/test_cases/t00018_class.svg
@@ -1,6 +1,6 @@
-
+
-
+
@@ -9,65 +9,103 @@
-
-
+
+
impl::widget
-
+
-
+
n : int
-
-
- draw(const widget & w) const : void
+
+
+
+
+
+ n : int
+
+
- draw(const widget & w) : void
+ draw(const widget & w) const : void
- widget(int n) : void
-
-
-
-
- widget
-
+ draw(const widget & w) : void
+
+ widget(int n) : void
+
+ draw(const widget & w) const : void
+
+ draw(const widget & w) : void
+
+ widget(int n) : void
+
+
+
+
+ widget
+
-
-
-
+
+
+
-
- pImpl : std::unique_ptr<impl::widget>
+
+ pImpl : std::unique_ptr<impl::widget>
-
-
- draw() const : void
-
- draw() : void
-
- shown() const : _Bool
-
- widget(int ) : void
-
- ~widget() : void
-
- widget(class widget && ) : void
-
- widget(const class widget & ) : void
-
- operator=(class widget && ) : class widget &
-
- operator=(const class widget & ) : class widget &
-
-
-
-
-
- pImpl
+
+
+
+
+
+ pImpl : std::unique_ptr<impl::widget>
+
+
+
+ draw() const : void
+
+ draw() : void
+
+ shown() const : _Bool
+
+ widget(int ) : void
+
+ ~widget() : void
+
+ widget(class widget && ) : void
+
+ widget(const class widget & ) : void
+
+ operator=(class widget && ) : class widget &
+
+ operator=(const class widget & ) : class widget &
+
+ draw() const : void
+
+ draw() : void
+
+ shown() const : _Bool
+
+ widget(int ) : void
+
+ ~widget() : void
+
+ widget(class widget && ) : void
+
+ widget(const class widget & ) : void
+
+ operator=(class widget && ) : class widget &
+
+ operator=(const class widget & ) : class widget &
+
+
+
+
+
+ pImpl
diff --git a/docs/test_cases/t00019_class.svg b/docs/test_cases/t00019_class.svg
index 8e4d54d8..24569416 100644
--- a/docs/test_cases/t00019_class.svg
+++ b/docs/test_cases/t00019_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
Base
@@ -25,8 +25,8 @@
m2() : std::string
-
-
+
+
Layer1
@@ -39,8 +39,8 @@
m2() : std::string
-
-
+
+
Layer2
@@ -51,8 +51,8 @@
all_calls_count() const : int
-
-
+
+
Layer3
@@ -60,18 +60,18 @@
LowerLayer
-
+
-
+
m_m1_calls : int
-
+
-
+
m_m2_calls : int
@@ -83,7 +83,7 @@
m1_calls() const : int
m2_calls() const : int
-
+
Layer3
@@ -91,7 +91,7 @@
Base
-
+
Layer2
@@ -99,7 +99,7 @@
Layer3<Base>
-
+
Layer1
@@ -107,42 +107,42 @@
Layer2<Layer3<Base>>
-
-
+
+
A
-
+
-
+
layers : std::unique_ptr<Layer1<Layer2<Layer3<Base>>>>
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
layers
diff --git a/docs/test_cases/t00020_class.svg b/docs/test_cases/t00020_class.svg
index 3adeab7c..96315da7 100644
--- a/docs/test_cases/t00020_class.svg
+++ b/docs/test_cases/t00020_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
ProductA
@@ -21,8 +21,8 @@
sell(int price) const = 0 : _Bool
-
-
+
+
ProductA1
@@ -31,8 +31,8 @@
sell(int price) const : _Bool
-
-
+
+
ProductA2
@@ -41,8 +41,8 @@
sell(int price) const : _Bool
-
-
+
+
ProductB
@@ -53,8 +53,8 @@
buy(int price) const = 0 : _Bool
-
-
+
+
ProductB1
@@ -63,8 +63,8 @@
buy(int price) const : _Bool
-
-
+
+
ProductB2
@@ -73,8 +73,8 @@
buy(int price) const : _Bool
-
-
+
+
AbstractFactory
@@ -85,8 +85,8 @@
make_b() const = 0 : std::unique_ptr<ProductB>
-
-
+
+
Factory1
@@ -97,8 +97,8 @@
make_b() const : std::unique_ptr<ProductB>
-
-
+
+
Factory2
@@ -109,25 +109,25 @@
make_b() const : std::unique_ptr<ProductB>
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/docs/test_cases/t00021_class.svg b/docs/test_cases/t00021_class.svg
index 40d14608..55d46470 100644
--- a/docs/test_cases/t00021_class.svg
+++ b/docs/test_cases/t00021_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
Visitor
@@ -23,8 +23,8 @@
visit_B(const class B & item) const = 0 : void
-
-
+
+
Visitor1
@@ -35,8 +35,8 @@
visit_B(const class B & item) const : void
-
-
+
+
Visitor2
@@ -47,8 +47,8 @@
visit_B(const class B & item) const : void
-
-
+
+
Visitor3
@@ -59,8 +59,8 @@
visit_B(const class B & item) const : void
-
-
+
+
Item
@@ -71,8 +71,8 @@
accept(const class Visitor & visitor) const = 0 : void
-
-
+
+
A
@@ -81,8 +81,8 @@
accept(const class Visitor & visitor) const : void
-
-
+
+
B
@@ -91,37 +91,37 @@
accept(const class Visitor & visitor) const : void
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/docs/test_cases/t00022_class.svg b/docs/test_cases/t00022_class.svg
index fb285977..083ce854 100644
--- a/docs/test_cases/t00022_class.svg
+++ b/docs/test_cases/t00022_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
A
@@ -23,8 +23,8 @@
method2() = 0 : void
-
-
+
+
A1
@@ -35,8 +35,8 @@
method2() : void
-
-
+
+
A2
@@ -47,9 +47,9 @@
method2() : void
-
+
-
+
diff --git a/docs/test_cases/t00023_class.svg b/docs/test_cases/t00023_class.svg
index ea911c62..5736bdd0 100644
--- a/docs/test_cases/t00023_class.svg
+++ b/docs/test_cases/t00023_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
Strategy
@@ -21,8 +21,8 @@
algorithm() = 0 : void
-
-
+
+
StrategyA
@@ -31,8 +31,8 @@
algorithm() : void
-
-
+
+
StrategyB
@@ -41,8 +41,8 @@
algorithm() : void
-
-
+
+
StrategyC
@@ -51,18 +51,18 @@
algorithm() : void
-
-
+
+
Context
-
+
-
+
m_strategy : std::unique_ptr<Strategy>
@@ -70,15 +70,15 @@
Context(std::unique_ptr<Strategy> strategy) : void
apply() : void
-
+
-
+
-
+
-
+
-
+
m_strategy
diff --git a/docs/test_cases/t00024_class.svg b/docs/test_cases/t00024_class.svg
index 0e8537e9..c5d7ad07 100644
--- a/docs/test_cases/t00024_class.svg
+++ b/docs/test_cases/t00024_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
Target
@@ -23,8 +23,8 @@
m2() = 0 : void
-
-
+
+
Target1
@@ -35,8 +35,8 @@
m2() : void
-
-
+
+
Target2
@@ -47,18 +47,18 @@
m2() : void
-
-
+
+
Proxy
-
+
-
+
m_target : std::shared_ptr<Target>
@@ -68,17 +68,17 @@
m1() : void
m2() : void
-
+
-
+
-
+
-
+
m_target
-
+
diff --git a/docs/test_cases/t00025_class.svg b/docs/test_cases/t00025_class.svg
index c4e44621..89830bac 100644
--- a/docs/test_cases/t00025_class.svg
+++ b/docs/test_cases/t00025_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
Target1
@@ -21,8 +21,8 @@
m2() : void
-
-
+
+
Target2
@@ -33,8 +33,8 @@
m2() : void
-
-
+
+
Proxy
@@ -42,11 +42,11 @@
T
-
+
-
+
m_target : std::shared_ptr<T>
@@ -56,7 +56,7 @@
m1() : void
m2() : void
-
+
Proxy
@@ -64,7 +64,7 @@
Target1
-
+
Proxy
@@ -72,41 +72,41 @@
Target2
-
-
+
+
ProxyHolder
-
+
-
+
proxy1 : Proxy<Target1>
-
+
-
+
proxy2 : Proxy<Target2>
-
+
-
+
-
+
-
+
-
+
proxy1
-
+
proxy2
diff --git a/docs/test_cases/t00026_class.svg b/docs/test_cases/t00026_class.svg
index 8eef98b1..5e98d970 100644
--- a/docs/test_cases/t00026_class.svg
+++ b/docs/test_cases/t00026_class.svg
@@ -1,6 +1,6 @@
-
+
-
+
@@ -9,29 +9,29 @@
-
-
-
-
- Memento
-
- T
-
+
+
+
+
+ Memento
+
+ T
+
-
-
-
+
+
+
-
- m_value : T
+
+ m_value : T
-
-
- Memento<T>(T && v) : void
-
- value() const : T
-
-
+
+
+ Memento<T>(T && v) : void
+
+ value() const : T
+
+
Originator
@@ -39,11 +39,11 @@
T
-
+
-
+
m_value : T
@@ -57,8 +57,8 @@
print() const : void
set(T && v) : void
-
-
+
+
Caretaker
@@ -66,11 +66,11 @@
T
-
+
-
+
m_mementos : std::unordered_map<std::string,Memento<T>>
@@ -78,7 +78,7 @@
state(const std::string & n) : Memento<T> &
set_state(const std::string & s, Memento<T> && m) : void
-
+
Caretaker
@@ -86,7 +86,7 @@
std::string
-
+
Originator
@@ -94,41 +94,45 @@
std::string
-
-
+
+
StringMemento
-
+
-
+
caretaker : Caretaker<std::string>
-
+
-
+
originator : Originator<std::string>
-
-
-
-
-
+
+
+
+
+
+
+
+ m_mementos
+
-
+
-
+
caretaker
-
+
originator
diff --git a/docs/test_cases/t00027_class.svg b/docs/test_cases/t00027_class.svg
index 82db525d..81031451 100644
--- a/docs/test_cases/t00027_class.svg
+++ b/docs/test_cases/t00027_class.svg
@@ -1,6 +1,6 @@
-
+
-
+
@@ -9,8 +9,8 @@
-
-
+
+
Shape
@@ -21,8 +21,14 @@
~Shape() = default : void
-
-
+
+
+
+ Line
+
+
+
+
Line
@@ -33,8 +39,14 @@
display() : void
-
-
+
+
+
+ Text
+
+
+
+
Text
@@ -45,41 +57,41 @@
display() : void
-
-
-
-
- ShapeDecorator
-
-
-
- display() = 0 : void
+
+
+
+
+ ShapeDecorator
+
+
+
+ display() = 0 : void
-
-
-
-
- Color
-
- T
-
-
-
- display() : void
+
+
+
+
+ Color
+
+ T
+
+
+
+ display() : void
-
-
-
-
- Weight
-
- T
-
-
-
- display() : void
+
+
+
+
+ Weight
+
+ T
+
+
+
+ display() : void
-
+
Line
@@ -87,7 +99,7 @@
Color,Weight
-
+
Line
@@ -95,7 +107,7 @@
Color
-
+
Text
@@ -103,7 +115,7 @@
Color,Weight
-
+
Text
@@ -111,73 +123,73 @@
Color
-
-
-
-
- Window
-
+
+
+
+
+ Window
+
-
-
-
+
+
+
-
- border : Line<Color,Weight>
+
+ border : Line<Color,Weight>
-
-
-
+
+
+
-
- divider : Line<Color>
+
+ divider : Line<Color>
-
-
-
+
+
+
-
- title : Text<Color,Weight>
+
+ title : Text<Color,Weight>
-
-
-
+
+
+
-
- description : Text<Color>
+
+ description : Text<Color>
-
-
+
+
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
-
-
- border
-
-
-
- divider
-
-
-
- title
-
-
-
- description
+
+
+
+ border
+
+
+
+ divider
+
+
+
+ title
+
+
+
+ description
diff --git a/docs/test_cases/t00028_class.svg b/docs/test_cases/t00028_class.svg
index 6f9f9ee3..2ef8f75b 100644
--- a/docs/test_cases/t00028_class.svg
+++ b/docs/test_cases/t00028_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,54 +9,54 @@
-
-
+
+
A
-
+
A class note.
-
-
+
+
B
-
+
B class note.
-
-
+
+
C
-
+
C class note.
-
-
+
+
D
-
+
D
class
note.
-
-
+
+
E
@@ -64,27 +64,27 @@
T
-
+
-
+
param : T
-
+
E template class note.
-
-
+
+
G
-
-
+
+
F
@@ -94,10 +94,10 @@
three
-
+
F enum note.
-
+
E
@@ -105,88 +105,88 @@
int
-
-
+
+
R
-
+
-
+
aaa : A
-
+
-
+
bbb : B *
-
+
-
+
ccc : C &
-
+
-
+
ddd : std::vector<std::shared_ptr<D>>
-
+
-
+
eee : E<int>
-
+
-
+
ggg : G **
R(class C & c) : void
-
+
R class note.
-
-
-
+
+
+
-
+
-
+
ccc
-
+
aaa
-
+
bbb
-
+
ddd
-
+
eee
-
+
ggg
diff --git a/docs/test_cases/t00029_class.svg b/docs/test_cases/t00029_class.svg
index 312954f9..c9a39122 100644
--- a/docs/test_cases/t00029_class.svg
+++ b/docs/test_cases/t00029_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,16 +9,16 @@
-
-
+
+
A
-
-
+
+
C
@@ -26,16 +26,16 @@
T
-
+
-
+
param : T
-
-
+
+
E
@@ -45,72 +45,72 @@
three
-
-
+
+
G1
-
-
+
+
G2
-
-
+
+
G3
-
-
+
+
G4
-
-
+
+
R
-
+
-
+
g1 : G1
-
+
-
+
g3 : G3 &
-
+
-
+
g4 : std::shared_ptr<G4>
-
+
g1
-
+
g4
diff --git a/docs/test_cases/t00030_class.svg b/docs/test_cases/t00030_class.svg
index 65a9ed92..d796a6eb 100644
--- a/docs/test_cases/t00030_class.svg
+++ b/docs/test_cases/t00030_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,111 +9,111 @@
-
-
+
+
A
-
-
+
+
B
-
-
+
+
C
-
-
+
+
D
-
-
+
+
E
-
-
+
+
R
-
+
-
+
aaa : A
-
+
-
+
bbb : std::vector<B>
-
+
-
+
ccc : std::vector<C>
-
+
-
+
ddd : D
-
+
-
+
eee : E *
-
+
aaa
-
+
bbb
0..1
1..*
-
+
ccc
0..1
1..5
-
+
ddd
1
-
+
eee
diff --git a/docs/test_cases/t00031_class.svg b/docs/test_cases/t00031_class.svg
index bf4b8ea0..6d59ac2f 100644
--- a/docs/test_cases/t00031_class.svg
+++ b/docs/test_cases/t00031_class.svg
@@ -1,33 +1,33 @@
-
+
-
+
-
+
-
-
-
+
+
+
A
-
-
+
+
B
@@ -37,8 +37,8 @@
three
-
-
+
+
@@ -47,23 +47,23 @@
T
-
+
-
+
ttt : T
-
-
+
+
D
-
+
C
@@ -71,57 +71,57 @@
int
-
-
+
+
R
-
+
-
+
aaa : A *
-
+
-
+
bbb : std::vector<B>
-
+
-
+
ccc : C<int>
-
+
-
+
ddd : D *
-
+
-
+
aaa
-
+
bbb
-
+
ccc
-
+
ddd
diff --git a/docs/test_cases/t00032_class.svg b/docs/test_cases/t00032_class.svg
index 8aa50ced..a47e6400 100644
--- a/docs/test_cases/t00032_class.svg
+++ b/docs/test_cases/t00032_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,24 +9,24 @@
-
-
+
+
Base
-
-
+
+
TBase
-
-
+
+
A
@@ -35,8 +35,8 @@
operator()() : void
-
-
+
+
B
@@ -45,8 +45,8 @@
operator()() : void
-
-
+
+
C
@@ -55,8 +55,8 @@
operator()() : void
-
-
+
+
Overload
@@ -64,15 +64,15 @@
T,L,Ts...
-
+
-
+
counter : L
-
+
Overload
@@ -80,42 +80,42 @@
TBase,int,A,B,C
-
-
+
+
R
-
+
-
+
overload : Overload<TBase,int,A,B,C>
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
overload
diff --git a/docs/test_cases/t00033_class.svg b/docs/test_cases/t00033_class.svg
index 078c5e0f..f4e84b8e 100644
--- a/docs/test_cases/t00033_class.svg
+++ b/docs/test_cases/t00033_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
A
@@ -18,16 +18,16 @@
T
-
+
-
+
aaa : T
-
-
+
+
B
@@ -35,16 +35,16 @@
T
-
+
-
+
bbb : T
-
-
+
+
C
@@ -52,30 +52,30 @@
T
-
+
-
+
ccc : T
-
-
+
+
D
-
+
-
+
ddd : int
-
+
C
@@ -83,7 +83,7 @@
D
-
+
B
@@ -91,7 +91,7 @@
std::unique_ptr<C<D>>
-
+
A
@@ -99,34 +99,34 @@
B<std::unique_ptr<C<D>>>
-
-
+
+
R
-
+
-
+
abc : A<B<std::unique_ptr<C<D>>>>
-
+
-
+
-
+
-
+
-
+
-
+
-
+
abc
diff --git a/docs/test_cases/t00034_class.svg b/docs/test_cases/t00034_class.svg
index 422f2778..12cb47d6 100644
--- a/docs/test_cases/t00034_class.svg
+++ b/docs/test_cases/t00034_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
Void
@@ -21,8 +21,8 @@
operator!=(const struct Void & ) const : _Bool
-
-
+
+
lift_void
@@ -31,8 +31,8 @@
-
-
+
+
lift_void
@@ -41,8 +41,8 @@
-
-
+
+
drop_void
@@ -51,8 +51,8 @@
-
-
+
+
drop_void
@@ -61,49 +61,49 @@
-
-
+
+
A
-
-
+
+
R
-
+
-
+
la : lift_void_t<A> *
-
+
-
+
lv : lift_void_t<void> *
-
+
-
+
-
+
la
-
+
la
-
+
lv
diff --git a/docs/test_cases/t00035_class.svg b/docs/test_cases/t00035_class.svg
index d9d1fcea..379e773d 100644
--- a/docs/test_cases/t00035_class.svg
+++ b/docs/test_cases/t00035_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,40 +9,40 @@
-
-
+
+
Top
-
-
+
+
Left
-
-
+
+
Center
-
-
+
+
Bottom
-
-
+
+
Right
diff --git a/docs/test_cases/t00036_class.svg b/docs/test_cases/t00036_class.svg
index d8bd90b0..2782d304 100644
--- a/docs/test_cases/t00036_class.svg
+++ b/docs/test_cases/t00036_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,23 +9,23 @@
-
+
ns1
-
+
ns11
-
+
ns111
-
+
ns2
-
+
ns22
-
-
+
+
E
@@ -34,8 +34,8 @@
yellow
-
-
+
+
A
@@ -43,15 +43,15 @@
T
-
+
-
+
a : T
-
+
A
@@ -59,34 +59,34 @@
int
-
-
+
+
B
-
+
-
+
a_int : A<int>
-
-
+
+
C
-
+
a_int
-
+
diff --git a/docs/test_cases/t00037_class.svg b/docs/test_cases/t00037_class.svg
index bdb55c0c..d24702e9 100644
--- a/docs/test_cases/t00037_class.svg
+++ b/docs/test_cases/t00037_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,83 +9,83 @@
-
-
+
+
ST
-
+
-
+
dimensions : struct (unnamed struct at /home/bartek/devel/clang-uml-libtooling/tests/t00037/t00037.cc:5:5)
-
-
+
+
<<anonymous>>
-
+
-
+
t : double
-
+
-
+
x : double
-
+
-
+
y : double
-
+
-
+
z : double
-
-
+
+
A
-
+
-
+
st : ST
A() : void
-
+
dimensions
-
+
-
+
st
diff --git a/docs/test_cases/t00038_class.svg b/docs/test_cases/t00038_class.svg
index 42cebdc9..d5e0827e 100644
--- a/docs/test_cases/t00038_class.svg
+++ b/docs/test_cases/t00038_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
thirdparty::ns1::color_t
@@ -20,16 +20,16 @@
blue
-
-
+
+
thirdparty::ns1::E
-
-
+
+
property_t
@@ -39,47 +39,47 @@
property_c
-
-
+
+
A
-
-
+
+
B
-
-
+
+
C
-
-
+
+
key_t
-
+
-
+
key : std::string
-
-
+
+
map
@@ -88,8 +88,8 @@
-
-
+
+
map
@@ -98,8 +98,8 @@
-
-
+
+
map
@@ -108,8 +108,8 @@
-
-
+
+
map
@@ -118,8 +118,8 @@
-
-
+
+
map
@@ -128,31 +128,31 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/docs/test_cases/t00039_class.svg b/docs/test_cases/t00039_class.svg
index ff266cb8..58b86842 100644
--- a/docs/test_cases/t00039_class.svg
+++ b/docs/test_cases/t00039_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,95 +9,95 @@
-
-
+
+
C
-
-
+
+
D
-
-
+
+
E
-
-
+
+
CD
-
-
+
+
DE
-
-
+
+
CDE
-
-
+
+
A
-
-
+
+
AA
-
-
+
+
AAA
-
+
-
+
b : B *
-
-
+
+
ns2::AAAA
-
-
+
+
ns3::F
@@ -105,16 +105,16 @@
T
-
+
-
+
t : T *
-
-
+
+
ns3::FF
@@ -122,16 +122,16 @@
T,M
-
+
-
+
m : M *
-
-
+
+
ns3::FE
@@ -139,16 +139,16 @@
T,M
-
+
-
+
m : M *
-
-
+
+
ns3::FFF
@@ -156,39 +156,39 @@
T,M,N
-
+
-
+
n : N *
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/docs/test_cases/t00040_class.svg b/docs/test_cases/t00040_class.svg
index d507bf49..89be5263 100644
--- a/docs/test_cases/t00040_class.svg
+++ b/docs/test_cases/t00040_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,50 +9,50 @@
-
-
+
+
A
-
+
-
+
ii_ : int
get_a() : int
-
-
+
+
AA
-
-
+
+
AAA
-
+
-
+
b : B *
get_aaa() : int
-
-
+
+
R
@@ -61,9 +61,9 @@
foo(struct A * a) : void
-
+
-
+
diff --git a/docs/test_cases/t00041_class.svg b/docs/test_cases/t00041_class.svg
index b65652da..41708af9 100644
--- a/docs/test_cases/t00041_class.svg
+++ b/docs/test_cases/t00041_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,116 +9,116 @@
-
-
+
+
R
-
-
+
+
D
-
+
-
+
rr : RR *
-
-
+
+
E
-
-
+
+
F
-
-
+
+
RR
-
+
-
+
e : E *
-
+
-
+
f : F *
-
-
+
+
RRR
-
-
+
+
ns1::N
-
-
+
+
ns1::NN
-
-
+
+
ns1::NM
-
+
rr
-
+
+e
-
+
+f
-
+
-
+
-
+
-
+
diff --git a/docs/test_cases/t00042_class.svg b/docs/test_cases/t00042_class.svg
index 0cadb0e5..65935bc7 100644
--- a/docs/test_cases/t00042_class.svg
+++ b/docs/test_cases/t00042_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
A
@@ -18,16 +18,16 @@
T
-
+
-
+
a : T
-
-
+
+
A
@@ -35,16 +35,16 @@
void
-
+
-
+
a : void *
-
-
+
+
B
@@ -52,22 +52,22 @@
T,K
-
+
-
+
b : T
-
+
-
+
bb : K
-
+
A
@@ -75,7 +75,7 @@
double
-
+
A
@@ -83,7 +83,7 @@
std::string
-
+
B
@@ -91,13 +91,13 @@
int,float
-
+
-
+
-
+
-
+
diff --git a/docs/test_cases/t00043_class.svg b/docs/test_cases/t00043_class.svg
index 27c1aebc..a4796f24 100644
--- a/docs/test_cases/t00043_class.svg
+++ b/docs/test_cases/t00043_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,22 +9,22 @@
-
+
dependants
-
+
dependencies
-
-
+
+
A
-
-
+
+
B
@@ -33,8 +33,8 @@
b(struct dependants::A * a) : void
-
-
+
+
BB
@@ -43,8 +43,8 @@
bb(struct dependants::A * a) : void
-
-
+
+
C
@@ -53,8 +53,8 @@
c(struct dependants::B * b) : void
-
-
+
+
D
@@ -65,8 +65,8 @@
dd(struct dependants::BB * bb) : void
-
-
+
+
E
@@ -75,24 +75,24 @@
e(struct dependants::D * d) : void
-
-
+
+
G
-
-
+
+
GG
-
-
+
+
H
@@ -103,8 +103,8 @@
hh(struct dependencies::GG * gg) : void
-
-
+
+
I
@@ -113,8 +113,8 @@
i(struct dependencies::H * h) : void
-
-
+
+
J
@@ -123,25 +123,25 @@
i(struct dependencies::I * i) : void
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
diff --git a/docs/test_cases/t00044_class.svg b/docs/test_cases/t00044_class.svg
index ae19c2c4..5ed80061 100644
--- a/docs/test_cases/t00044_class.svg
+++ b/docs/test_cases/t00044_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,16 +9,16 @@
-
-
-
- signal_handler
-
- ,A
-
-
-
-
+
+
+
+ signal_handler
+
+ ,A
+
+
+
+
sink
@@ -29,15 +29,15 @@
sink<signal_handler<type-parameter-0-0 (type-parameter-0-1...), type-parameter-0-2> >(sink<signal_handler<type-parameter-0-0 (type-parameter-0-1...), type-parameter-0-2> >::signal_t & sh) : void
-
+
-
+
signal : sink<signal_handler<type-parameter-0-0 (type-parameter-0-1...),type-parameter-0-2>>::signal_t *
-
-
+
+
signal_handler
@@ -46,35 +46,35 @@
-
-
-
-
- sink
-
- T
-
-
+
+
+
+
+ signal_handler
+
+ T,A
+
+
-
-
-
-
- signal_handler
-
- T,A
-
-
+
+
+
+
+ sink
+
+ T
+
+
-
-
-
-
-
- signal
-
-
-
-
+
+
+
+
+
+ signal
+
+
+
+
diff --git a/docs/test_cases/t00045_class.svg b/docs/test_cases/t00045_class.svg
index 7ccdabb8..f0b1555b 100644
--- a/docs/test_cases/t00045_class.svg
+++ b/docs/test_cases/t00045_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,32 +9,32 @@
-
-
+
+
A
-
-
+
+
AA
-
-
+
+
AAA
-
-
+
+
AAAA
@@ -42,134 +42,134 @@
T
-
+
-
+
t : T
-
-
+
+
ns1::A
-
-
+
+
ns1::ns2::A
-
-
+
+
ns1::ns2::B
-
-
+
+
ns1::ns2::C
-
-
+
+
ns1::ns2::D
-
-
+
+
ns1::ns2::E
-
-
+
+
ns1::ns2::AAA
-
-
+
+
ns1::ns2::R
-
+
-
+
a : ns1::ns2::A *
-
+
-
+
ns1_a : ns1::A *
-
+
-
+
ns1_ns2_a : ns1::ns2::A *
-
+
-
+
root_a : ::A *
foo(AA & aa) : void
-
+
-
+
-
+
-
+
-
+
-
+
+a
-
+
ns1_ns2_a
-
+
ns1_a
-
+
root_a
-
+
«friend»
diff --git a/docs/test_cases/t00046_class.svg b/docs/test_cases/t00046_class.svg
index b2613a0b..a952cdca 100644
--- a/docs/test_cases/t00046_class.svg
+++ b/docs/test_cases/t00046_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,146 +9,146 @@
-
+
ns1
-
+
ns2
-
+
__gnu_cxx
-
-
+
+
A
-
-
+
+
A
-
-
+
+
B
-
-
+
+
C
-
-
+
+
D
-
-
+
+
E
-
-
+
+
R
-
+
-
+
a : ns1::ns2::A *
-
+
-
+
ns1_a : ns1::A *
-
+
-
+
ns1_ns2_a : ns1::ns2::A *
-
+
-
+
root_a : ::A *
-
+
-
+
i : std::vector<std::uint8_t>
foo(AA & aa) : void
-
-
+
+
A
-
-
+
+
AA
-
+
-
+
-
+
-
+
-
+
-
+
+a
-
+
ns1_ns2_a
-
+
ns1_a
-
+
root_a
diff --git a/docs/test_cases/t00047_class.svg b/docs/test_cases/t00047_class.svg
index 3b84fb8b..ec23e543 100644
--- a/docs/test_cases/t00047_class.svg
+++ b/docs/test_cases/t00047_class.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,8 +9,8 @@
-
-
+
+
conditional_t
@@ -19,8 +19,8 @@
-
-
+
+
conditional_t
@@ -29,8 +29,8 @@
-
-
+
+
conditional_t
@@ -39,8 +39,8 @@
-
-
+
+
conditional_t
@@ -49,11 +49,11 @@
-
+
-
+
-
+
diff --git a/docs/test_cases/t00048.md b/docs/test_cases/t00048.md
new file mode 100644
index 00000000..587b2f39
--- /dev/null
+++ b/docs/test_cases/t00048.md
@@ -0,0 +1,123 @@
+# t00048 - Test case for unique entity id with multiple translation units
+## Config
+```yaml
+compilation_database_dir: ..
+output_directory: puml
+diagrams:
+ t00048_class:
+ type: class
+ glob:
+ - ../../tests/t00048/b_t00048.cc
+ - ../../tests/t00048/a_t00048.cc
+ using_namespace: clanguml::t00048
+ parse_includes: true
+ include:
+ namespaces:
+ - clanguml::t00048
+```
+## Source code
+File t00048.h
+```cpp
+#pragma once
+
+namespace clanguml {
+namespace t00048 {
+
+struct Base {
+ int base;
+
+ virtual void foo() = 0;
+};
+
+template struct BaseTemplate {
+ T base;
+
+ virtual void foo() = 0;
+};
+
+}
+}
+```
+File t00048.cc
+```cpp
+#include "t00048.h"
+
+namespace clanguml {
+namespace t00048 {
+}
+}
+```
+File a_t00048.h
+```cpp
+#include "t00048.h"
+
+#pragma once
+
+namespace clanguml {
+namespace t00048 {
+
+struct A : public Base {
+ int a;
+
+ void foo() override;
+};
+
+template struct ATemplate : public BaseTemplate {
+ T a;
+
+ void foo() override { }
+};
+
+}
+}
+```
+File b_t00048.h
+```cpp
+#include "t00048.h"
+
+#pragma once
+
+namespace clanguml {
+namespace t00048 {
+
+struct B : public Base {
+ int b;
+
+ void foo() override;
+};
+
+template struct BTemplate : public BaseTemplate {
+ T b;
+
+ void foo() override { }
+};
+
+}
+}
+```
+File a_t00048.cc
+```cpp
+#include "a_t00048.h"
+
+namespace clanguml {
+namespace t00048 {
+
+void A::foo() { }
+
+}
+}
+```
+File b_t00048.cc
+```cpp
+#include "b_t00048.h"
+
+namespace clanguml {
+namespace t00048 {
+
+void B::foo() { }
+
+}
+}
+```
+## Generated UML diagrams
+
diff --git a/docs/test_cases/t00048_class.svg b/docs/test_cases/t00048_class.svg
new file mode 100644
index 00000000..7b1efa01
--- /dev/null
+++ b/docs/test_cases/t00048_class.svg
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Base
+
+
+
+
+
+
+
+ base : int
+
+
+
+
+
+
+ base : int
+
+
+
+ foo() = 0 : void
+
+ foo() = 0 : void
+
+
+
+
+ BaseTemplate
+
+ T
+
+
+
+
+
+
+
+ base : T
+
+
+
+ foo() = 0 : void
+
+
+
+
+ B
+
+
+
+
+
+
+
+ b : int
+
+
+
+ foo() : void
+
+
+
+
+ BTemplate
+
+ T
+
+
+
+
+
+
+
+ b : T
+
+
+
+ foo() : void
+
+
+
+
+ A
+
+
+
+
+
+
+
+ a : int
+
+
+
+ foo() : void
+
+
+
+
+ ATemplate
+
+ T
+
+
+
+
+
+
+
+ a : T
+
+
+
+ foo() : void
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/test_cases/t30001_package.svg b/docs/test_cases/t30001_package.svg
index 60630241..d174e703 100644
--- a/docs/test_cases/t30001_package.svg
+++ b/docs/test_cases/t30001_package.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,67 +9,67 @@
-
-
+
+
A
-
-
+
+
AA
-
-
+
+
B
-
-
+
+
AA
-
-
+
+
AAA
-
-
+
+
BBB
-
-
+
+
BB
-
-
+
+
AAA
-
-
+
+
BBB
-
-
+
+
BB
-
+
A AAA note...
-
+
This is namespace AA in namespace A
-
+
This is namespace AA in namespace B
-
-
-
+
+
+
diff --git a/docs/test_cases/t30002_package.svg b/docs/test_cases/t30002_package.svg
index c5975580..8cb6e520 100644
--- a/docs/test_cases/t30002_package.svg
+++ b/docs/test_cases/t30002_package.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,113 +9,113 @@
-
-
+
+
A
-
-
+
+
AA
-
-
+
+
B
-
-
+
+
BB
-
-
+
+
A1
-
-
+
+
A2
-
-
+
+
A3
-
-
+
+
A4
-
-
+
+
A5
-
-
+
+
A6
-
-
+
+
A7
-
-
+
+
A8
-
-
+
+
A9
-
-
+
+
A10
-
-
+
+
A11
-
-
+
+
A12
-
-
+
+
A13
-
-
+
+
A14
-
-
+
+
A15
-
-
+
+
A16
-
-
+
+
A17
-
-
+
+
BBB
diff --git a/docs/test_cases/t30003_package.svg b/docs/test_cases/t30003_package.svg
index 759eeeca..f7a6bcf2 100644
--- a/docs/test_cases/t30003_package.svg
+++ b/docs/test_cases/t30003_package.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,35 +9,35 @@
-
-
+
+
ns1
-
-
+
+
ns3
«deprecated»
-
-
+
+
ns1
-
-
+
+
ns2_v1_0_0
-
-
+
+
ns2_v0_9_0
«deprecated»
-
-
+
+
ns2
diff --git a/docs/test_cases/t30004_package.svg b/docs/test_cases/t30004_package.svg
index 24f6e29f..0ae64580 100644
--- a/docs/test_cases/t30004_package.svg
+++ b/docs/test_cases/t30004_package.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,46 +9,46 @@
-
-
+
+
A
-
+
Package AAA.
-
+
Package BBB.
-
+
CCCC package note.
-
+
We skipped DDD.
-
-
+
+
AAA
-
-
+
+
BBB
-
-
+
+
CCC
-
-
+
+
EEE
-
-
-
-
+
+
+
+
diff --git a/docs/test_cases/t30005_package.svg b/docs/test_cases/t30005_package.svg
index 43efcf50..d261d3c5 100644
--- a/docs/test_cases/t30005_package.svg
+++ b/docs/test_cases/t30005_package.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,48 +9,48 @@
-
-
+
+
A
-
-
+
+
AA
-
-
+
+
B
-
-
+
+
BB
-
-
+
+
C
-
-
+
+
CC
-
-
+
+
AAA
-
-
+
+
BBB
-
-
+
+
CCC
diff --git a/docs/test_cases/t30006_package.svg b/docs/test_cases/t30006_package.svg
index ac0e5638..dd2a456c 100644
--- a/docs/test_cases/t30006_package.svg
+++ b/docs/test_cases/t30006_package.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,25 +9,25 @@
-
-
+
+
B
-
-
+
+
A
-
-
+
+
C
-
+
Top A note.
-
+
diff --git a/docs/test_cases/t30007_package.svg b/docs/test_cases/t30007_package.svg
index 05c1c022..6af9e195 100644
--- a/docs/test_cases/t30007_package.svg
+++ b/docs/test_cases/t30007_package.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,30 +9,30 @@
-
-
+
+
A
-
-
+
+
B
-
-
+
+
AA
-
-
+
+
C
-
+
Compare layout with t30006.
-
+
diff --git a/docs/test_cases/t30008_package.svg b/docs/test_cases/t30008_package.svg
index eab67365..93541b80 100644
--- a/docs/test_cases/t30008_package.svg
+++ b/docs/test_cases/t30008_package.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,43 +9,43 @@
-
-
+
+
dependants
-
-
+
+
dependencies
-
-
+
+
A
-
-
+
+
B
-
-
+
+
C
-
-
+
+
D
-
-
+
+
E
-
-
+
+
F
diff --git a/docs/test_cases/t40001_include.svg b/docs/test_cases/t40001_include.svg
index 4ab1ec8f..67aef8b7 100644
--- a/docs/test_cases/t40001_include.svg
+++ b/docs/test_cases/t40001_include.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,43 +9,43 @@
-
+
src
-
+
include
-
+
lib1
-
-
+
+
t40001.cc
-
-
+
+
t40001_include1.h
-
-
+
+
lib1.h
-
+
string
-
+
vector
-
+
clang/Lex/Lexer.h
-
+
This is a lib1 include dir
-
+
This is a t40001_include1.h include file
@@ -60,7 +60,7 @@
-
-
+
+
diff --git a/docs/test_cases/t40002_include.svg b/docs/test_cases/t40002_include.svg
index d0bf10da..9616f93f 100644
--- a/docs/test_cases/t40002_include.svg
+++ b/docs/test_cases/t40002_include.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,46 +9,46 @@
-
+
src
-
+
lib1
-
+
lib2
-
+
include
-
+
lib1
-
+
lib2
-
-
+
+
t40002.cc
-
-
+
+
lib1.cc
-
-
+
+
lib2.cc
-
-
+
+
lib1.h
-
-
+
+
lib2.h
diff --git a/docs/test_cases/t40003_include.svg b/docs/test_cases/t40003_include.svg
index f688196f..4d5d1900 100644
--- a/docs/test_cases/t40003_include.svg
+++ b/docs/test_cases/t40003_include.svg
@@ -1,6 +1,6 @@
-
+
@@ -9,66 +9,66 @@
-
+
include
-
+
dependants
-
+
dependencies
-
+
src
-
+
dependants
-
+
dependencies
-
-
+
+
t3.h
-
-
+
+
t2.h
-
-
+
+
t1.h
-
-
+
+
t3.h
-
-
+
+
t2.h
-
-
+
+
t1.h
-
-
+
+
t5.h
-
-
+
+
t1.cc
-
-
+
+
t2.cc
diff --git a/tests/t00048/.clang-uml b/tests/t00048/.clang-uml
index d95684b8..2c8a4cec 100644
--- a/tests/t00048/.clang-uml
+++ b/tests/t00048/.clang-uml
@@ -4,9 +4,6 @@ diagrams:
t00048_class:
type: class
glob:
-# - ../../tests/t00048/*.cc
-# - ../../tests/t00048/t00048.cc
-#
- ../../tests/t00048/b_t00048.cc
- ../../tests/t00048/a_t00048.cc
using_namespace: clanguml::t00048
diff --git a/tests/t00048/test_case.h b/tests/t00048/test_case.h
index aeb8d00a..4aabe0ff 100644
--- a/tests/t00048/test_case.h
+++ b/tests/t00048/test_case.h
@@ -44,28 +44,10 @@ TEST_CASE("t00048", "[test-case][class]")
REQUIRE_THAT(puml, IsClassTemplate("ATemplate", "T"));
REQUIRE_THAT(puml, IsClassTemplate("BTemplate", "T"));
- // Check if all enums exist
- // REQUIRE_THAT(puml, IsEnum(_A("Lights")));
-
- // Check if all inner classes exist
- // REQUIRE_THAT(puml, IsInnerClass(_A("A"), _A("AA")));
-
// Check if all inheritance relationships exist
REQUIRE_THAT(puml, IsBaseClass(_A("Base"), _A("A")));
REQUIRE_THAT(puml, IsBaseClass(_A("Base"), _A("B")));
- // Check if all methods exist
- // REQUIRE_THAT(puml, (IsMethod("foo")));
-
- // Check if all fields exist
- // REQUIRE_THAT(puml, (IsField("private_member", "int")));
-
- // Check if all relationships exist
- // REQUIRE_THAT(puml, IsAssociation(_A("D"), _A("A"), "-as"));
- // REQUIRE_THAT(puml, IsDependency(_A("R"), _A("B")));
- // REQUIRE_THAT(puml, IsAggregation(_A("R"), _A("D")));
- // REQUIRE_THAT(puml, IsComposition(_A("R"), _A("D")));
- // REQUIRE_THAT(puml, IsInstantiation(_A("ABCD::F"), _A("F")));
save_puml(
"./" + config.output_directory() + "/" + diagram->name + ".puml", puml);
diff --git a/tests/test_cases.yaml b/tests/test_cases.yaml
index 9ad39a21..8315a996 100644
--- a/tests/test_cases.yaml
+++ b/tests/test_cases.yaml
@@ -138,6 +138,9 @@ test_cases:
- name: t00047
title: Test case for recursive variadic template
description:
+ - name: t00048
+ title: Test case for unique entity id with multiple translation units
+ description:
Sequence diagrams:
- name: t20001
title: Basic sequence diagram test case